History log of /drivers/net/wireless/libertas/if_usb.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e404decb0fb017be80552adee894b35307b6c7b4 29-Jan-2012 Joe Perches <joe@perches.com> drivers/net: Remove unnecessary k.alloc/v.alloc OOM messages

alloc failures use dump_stack so emitting an additional
out-of-memory message is an unnecessary duplication.

Remove the allocation failure messages.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
/drivers/net/wireless/libertas/if_usb.c
d632eb1bf22e11def74e4e53cc47d790fbdba105 18-Nov-2011 Greg Kroah-Hartman <gregkh@suse.de> USB: convert drivers/net/* to use module_usb_driver()

This converts the drivers in drivers/net/* to use the
module_usb_driver() macro which makes the code smaller and a bit
simpler.

Added bonus is that it removes some unneeded kernel log messages about
drivers loading and/or unloading.

Cc: Wolfgang Grandegger <wg@grandegger.com>
Cc: Samuel Ortiz <samuel@sortiz.org>
Cc: Oliver Neukum <oliver@neukum.name>
Cc: Peter Korsgaard <jacmet@sunsite.dk>
Cc: Petko Manolov <petkan@users.sourceforge.net>
Cc: Steve Glendinning <steve.glendinning@smsc.com>
Cc: Christian Lamparter <chunkeey@googlemail.com>
Cc: "John W. Linville" <linville@tuxdriver.com>
Cc: Dan Williams <dcbw@redhat.com>
Cc: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Cc: Ivo van Doorn <IvDoorn@gmail.com>
Cc: Gertjan van Wingerde <gwingerde@gmail.com>
Cc: Helmut Schaa <helmut.schaa@googlemail.com>
Cc: Herton Ronaldo Krzesinski <herton@canonical.com>
Cc: Hin-Tak Leung <htl10@users.sourceforge.net>
Cc: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Chaoming Li <chaoming_li@realsil.com.cn>
Cc: Lucas De Marchi <lucas.demarchi@profusion.mobi>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Roel Kluin <roel.kluin@gmail.com>
Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Jiri Pirko <jpirko@redhat.com>
Cc: Pavel Roskin <proski@gnu.org>
Cc: Yoann DI-RUZZA <y.diruzza@lim.eu>
Cc: George <george0505@realtek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/drivers/net/wireless/libertas/if_usb.c
ac5c24e9e613df556f054f1fa811fca0c24fe500 30-Aug-2011 Paul Gortmaker <paul.gortmaker@windriver.com> drivers/net: change moduleparam.h to module.h as required.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
/drivers/net/wireless/libertas/if_usb.c
55768fa6d9462c18c1ce3c862db3bf55bac3b1c7 09-Sep-2011 Andres Salomon <dilinger@queued.net> libertas: prioritize usb8388_olpc.bin firmware on OLPC machines

Normally, the v9 firmware will be loaded if it's available. However, on
OLPC XO-1 machines, the olpc-specific firmware supports extra functionality.
This makes the libertas driver attempt to load the custom firmware first
if the machine is an OLPC machine; if that fails (or it's not an OLPC
machine), fall back to attempting to load the other firmwares.

usb8388_olpc.bin is currently found in the linux-firmware repository.

Signed-off-by: Andres Salomon <dilinger@queued.net>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
d2e7b3425c474300318e1d28b10a93c2401b9255 01-Aug-2011 Daniel Drake <dsd@laptop.org> libertas: disable functionality when interface is down

Modify the driver so that it does not function when the interface is
down, in preparation for runtime power management.

No commands can be run while the interface is down, so the ndo_dev_stop
routine now directly does all necessary work (including asking the device
to disconnect from the network and disabling multicast functionality)
directly.

power_save and power_restore hooks are added meaning that card drivers
can take steps to turn the device off when the interface is down.

The MAC address can now only be changed when all interfaces are down;
the new address will be programmed when an interface gets brought up.
This matches mac80211 behaviour.

Also, some small cleanups/simplifications were made in the surrounding
device handling logic.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
dfb72c4fda54b11efe0afbb4e4081af1dfa4c14f 27-Jul-2011 Daniel Drake <dsd@laptop.org> libertas_usb: program OLPC EC wakeup mask for wake-on-WLAN

OLPC power management code has recently gone upstream. This piece
completes the puzzle for libertas_usb, which now programs the OLPC EC
for wlan wakeups when they have been requested.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
8e92f2acac918d36ef4aa591f55ba0589edf634d 21-Jul-2011 Daniel Drake <dsd@laptop.org> libertas_usb: use USB interface as parent device

Currently, "udevadm info -a -p /sys/class/net/wlan0" doesn't mention
the usb8xxx or libertas driver anywhere. This makes writing udev rules
a bit uncomfortable.

Using the USB interface as the parent device corrects the hierarchy.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
f3a57fd148a4afd3c38f558c5b44972cb29ea8ba 03-May-2011 Joe Perches <joe@perches.com> libertas: Use netdev_<level> or dev_<level> where possible

Using the more descriptive logging styles gives a bit
more information about the device being operated on.

Makes the object trivially smaller too.

$ size drivers/net/wireless/libertas/built-in.o.*
187730 2973 38488 229191 37f47 drivers/net/wireless/libertas/built-in.o.new
188195 2973 38488 229656 38118 drivers/net/wireless/libertas/built-in.o.old

Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
0e4e06ae5e895864b4a4bca7eec2e3015fddca98 03-May-2011 Joe Perches <joe@perches.com> libertas: Convert lbs_pr_<level> to pr_<level>

Use the standard pr_<level> functions eases grep a bit.

Added a few missing terminating newlines to messages.
Coalesced long formats.

Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
8973a6e770fc891f92daacbc1c92c7cd396fcf7e 27-Apr-2011 Randy Dunlap <randy.dunlap@oracle.com> libertas: use kernel-doc notation, fix comment style

Convert all libertas/ files to use kernel-doc notation instead
of whatever it was (doxygen?).

Add or fix function parameters in several places.

Use expected style for multi-line comments in lots of places.

Remove erroneous /** in multiple places.

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
ae63a33ec9b598b3454cf0d29077fa17b616c42a 31-Oct-2010 Deepak Saxena <dsaxena@laptop.org> libertas: EHS_REMOVE_WAKEUP is not always supported

Certain firmware versions, particularly the 8388 found on the XO-1,
do not support the EHS_REMOVE_WAKEUP command that is used to disable
WOL. Sending this command to the card will return a failure that
would get propagated up the stack and cause suspend to fail.

Instead, fall back to an all-zero wakeup mask.

This fixes http://dev.laptop.org/ticket/9967

Signed-off-by: Deepak Saxena <dsaxena@laptop.org>
Signed-off-by: Daniel Drake <dsd@laptop.org>
[includes fixups by Paul Fox]
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
cf43298864fdfd687202db8c736473522bfceb98 31-Oct-2010 Daniel Drake <dsd@laptop.org> libertas: don't block usb8388 suspend if no wakeup conditions are set

This hunk added by commit 66fceb69b72f seems erroneous. We don't want to
prevent suspend of the whole system if no wakeup params are set.

In the case of the usb8388 we do want to keep the card powered up even
if there are no wakeup params. This is because it will continue acting
as a mesh node.

If the mesh is disabled, it would indeed make more sense to power down
the card during suspend, as the equivalent hunk does for the SD interface.
But that's a separate task; for now just restore the previous behaviour.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
c64557d666eb62eb5f296c6b93bd0a5525ed1e36 15-Oct-2010 John W. Linville <linville@tuxdriver.com> Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
4f329c043ba3495f0f97ec782948cbba7bd01047 13-Oct-2010 Paul Fox <pgf@laptop.org> libertas: Communicate USB transfer errors

The return code was being overwritten with -1.
Useful for debugging.

Signed-off-by: Paul Fox <pgf@laptop.org>
Signed-off-by: Daniel Drake <dsd@laptop.org>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
e569aa78ba01f7f66e016a4d57310fd041524d17 25-Aug-2010 John W. Linville <linville@tuxdriver.com> Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem

Conflicts:
drivers/net/wireless/libertas/if_sdio.c
5cddea816eec8b5f6ab76d3fafcbb1533c8c2b9d 08-Aug-2010 Dan Williams <dcbw@redhat.com> libertas: [usb] use new firmware locations

Look for firmware where the linux-firmware tree actually puts it, but
fall back to original firmware name & location when the new location
doesn't exist.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
d6d1b650ae6acce73d55dd0246de22180303ae73 12-Aug-2010 Rusty Russell <rusty@rustcorp.com.au> param: simple locking for sysfs-writable charp parameters

Since the writing to sysfs can free the old one, we need to block that
when we access the charp variables.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Tested-by: Phil Carmody <ext-phil.2.carmody@nokia.com>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Dan Williams <dcbw@redhat.com>
Cc: John W. Linville <linville@tuxdriver.com>
Cc: Jing Huang <huangj@brocade.com>
Cc: James E.J. Bottomley <James.Bottomley@suse.de>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
Cc: Johannes Berg <johannes@sipsolutions.net>
Cc: David S. Miller <davem@davemloft.net>
Cc: user-mode-linux-devel@lists.sourceforge.net
Cc: libertas-dev@lists.infradead.org
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-usb@vger.kernel.org
/drivers/net/wireless/libertas/if_usb.c
0bb6408777227fcf5136e28aec29438606d5ac82 27-Jul-2010 Dan Williams <dcbw@redhat.com> libertas: convert PS_MODE to a direct command

Powersave looks like it got broken at some point but we'll fix that up
when the command submission stuff is more understandable, which this
series helps to do. That said, this patch should not further break
powersave.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
731a9b2a024714a3fa070b014744d02b9a96b3b6 15-May-2010 Julia Lawall <julia@diku.dk> drivers/net/wireless/libertas: Use kmemdup

Use kmemdup when some other buffer is immediately copied into the
allocated region.

A simplified version of the semantic patch that makes this change is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression from,to,size,flag;
statement S;
@@

- to = \(kmalloc\|kzalloc\)(size,flag);
+ to = kmemdup(from,size,flag);
if (to==NULL || ...) S
- memcpy(to, from, size);
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
66fceb69b72ff7e9cd8da2ca70033982d5376e0e 19-May-2010 Amitkumar Karwar <akarwar@marvell.com> libertas: Added callback functions to support SDIO suspend/resume.

In suspend() host sleep is activated using already configured
host sleep parameters through wol command, and in resume() host
sleep is cancelled. Earlier priv->fw_ready flag used to reset and
set in suspend and resume handler respectively. Since after suspend
only host goes into sleep state and firmware is always ready, those
changes in flag state are removed.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
a4b770972b8f819e408d7cc3ae9637e15bff62f6 14-May-2010 Joe Perches <joe@perches.com> drivers/net: Remove unnecessary returns from void function()s

This patch removes from drivers/net/ all the unnecessary
return; statements that precede the last closing brace of
void functions.

It does not remove the returns that are immediately
preceded by a label as gcc doesn't like that.

It also does not remove null void functions with return.

Done via:
$ grep -rP --include=*.[ch] -l "return;\n}" net/ | \
xargs perl -i -e 'local $/ ; while (<>) { s/\n[ \t\n]+return;\n}/\n}/g; print; }'

with some cleanups by hand.

Compile tested x86 allmodconfig only.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
/drivers/net/wireless/libertas/if_usb.c
5a0e3ad6af8660be21ca98a971cd00f331318c05 24-Mar-2010 Tejun Heo <tj@kernel.org> include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h

percpu.h is included by sched.h and module.h and thus ends up being
included when building most .c files. percpu.h includes slab.h which
in turn includes gfp.h making everything defined by the two files
universally available and complicating inclusion dependencies.

percpu.h -> slab.h dependency is about to be removed. Prepare for
this change by updating users of gfp and slab facilities include those
headers directly instead of assuming availability. As this conversion
needs to touch large number of source files, the following script is
used as the basis of conversion.

http://userweb.kernel.org/~tj/misc/slabh-sweep.py

The script does the followings.

* Scan files for gfp and slab usages and update includes such that
only the necessary includes are there. ie. if only gfp is used,
gfp.h, if slab is used, slab.h.

* When the script inserts a new include, it looks at the include
blocks and try to put the new include such that its order conforms
to its surrounding. It's put in the include block which contains
core kernel includes, in the same order that the rest are ordered -
alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
doesn't seem to be any matching order.

* If the script can't find a place to put a new include (mostly
because the file doesn't have fitting include block), it prints out
an error message indicating which .h file needs to be added to the
file.

The conversion was done in the following steps.

1. The initial automatic conversion of all .c files updated slightly
over 4000 files, deleting around 700 includes and adding ~480 gfp.h
and ~3000 slab.h inclusions. The script emitted errors for ~400
files.

2. Each error was manually checked. Some didn't need the inclusion,
some needed manual addition while adding it to implementation .h or
embedding .c file was more appropriate for others. This step added
inclusions to around 150 files.

3. The script was run again and the output was compared to the edits
from #2 to make sure no file was left behind.

4. Several build tests were done and a couple of problems were fixed.
e.g. lib/decompress_*.c used malloc/free() wrappers around slab
APIs requiring slab.h to be added manually.

5. The script was run on all .h files but without automatically
editing them as sprinkling gfp.h and slab.h inclusions around .h
files could easily lead to inclusion dependency hell. Most gfp.h
inclusion directives were ignored as stuff from gfp.h was usually
wildly available and often used in preprocessor macros. Each
slab.h inclusion directive was examined and added manually as
necessary.

6. percpu.h was updated not to include slab.h.

7. Build test were done on the following configurations and failures
were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
distributed build env didn't work with gcov compiles) and a few
more options had to be turned off depending on archs to make things
build (like ipr on powerpc/64 which failed due to missing writeq).

* x86 and x86_64 UP and SMP allmodconfig and a custom test config.
* powerpc and powerpc64 SMP allmodconfig
* sparc and sparc64 SMP allmodconfig
* ia64 SMP allmodconfig
* s390 SMP allmodconfig
* alpha SMP allmodconfig
* um on x86_64 SMP allmodconfig

8. percpu.h modifications were reverted so that it could be applied as
a separate patch and serve as bisection point.

Given the fact that I had only a couple of failures from tests on step
6, I'm fairly confident about the coverage of this conversion patch.
If there is a breakage, it's likely to be something in one of the arch
headers which should be easily discoverable easily on most builds of
the specific arch.

Signed-off-by: Tejun Heo <tj@kernel.org>
Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
/drivers/net/wireless/libertas/if_usb.c
a974a4bbcb1ceddc9c89defd7dab4da4b2b53d77 07-Nov-2009 Ben Hutchings <ben@decadent.org.uk> libertas: declare MODULE_FIRMWARE

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
230f9bb701d37ae9b48e96456689452978f5c439 06-Nov-2009 David S. Miller <davem@davemloft.net> Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

Conflicts:
drivers/net/usb/cdc_ether.c

All CDC ethernet devices of type USB_CLASS_COMM need to use
'&mbm_info'.

Signed-off-by: David S. Miller <davem@davemloft.net>
e9024a059f2c17fb2bfab212ee9d31511d7b8e57 30-Oct-2009 David Woodhouse <dwmw2@infradead.org> libertas if_usb: Fix crash on 64-bit machines

On a 64-bit kernel, skb->tail is an offset, not a pointer. The libertas
usb driver passes it to usb_fill_bulk_urb() anyway, causing interesting
crashes. Fix that by using skb->data instead.

This highlights a problem with usb_fill_bulk_urb(). It doesn't notice
when dma_map_single() fails and return the error to its caller as it
should. In fact it _can't_ currently return the error, since it returns
void.

So this problem was showing up only at unmap time, after we'd already
suffered memory corruption by doing DMA to a bogus address.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Cc: stable@kernel.org
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
4912545472d71e3dd546b18b397aec4c89fd7403 01-Oct-2009 Amitkumar Karwar <akarwar@marvell.com> libertas: Add auto deep sleep support for SD8385/SD8686/SD8688

Add timer based auto deep sleep feature in libertas driver which can be
configured using iwconfig command. This is tested on SD8688, SD8686 cards
with firmware versions 10.38.1.p25, 9.70.4.p0 respectively on 32-bit and 64-bit
platforms. Tests have been done for USB/CS cards to make sure that the patch
won't break USB/CS code. We didn't test the if_spi driver.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
e0d6133cba88759bc760b254c27975330fff6519 16-Jun-2009 Andrey Yurovsky <andrey@cozybit.com> libertas: remove ps_supported flag, use fwcapinfo

Power save support depends on the firmware capabilities rather than the
card's hardware interface. Use the FW_CAPINFO_PS bit in the firmware
capabilities mask throughout the driver in place of the redundant
ps_supported flag and don't make decisions about PS support in the
interface drivers (with the exception of a special case in the USB
driver).

V2: put the USB special case in the right place.

Signed-off-by: Andrey Yurovsky <andrey@cozybit.com>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
cadeba315cc91ae1b57632e61b0cec3a4ed7088d 27-May-2009 John W. Linville <linville@tuxdriver.com> firmware: wireless/libertas: prepare for FIRMWARE_NAME_MAX removal

We're going to remove the FIRMWARE_NAME_MAX definition in order to avoid any
firmware name length restriction.
This patch eplaces the shared FIRMWARE_NAME_MAX definition with a libertas
local one.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
Acked-by: Dan Williams <dcbw@redhat.com>
Acked-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
/drivers/net/wireless/libertas/if_usb.c
0ee904c35cc3fdd26a9c76077d9692d458309186 11-Apr-2009 Alexander Beregalov <a.beregalov@gmail.com> drivers/net: replace BUG() with BUG_ON() if possible

Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
/drivers/net/wireless/libertas/if_usb.c
ab65f649d38d910f48843a275f3f0596cdbf28bf 20-Feb-2009 Kiran Divekar <dkiran@marvell.com> libertas: fix misuse of netdev_priv() and dev->ml_priv

The mesh and radiotap interfaces need to use the same private data as
the main wifi interface. If the main wifi interface uses netdev_priv(),
but the other interfaces ->ml_priv, there's no way to figure out where
the private data actually is in the WEXT handlers and netdevice
callbacks. So make everything use ->ml_priv.

Fixes botched netdev_priv() conversion introduced by "netdevice
libertas: Fix directly reference of netdev->priv", though admittedly
libertas' use of ->priv was somewhat "special".

Signed-off-by: Kiran Divekar <dkiran@marvell.com>
Acked-by: Dan Williams <dcbw@redhat.com>
Tested-by: Chris Ball <cjb@laptop.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
df66f858074370a7ac7b21af2940e7a3a6af17c2 04-Dec-2008 Wang Chen <wangchen@cn.fujitsu.com> if_usb: Kill directly reference of netdev->priv

Simply replace netdev->priv with netdev_priv().

Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
/drivers/net/wireless/libertas/if_usb.c
582c1b538fb47a2d6a41dbdadb031086c49446c1 21-Oct-2008 Anna Neal <anna@cozybit.com> libertas: Fine grained configuration of wake-on-lan.

Based on a patch from Shailendra Govardhan <shailen@marvell.com>.
This patch allows implementation of more specific wake-on-lan rules than those
of ethtool.

Please note that only firmware 5.110.22.p20 and above supports this feature.

This patch only implements the driver/firmware interface, not the
userspace/driver interface.

Signed-off-by: Anna Neal <anna@cozybit.com>
Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
f8e77caefea8940ee1fb09c9ebb0107ca2eadb72 10-Sep-2008 Dan Williams <dcbw@redhat.com> libertas: remove unused generic RESET command

The generic reset command is unused. Each interface type needs to
handle the reset command differently since after reset, the firmware is
dead and interface-specific mechanisms must be used to reinitialize the
card.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
1ff41eb0d9a937957d481d4f058a91230851ae17 21-Jul-2008 Brian Cavagnolo <brian@cozybit.com> libertas: add sysfs hooks to update boot2 and persistent firmware

To use these features, copy the boot2 and firmware images to /lib/firmware and:

echo <boot2_image_name> > /sys/class/net/ethX/lbs_flash_boot2
echo <firmware_image_name> > /sys/class/net/ethX/lbs_flash_fw

Signed-off-by: Brian Cavagnolo <brian@cozybit.com>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
1556c0f22df77800d2e99342ce354a4ce94c5a0f 21-Jul-2008 Brian Cavagnolo <brian@cozybit.com> libertas: support boot commands to write persistent firmware and bootloader

Add locking and non-locking versions of if_usb_prog_firmware to support
programming firmware after and before driver bring-up respectively. Add more
suitable error codes for firmware programming process. Add capability checks
for persistent features before attempting to use them.

Based on patches from Brajesh Dave and Priyank Singh.

Signed-off-by: Brian Cavagnolo <brian@cozybit.com>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
49997d75152b3d23c53b0fa730599f2f74c92c65 18-Jul-2008 David S. Miller <davem@davemloft.net> Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6

Conflicts:

Documentation/powerpc/booting-without-of.txt
drivers/atm/Makefile
drivers/net/fs_enet/fs_enet-main.c
drivers/pci/pci-acpi.c
net/8021q/vlan.c
net/iucv/iucv.c
6dfff895fa33b8576f82a38cee8abe5f73561e24 23-May-2008 David Woodhouse <dwmw2@infradead.org> libertas: treat firmware data as const

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
/drivers/net/wireless/libertas/if_usb.c
ea2aca084ba82aaf7c148d04914ceed8758ce08a 06-Jul-2008 David S. Miller <davem@davemloft.net> Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

Conflicts:

Documentation/feature-removal-schedule.txt
drivers/net/wan/hdlc_fr.c
drivers/net/wireless/iwlwifi/iwl-4965.c
drivers/net/wireless/iwlwifi/iwl3945-base.c
7b58ccfe32f40eca8c8ca29aa723a5d0e814f0c9 01-Jul-2008 andrey@cozybit.com <andrey@cozybit.com> libertas: support USB persistence on suspend/resume (resend)

Handle .reset_resume() so that libertas can survive suspend/resume without
reloading the firmware.

Signed-off-by: Andrey Yurovsky <andrey@cozybit.com>
Acked-by: Deepak Saxena <dsaxena@laptop.org>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
b77ec4caefb280092a45d6798cbc2fd966ad01d8 20-May-2008 David Woodhouse <dwmw2@infradead.org> libertas: provide reset_card() callback on OLPC

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
7919b89c8276d657976d4d4d6b7cb58ea1aa08c3 01-Apr-2008 Holger Schurig <hs4233@mail.mn-solutions.de> libertas: convert libertas driver to use an event/cmdresp queue

This patch (co-developed by Dan Williams and Holger Schurig) uses a kfifo
object for events and a swapping buffer scheme for the command response to
preserve the zero-copy semantics of the CF driver and keep memory usage low.
The main thread should only ever touch the buffer indexed by priv->resp_idx,
while the interface code is free to write to the second buffer, then swap
priv->resp_idx under the driver spinlock. The firmware specs only permit
one in-flight command, so there will only ever be one command response to
process at a time.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
4365929d176b47a78d10aca0d1dee2afdfcbe4f2 16-Jan-2008 Holger Schurig <hs4233@mail.mn-solutions.de> libertas: move cardspecific data to driver

boot2_version is purely USB specific, so move it to struct if_usb_card.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
7003b078c82d141216deecef4de154711a107aab 17-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: use priv->upld_buf for command responses

If we don't scribble over the command we sent, then we can retry it when
the firmware responds with 0x0004 (which means -EAGAIN).

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
4694961cc2f868d6061be3b2c3d1fcf39584ff17 17-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: Check for PS mode support on USB devices

Move the various firmware setup bits into a separate function, which
used to do just boot2 version.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
9fae899c2b5dc224042da63b14118abdb22ae9b6 15-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: ensure response buffer size is always set for lbs_cmd_with_response

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
b23b2061e5758d4827630ee900b4b290376d0059 15-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: don't use __lbs_cmd() with empty callback in if_usb.c

We're about to change semantics, leaving callers of
lbs_prepare_and_send_command() with the old broken priv->cur_cmd_retcode
crap. The existence of the callback command will be the trigger for the
new semantics when handling the response.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
7e226272fcf9c1ec8b67fac995ce4227f4f76971 15-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: kill whitespace at end of lines

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
eae86bf378de981696697426831bd9db68930740 14-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: clean up if_usb driver

It was just getting on my tits, really.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
b926d6b31e2dd8f1bc21a9576aff0e486e21d32a 14-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: stop attempting to reset devices on unload

It wasn't working anyway -- by the time we get into if_usb_disconnect()
the USB core has already stopped us talking to the thing; even if it's
just on unload and the device still exists.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
506e9025e030c441679fb1ae77fb0d6266c34443 13-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: add ethtool support for wake-on-lan configuration

Also, check that suspend is refused if HOST_SLEEP_CFG hasn't been done.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
d1f7a5b8cfefdb443a05a9e3d636fe7fef57459a 12-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: implement suspend/resume for USB devices

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
689442dca16eb27fee19074499d42845fe54c12a 12-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: switch lbs_cmd() to take a _pointer_ to the command structure

This way, it looks more like a normal function.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
23d36eec263d2c913ee651dc43472524397e4a0b 12-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: add missing newlines in debugging statements

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
e1258177e437cb8b892622f2b7beedd4701540ac 12-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: be more careful about command responses matching cur_cmd

Especially in the light of OLPC trac #5461, in which the firmware starts
sending us seemingly random command responses which bear little relation
to the command we sent it.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
202f3f3ac90d8781ec1f37556c63aaf594b53581 12-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: kill rx_urb_recall and eth_dev members of struct usb_card_rec

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
1f8a08342c8c1c90d0b752f28eb6f24ea7164cdb 12-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: kill references to mesh autostart

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
23a397ac821ab0aa263bda47131bb0628e49101a 12-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: add lbs_mesh sysfs attribute for enabling mesh

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
2fd6cfe307557f3022b47288db3dc094c076e539 11-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: make some more functions static

sparse was getting on my tits.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
301eacbf30e33f461701df91cb250d3fc24c5fe5 11-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: convert CMD_MESH_ACCESS to a direct command

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
ddac452680a5164bb47d61ea54f596ddaf3aea7d 11-Dec-2007 Dan Williams <dcbw@redhat.com> libertas: rename and re-type bufvirtualaddr to cmdbuf

Make it a struct cmd_header, since that's what it is, and clean up
the places that it's used.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
c9cd6f9d630c4422d5f7eb8018b28846e25dba20 11-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: wait for 'firmware ready' event from firmware after loading

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
6bc822b5164e66ab9b93f96172df8902bfd37618 11-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: switch USB cardp->priv to 'struct lbs_private *' and resulting fix

Amazing what interesting things the compiler will tell you if you let it
know what types you expect to be passing around.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
4f82f5c853e314dfe877b87b4c1e4b127ee9a34b 11-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: switch to a waitqueue and timer for handling USB firmware load

No need to busy-wait, even if we did have a 100ms delay in the loop.
This makes it easier to support the new 'firmware ready' event which is
in the new firmware, too.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
c8ba39d0605200c81f43c59418871e036d973685 11-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: improve reliability of firmware reloading on USB

Increase the delay between issuing the RESET command and the usb reset,
and be prepared to discard more than one 'normal' packet from it before
it resets.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
14e865ba5d9e9adc90363e572743ac238935ba38 10-Dec-2007 Dan Williams <dcbw@redhat.com> libertas: make lbs_cmd() usage nicer

Define a macro that relieves the caller from having to use sizeof on
the command structure when calling lbs_cmd(), and move the prototype
of __lbs_cmd() to a new cmd.h file.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
4f679496567809ce1e95730c25274e1832537f4b 10-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: clean up lbs_interrupt()

Make it take struct lbs_private as argument; that's all it wants anyway,
and all callers were starting off from that. Don't wake the netif
queues, because those should be handled elsewhere. And sort out the
locking, with a big nasty warning for those who don't have the
driver_lock locked when they call it.

Oh, and fix if_cs.c to lock the driver_lock before calling it.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
1309b55b4de18bbfe19c73225a5481d6cdc8a463 10-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: add opaque extra argument to cmd callback function

This will be useful for letting callbacks do stuff like copying the
response into a buffer provided by the caller of lbs_cmd()

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
6d35fdfced3922aa27f130eec2b28857c39298fd 09-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: cope with device which already has firmware loaded

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
aa21c004f80bdf943736c62dccf0c0398d7824f3 08-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: kill struct lbs_adapter

There seems to be no reason for a separate structure; move it all
into struct lbs_private.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
448a51ae0684c146c9f9ba4e178ab2182512258f 08-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: switch lbs_cmd() to take a callback function pointer

All existing code which sends commands is set up to have some function
called with the results, not to get data back. It's more versatile this
way, and providing it with a callback function which involves memcpy()
is hardly difficult.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
c2df2efe96742b78454acdffe6d278ae334fc838 07-Dec-2007 Holger Schurig <hs4233@mail.mn-solutions.de> libertas: endianness fixes

Recently I found that that sparse by default doesn't endianness
checks. So I changed my compilation habit to be

make modules C=1 SUBDIRS=drivers/net/wireless/libertas
CHECKFLAGS="-D__CHECK_ENDIAN__"

so that I get the little-endian checks from sparse as well. That
showed up a good bunch of problems.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
0856e6816b30a84aa74c70ecb2bde0c41402f647 07-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: when usb_submit_usb fails, include the error code in the printk

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
83eacf233e62349c8a7282616fedc602ee95a555 07-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: Fix endianness in boot2_version handling.

We read it from the card. We byte-swap it. We write it back to the card.
D'oh.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
04c80f1ab1333f21aa4e92f3554e83365da449a0 06-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: Use lbs_cmd() for setting Boot2 version

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
2c94404c30008a10ccd3c7e31645626eb90a8a06 06-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: Move SET_BOOT2_VER command to if_usb where it belongs

This is meaningless for non-USB devices and unimplemented in their
firmware. It's somewhat dubious for USB devices too, but that's a
different story.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
e775ed7c677b163c80643036c32e23d3e59b9429 06-Dec-2007 David Woodhouse <dwmw2@infradead.org> libertas: Consolidate lbs_host_to_card_done() function.

As we move towards having this done by a state machine, start by having
a single 'stuff sent' function, which is called by if_usb/if_sdio/if_cs
after sending both data and commands.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
77d8cf2c093be3b58f6deed10673d0bc8cbd4202 28-Nov-2007 David Woodhouse <dwmw2@infradead.org> libertas: Fix memory leak of RX skbs

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
69f9032d9dfeb763b467fdbe8cf5938f5457083a 23-Nov-2007 Holger Schurig <hs4233@mail.mn-solutions.de> libertas: remove arbitrary typedefs

New typedefs are usually frowned upon. This patch changes
libertas_adapter -> struct libertas_adapter
libertas_priv -> struct libertas_priv

While passing, make everything checkpatch.pl-clean that gets touches.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
01d77d8d4747d73cfb6daf35cdc906a2db8ded9d 20-Nov-2007 Brajesh Dave <brajeshd@marvell.com> libertas: separate mesh connectivity from that of the main interface

The transmit and receive traffic as soon as the mesh interface is
brought up.

Test case 1: Bring up only the mesh interface and ping. No need for
any iwconfig commands on the main interface.

$ ifconfig msh0 192.168.5.3
$ iwconfig msh0 channel X
$ ping 192.168.5.2
If ping succeeds, PASS

Test case 2: Associate with the main interface, and turn off AP. Mesh
interface should not lose connectivity.

$ iwconfig eth0 mode managed essid "my_ssid"
$ ifconfig msh0 192.168.5.3
$ ping 192.168.5.2
<turn off access point>
If ping continues uninterrupted, PASS

This feature requires firmware version 5.110.19.p0 or newer, available
here: http://dev.laptop.org/pub/firmware/libertas/

Signed-off-by: Ashish Shukla <ashishs@marvell.com>
Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
798fbfec9ca1dfd656963debb14d049868d24465 20-Nov-2007 Andres Salomon <dilinger@debian.org> libertas: nuke useless variable usbdriver_name and useless comments

I think it was pretty obvious what fields in if_usb_driver are...

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
be13f1897f76a4b395c3d572a18b2802fd521946 20-Nov-2007 Andres Salomon <dilinger@debian.org> libertas: reset devices upon disconnect rather than module unloading

1) Do not reset libertas devices upon module unload. We're unloading
the module, we're not killing off devices.
2) Instead, reset libertas devices inside if_usb_disconnect, as we're
killing off interfaces and so on.
3) Resetting via disconnect callback means we no longer need to keep
track of probed libertas devices; kill off that list (and its wonderful
lack of locking..), as well.

Drop a useless comment as well.

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
4fb910fd3ada36cd9fbf6e037b87f2a83fd740b7 20-Nov-2007 Andres Salomon <dilinger@debian.org> libertas: mark module_init/exit functions as __init/__exit

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
82209adcb157e5861f2105d1658f1f07f75d69f2 20-Nov-2007 Andres Salomon <dilinger@debian.org> libertas: drop useless default_fw_name variable

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
1007832103d016d1563fab71d4cf2b057a0bcceb 16-Nov-2007 Holger Schurig <hs4233@mail.mn-solutions.de> libertas: move to uniform lbs_/LBS_ namespace

This patch unifies the namespace of variables, functions defines
and structures. It does:

- rename libertas_XXX to lbs_XXX
- rename LIBERTAS_XXX to lbs_XXX
- rename wlan_XXX to lbs_XXX
- rename WLAN_XXX to LBS_XXX (but only those that were
defined in libertas-local *.h files, e.g. not defines
from net/ieee80211.h)

While passing, I fixed some checkpatch.pl errors too.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
cc32613792b9789cebb40240a56bd4a7675b86fc 09-Oct-2007 Holger Schurig <hs4233@mail.mn-solutions.de> [PATCH] libertas: remove one superfluous include

This makes scripts/checkincludes.pl happy.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
b6e99dd6e2c5262e3c2b976d1d5f2c9405433d9a 20-Aug-2007 Dan Williams <dcbw@redhat.com> [PATCH] libertas: send reset command directly instead of calling libertas_reset_device

Ensures that any platform specific code that might live in libertas_reset_device
(for example, OLPC tells the EC to do a GPIO-toggled reset of the wireless
from libertas_reset_device) isn't called. Could be handled better by
interface-specific callbacks and a flag for "other hardware reset".

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: Marcelo Tosatti <marcelo@kvack.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
954ee164f4f4598afc172c0ec3865d0352e55a0b 20-Aug-2007 Dan Williams <dcbw@redhat.com> [PATCH] libertas: reorganize and simplify init sequence

This patch moves all firmware load responsibility into the interface-specific
code and gets rid of the firmware pointer in the generic card structure. It
also removes 3 fairly unecessary callbacks: hw_register_dev, hw_unregister_dev,
and hw_prog_firmware. It also makes the init sequence from interface
probe functions more logical, as there are paired add/remove and start/stop
calls into generic libertas code.

Because the USB driver code uses the same TX URB callback for both firmware
upload (where the generic libertas structure isn't initialized yet) and for
normal operation (where it is), some bits of USB code have to deal with
'priv' being NULL. All USB firmware upload bits have been changed to not
require 'priv' at all, but simply the USB card structure.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
8362cd413e8116306fafbaf414f0419db0595142 03-Aug-2007 Dan Williams <dcbw@redhat.com> [PATCH] libertas: fix sparse-reported problems

A few fields being converted to the wrong sized type, and a few missed
endian conversions.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
63f0023bc34073bea8452a4770540c954f98208f 02-Aug-2007 Luis Carlos Cobo <luisca@cozybit.com> [PATCH] libertas: pass boot2 version to firmware

Boot2 version used to be hardcoded in the uploaded firmware,
this patch preserves the boot2 version before uploading firmware
and sends it to the firmware again on resume.

Signed-off-by: Luis Carlos Cobo <luisca@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
965f8bbc6c92233600b176f4c80299f6766df9bd 02-Aug-2007 Luis Carlos Cobo <luisca@cozybit.com> [PATCH] libertas: monitor mode support for OLPC firmware

Driver support for the monitor mode support that will be available in the next
OLPC 'bleeding edge' Marvell firmware release (most likely, 5.110.16.p2).

To activate monitor mode,

echo mode > /sys/class/net/{ethX,mshX}/device/libertas_rtap

where mode is the hex mask that specifies which frames to sniff (in short, 0x1
for data, 0x2 for all management but beacons, 0x4 for beacons). Any non zero
mode will activate the monitor mode, inhibiting transmission in ethX and mshX
interfaces and routing all the incoming traffic to a new rtapX interface that
will output the packets in 802.11+radiotap headers format.

Signed-off-by: Luis Carlos Cobo <luisca@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
d21b31fd53626f9c1d14fc676793dbe86b44d1c6 02-Aug-2007 Luis Carlos Cobo <luisca@cozybit.com> [PATCH] libertas: keep mesh autostart enabled while asleep

After loading the firmware, mesh autostart will be disabled. After that, the
user will still be able to enable or disable it at will. On suspend, it will be
always activated and later on resume it will go back to the state it had before
going to sleep.

Signed-off-by: Luis Carlos Cobo <luisca@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
c95c7f930ec6fee029c8e7957ab95b3967578070 02-Aug-2007 Holger Schurig <hs4233@mail.mn-solutions.de> [PATCH] libertas: uppercase some #defines

Usually constants defined by #define are in ALL_UPPERCASE. This patch
fixes this.

I also shuffled the bits around so that they match the bit positions in the
host-interrupt-state register of the CF/SDIO card :-)

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
ac558ca2ae878bd7a77831cda684702a2fa23d95 02-Aug-2007 Holger Schurig <hs4233@mail.mn-solutions.de> [PATCH] libertas: make more functions static & remove unused functions

Some functions where declared in header files, but used only once. They are
now static functions.

After doing this, I found out that some functions weren't used at all. I
removed this dead code.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
1df4e8fe91d5bab3fd7ae7f115e43c52010cd4ad 02-Aug-2007 Holger Schurig <hs4233@mail.mn-solutions.de> [PATCH] libertas: remove fw.c

Firmware download is quite different for different hardware. The SDIO and CF
cards have two flat files that need to be downloaded, whereas the USB driver
needs only one file, but with an internal structure.

The code that handles this (USB only) structured file is currently in fw.c.
This patch moves this code into if_usb.c. The remaining functions in fw.c
have not much to do with firmware, they are various card- and network-stack
initialisation functions. I've moved them into main.c.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
eedc2a319154a64f5ca7f281c92b7af3691fe73c 02-Aug-2007 Dan Williams <dcbw@redhat.com> [PATCH] libertas: move generic firmware reset command to common code

It's not USB specific, so move it out of the USB interface code.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
fe3361507af44d00d5b42b91c1626321765a11bc 02-Aug-2007 Dan Williams <dcbw@redhat.com> [PATCH] libertas: remove thread.h and make kthread usage clearer

Remove the thread.h abstractions and opencode kthread stuff
to make it clearer.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
0aef64d75851c9f3545d0793f26486ed862306d8 02-Aug-2007 Dan Williams <dcbw@redhat.com> [PATCH] libertas: re-uppercase command defines and other constants

For readability.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
9e22cb67d9a8acde7a5af6ed8cd5e74ebd6551b3 02-Aug-2007 Dan Williams <dcbw@redhat.com> [PATCH] libertas: remove if_bootcmd.c

Move the only function in it to if_usb.c, which was its
only user anyway.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
bb793e2bfc25b8891b84b8fe3cb4b77cd4619814 26-May-2007 David Woodhouse <dwmw2@infradead.org> [PATCH] libertas: More endianness fixes.

Now it at least manages to load the firmware.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
981f187b7c4b237011d4175cae0120d5d203c0fd 26-May-2007 David Woodhouse <dwmw2@infradead.org> [PATCH] libertas: first pass at fixing up endianness issues

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
d43fb8ee3dab261e475d4f5189cf86182139b7f4 25-May-2007 Marcelo Tosatti <mtosatti@redhat.com> [PATCH] libertas: fix oops on rmmod

Use list_for_each_entry_safe, to protect against list_del().

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
c72368310d6799da92ec12192d8b15c2ae7ab0b5 25-May-2007 Dan Williams <dcbw@redhat.com> [PATCH] libertas: correctly unregister mesh netdev on error

Subject says it all.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
7732ca45c68f893689a8c0d8c6e2eb2bfefbc087 25-May-2007 Dan Williams <dcbw@redhat.com> [PATCH] libertas: call SET_NETDEV_DEV from common code

Move usage of SET_NETDEV_DEV into common code since it has nothing
to do with bus-specific devices. Also fixes a bug where the mesh
device was getting SET_NETDEV_DEV called after register_netdevice,
resulting in no 'device' link in /sys/class/net/mshX/.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
b46794dffab643e69d41c58a1a39c57b03826813 25-May-2007 Luis Carlos Cobo <luisca@cozybit.com> [PATCH] libertas: add URB debug info

Signed-off-by: Luis Carlos Cobo <luisca@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
634b8f49c11f49272b09d13a34b22a17b8c3d419 25-May-2007 Holger Schurig <hs4233@mail.mn-solutions.de> [PATCH] libertas: remove unused variables in wlan_dev_t

Actually, this patch removev wlan_dev_t totally and puts the used variables
of it directly into wlan_private. That reduces one level of indirection and
looks a little bit simpler. It's now "priv->card" and not
"priv->wlan_dev.card" and "priv->dev" instead of "priv->wlan_dev.netdev"

Changed two occurences of "((wlan_private *) dev->priv)->wlan_dev.netdev"
into "dev", because I didn't see the point in doing pointer-ping-pong.

The variables "ioport", "upld_rcv" and "upld_type" where unused. They have
been removed.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
ec3eef28d9bc3fbcc5d3dd668dffcaa675015b11 25-May-2007 Holger Schurig <hs4233@mail.mn-solutions.de> [PATCH] libertas: let DRV_NAME be overridable

For now, it's "libertas" by default, but that is overwritten in
if_usb.c/if_bootcmd.c and in if_cs.c.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
435a1acba23437a6c8462dd8437e48cdf09a2f71 25-May-2007 Holger Schurig <hs4233@mail.mn-solutions.de> [PATCH] libertas: fix RESET logic at unload time

Previously, we had a fixed array of 5 elements where we remembered all
initialized devices. This has been changed to use a "struct list_head"
organization, which is IMHO cleaner.

Also renamed usb_cardp to cardp, as in the reset of the code.

Renamed reset_device() to if_usb_reset_device() like many other functions.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
084708b61014776198c56d1606343d4f504c691e 25-May-2007 Holger Schurig <hs4233@mail.mn-solutions.de> [PATCH] libertas: split module into two (libertas.ko and usb8xxx.ko)

* add CONFIG_LIBERTAS to Kconfig
* remove global variable libertas_fw_name, the USB module might want to
use a different default FW name than the CF module, so libertas_fw_name
is now local to if_usb.c
* exported some symbols as GPL

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
208fdd2f447899164bd139452c291b155e53cee9 25-May-2007 Holger Schurig <hs4233@mail.mn-solutions.de> [PATCH] libertas: indirect all hardware access via hw_XXXX functions

This functions makes all libertas_sbi_XXX functions static to the
if_usb.c file and renames them to if_usb_XXXX(). The get called from
other places of the source code via priv->hw_XXXX().

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
6a8121572e2f2d188f04673bfa460ccfcedeb008 25-May-2007 Marcelo Tosatti <mtosatti@redhat.com> [PATCH] libertas: fix error handling of card initialization

Subject says it all.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
51d84f501684db22f5fcc30821cbbde2a0a2f264 25-May-2007 Javier Cardona <javier@cozybit.com> [PATCH] libertas: fixed transmission flow control on the mesh interface

This patch implements proper transmission flow control on mshX.

Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
32a74b7c8f7b883b532e0e4333b7c3014d3d8fe8 25-May-2007 Holger Schurig <hs4233@mail.mn-solutions.de> [PATCH] libertas: split wlan_add_card()

Split wlan_add_card() into a part that just setups kernel parameters and
into the function libertas_activate_card(), which will implizitly use
hardware functions by the started thread.

This allows us later to do something like this:

priv = libertas_add_card();
priv->hw_command_to_host = if_usb_command_to_host;
priv->hw_xxxx = if_usb_xxxx;
priv->hw_yyyy = if_usb_yyyy;
wlan_activate_card()

and of course the CF driver can set it's own functions.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
3874d0fefd965eedfc7f8e0a5459ddf914eb4306 25-May-2007 Holger Schurig <hs4233@mail.mn-solutions.de> [PATCH] libertas: move reset_device() code main.c to if_usb.c

The reset_device() logic is only needed for USB devices, not for CF
devices.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
1ac812f161801c276dd520def0e81b9938eb7761 25-May-2007 Holger Schurig <hs4233@mail.mn-solutions.de> [PATCH] libertas: get rid of libertas_sbi_get_priv()

It's not really needed, because we can call wlan_remove_card() with
wlan_private* anyway.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
78523daa86cf0b02c4d2f73b962c04ad565e9140 25-May-2007 Holger Schurig <hs4233@mail.mn-solutions.de> [PATCH] libertas: single out mesh code

This patches adds the two functions wlan_add_mesh() and wlan_remove_mesh(),
which are responsible for the mshX interface. In a CF driver with a non-
mesh-aware firmware you can omit the calls to this functions.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
9012b28a407511fb355f6d2176a12d4653489672 25-May-2007 Holger Schurig <hs4233@mail.mn-solutions.de> [PATCH] libertas: make debug configurable

The debug output of libertas was either not present or it was overwhelming.
This patch adds the possibility to specify a bitmask for the area of
interest. One should then only get the desired output.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
66fcc559042d85d57d9856d2a7fbcaa3e827a58c 25-May-2007 Holger Schurig <hs4233@mail.mn-solutions.de> [PATCH] libertas: move vendor & product id's into if_usb.c

For me it looks cleaner, because it removes one level of indirection.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
5c20676fcda300c023d55ba1221b5ff4ab749537 25-May-2007 Marcelo Tosatti <mtosatti@redhat.com> [PATCH] libertas: remove deprecated pm_register and associated code

Subject says it all.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
4269e2ad83036e1d8c076b1f1348f879a93be008 11-May-2007 Dan Williams <dcbw@redhat.com> [PATCH] libertas: 64-bit cleanups

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
12a4d265e5ca354fb9225732b7e625bd00002bc4 11-May-2007 Dan Williams <dcbw@redhat.com> [PATCH] libertas: fix missing unlock in TX error path

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
4f3465f80564e07a5756b11365cd24f9d693a9bb 11-May-2007 Dan Williams <dcbw@redhat.com> [PATCH] libertas: remove SUPPORT_BOOT_COMMAND

Remove the static definition of SUPPORT_BOOT_COMMAND.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c
876c9d3aeb989cf1961f2c228d309ba5dcfb1172 10-Feb-2007 Marcelo Tosatti <marcelo@kvack.org> [PATCH] Marvell Libertas 8388 802.11b/g USB driver

Add the Marvell Libertas 8388 802.11 USB driver.

Signed-off-by: Marcelo Tosatti <marcelo@kvack.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
/drivers/net/wireless/libertas/if_usb.c