1
Commit Graph

304 Commits

Author SHA1 Message Date
Roland Vossen
6a3be6e6e7 staging: brcm80211: bugfix for softmac crash on multi cpu configurations
Solved a locking issue that resulted in driver crashes with the 43224 and 43225
chips. The problem has been reported on several fora. Root cause was two fold:
hardware was being manipulated by two unsynchronized threads, and a scan
operation could interfere with an ongoing dynamic calibration process. Fix was
to invoke a lock on wl_ops_config() operation and to set internal flags when a
scan operation is started and stopped.

Please add this to the staging-linus branch.

Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-02-02 15:06:15 -08:00
Arend van Spriel
4032ec639a staging: brcm80211: fix suspend/resume issue in brcmsmac
PCI PM suspend callback took down the interface and resume brought
it back up. In the mac80211 context this is done in subsequent calls.
Rework implementation so that suspend only stores config, and sets
PCI power state. The resume return to full power state (D0), restores
the config, and brings hardware back up. Full bringup is done by
subsequent mac80211 calls.

Reviewed-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-01-22 06:32:22 -08:00
Arend van Spriel
d062d44a83 staging: brcm80211: remove assert to avoid panic since 2.6.37 kernel
The driver assumed it would receive skb packets from MAC80211 which
are not cloned. To guard this assumption an assert was placed in
the transmit routine. As of kernel 2.6.37 it turns out MAC80211 does
pass skb packets that are cloned. The assert is also not needed as
it does not lead to a failure state in our driver when the packet is
cloned. Therefore the assert can safely be removed.

> commit f8a0a78148
> Author: Felix Fietkau <nbd@openwrt.org>
> Date:   Sat Dec 18 19:30:50 2010 +0100
>
>     mac80211: fix potentially redundant skb data copying
>
>     When an skb is shared, it needs to be duplicated, along with its data
>     If the skb does not have enough headroom, using skb_copy might cause t
>     buffer to be copied twice (once by skb_copy and once by pskb_expand_he
>     Fix this by using skb_clone initially and letting ieee80211_skb_resize
>     out the rest.
>
>     Signed-off-by: Felix Fietkau <nbd@openwrt.org>
>     Signed-off-by: John W. Linville <linville@tuxdriver.com>
>

Acked-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-01-22 06:32:22 -08:00
Joe Perches
f4528696d8 staging: brcm80211: Fix WL_<type> logging macros
These macros use the equivalent of "#define WL_<type>(x) printk x"
which requires an extra level of parentheses.

Convert the macros to use the normal WL_<type>(fmt, args...) style
and remove the extra parentheses from the uses.

Add format argument verification using no_printk as appropriate.
Couple of spelling typo fixes in the formats and argument alignment
at the same time. Also coalesced long formats.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-16 12:25:37 -08:00
Joe Perches
fcbdbed016 staging: brcm80211: Convert ETHER_TYPE_802_1X to ETH_P_PAE
Remove now unused #define.

Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-16 12:21:30 -08:00
Joe Perches
d7ec915abc staging: brcm80211: Remove unused ETHER_TYPE_<foo> #defines
Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-16 12:21:29 -08:00
Joe Perches
d659a3ec83 staging: brcm80211: Remove ETHER_HDR_LEN, use ETH_HLEN
Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-16 12:21:28 -08:00
Joe Perches
b8d6307894 staging: brcm80211: Convert ETHER_ADDR_LEN to ETH_ALEN
Add an #include of <linux/if_ether.h> to include/proto/ethernet.h
Convert ETHER_ADDR_LEN, remove the #define for ETHER_ADDR_LEN.

Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-16 12:21:28 -08:00
Joe Perches
ed9568687e staging: brcm80211: Convert ETHER_IS<FOO> to is_<foo>_ether_addr
Use the normal kernel calls and remove the #defines
for ETHER_IS_BCAST and ETHER_IS_NULLADDR.

Add #include for etherdevice.h where necessary.

Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-16 12:21:27 -08:00
Joe Perches
47c6de7d37 staging: brcm80211: Remove unused ether_<foo> #defines and struct
These are unused, just remove them.

Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-16 12:21:27 -08:00
Joe Perches
3ca5ada504 staging: brcm80211: Convert ETHER_IS_MULTI to is_multicast_ether_addr
Use the standard kernel function.
Change callers to add .octet to addressing to avoid warnings.
Add #include <linux/etherdevice.h> where necessary.

Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-16 12:21:27 -08:00
Joe Perches
ee417a7956 staging: brcm80211: Remove unused #defines ETHER_<foo>_LOCALADDR
Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-16 12:21:26 -08:00
Roland Vossen
0e0792fef4 staging: brcm80211: removed ap related comments
Code cleanup, reaction on the 2nd email from Dan Carpenter.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-09 16:29:48 -08:00
Tobias Klauser
310d605293 staging: brcm80211: Remove redundant unlikely()
IS_ERR() already implies unlikely(), so it can be omitted here.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-09 16:29:46 -08:00
Henry Ptasinski
fb657461ab staging: brcm80211: fix documentation on installing firmware
Fix the documentation to have the current firmware filenames and use the
correct path.

Signed-off-by: Henry Ptasinski <henryp@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-08 14:28:51 -08:00
Roland Vossen
baffa2f609 staging: brcm80211: removed unused struct wlc_ap_info
Code cleanup, reaction on the email from Dan Carpenter.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-08 14:28:50 -08:00
Roland Vossen
08db27dc8d staging: brcm80211: replaced typedef wlc_pub_t by struct wlc_pub
Code cleanup

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-08 14:27:48 -08:00
Roland Vossen
c41c858f69 staging: brcm80211: replaced typedef wlccore_t by struct wlccore
Code cleanup

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-08 14:27:48 -08:00
Roland Vossen
f077f7185c staging: brcm80211: replaced typedef wlcband_t by struct wlcband
Code cleanup.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-08 14:27:48 -08:00
Roland Vossen
17d766510b staging: brcm80211: replaced typedef hnddma_t by struct hnddma_pub
Code cleanup.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-08 14:27:48 -08:00
Roland Vossen
6cdeaef203 staging: brcm80211: replaced typedef wl_if_t by struct wl_if
Code cleanup.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-08 14:27:48 -08:00
Roland Vossen
d65ddb5832 staging: brcm80211: replaced typedef bmac_pmq_t by struct bmac_pmq
Code cleanup.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-08 14:27:47 -08:00
Roland Vossen
299f8a4658 staging: brcm80211: replaced typedef antsel_info_t by struct antsel_info
Code cleanup.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-08 14:27:47 -08:00
Roland Vossen
0e49347489 staging: brcm80211: replaced typedef wlc_ap_info_t by struct wlc_ap_info
Code cleanup.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-08 14:27:47 -08:00
Roland Vossen
1f2fd4531d staging: brcm80211: replaced typedef ampdu_info_t by struct ampdu_info
Code cleanup.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-08 14:27:47 -08:00
Roland Vossen
4dc79de1e3 staging: brcm80211: replaced typedef wlc_if_t by struct wlc_if
Code cleanup.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-08 14:27:47 -08:00
Roland Vossen
41224eb2df staging: brcm80211: removed unused macro's and typedefs from wpa.h
Code cleanup.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-08 14:27:46 -08:00
Roland Vossen
0dedc37070 staging: brcm80211: removed unused typedefs
Code cleanup.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-08 14:27:46 -08:00
Greg Kroah-Hartman
ea3398a1ae Staging: Merge 2.6.37-rc5 into staging-next
This was done to handle a number of conflicts in the batman-adv
and winbond drivers properly.  It also now allows us to fix up the sysfs
attributes properly that were not in the .37 release due to them being
only in this tree at the time.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-07 10:47:56 -08:00
Roland Vossen
e304151f15 staging: brcm80211: replaced wlc_hw_info_t by struct wlc_hw_info
Part of code cleanup effort.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-06 16:08:44 -08:00
Arend van Spriel
8538576474 staging: brcm80211: remove macro usage for sk_buff release
PKTFREE macro calls osl_pktfree. This function has been renamed to
pkt_buf_free_skb as it comprises of functionality additional to
dev_kfree_skb(_any) function and to get rid of the OSL concept in
this driver.

Reviewed-by: Brett Rudley <brudley@broadcom.com>
Reviewed-by: Dowan Kim <dowan@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-06 16:08:31 -08:00
Arend van Spriel
f09e02322e staging: brcm80211: remove macro usage for sk_buff allocation
PKTGET macro calls osl_pktget. This function has been renamed to
pkt_buf_get_skb as it comprises of functionality additional to
dev_alloc_skb function and to get rid of the OSL concept in this driver.

Reviewed-by: Brett Rudley <brudley@broadcom.com>
Reviewed-by: Dowan Kim <dowan@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-06 16:08:30 -08:00
Roland Vossen
c6a9e1fc71 staging: brcm80211: replaced wlc_info_t by struct wlc_info.
Part of code cleanup effort. Global replace of wlc_info_t with struct wlc_info.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-06 16:07:57 -08:00
Brett Rudley
e63449b717 staging: brcm80211: Removing cruft from osl.h
Signed-off-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-06 16:07:33 -08:00
Brett Rudley
326a67977c staging: brcm80211: migrate register ops macros to bcmutils.h
Signed-off-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-06 16:07:33 -08:00
Brett Rudley
8968af14f8 staging: brcm80211: move dma specific macros from osl to dma code
Signed-off-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-06 16:07:33 -08:00
Brett Rudley
411ee44ad3 staging: brcm80211: move fullmac-only code from osl to fullmac files
Signed-off-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-06 16:07:10 -08:00
Brett Rudley
ec79570496 staging: brcm80211: Remove unused softmac macros
Signed-off-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-06 16:07:09 -08:00
Brett Rudley
7a9b48b3d3 staging: brcm80211: Move osl_pub into osl
Signed-off-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-06 16:07:09 -08:00
Brett Rudley
98ede2ed46 staging: brcm80211: OSLREGOPS is unused, remove checks for it.
Signed-off-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-06 16:07:08 -08:00
Roland Vossen
3d44661ad1 staging: brcm80211: added firmware validation
Fix for https://bugzilla.kernel.org/show_bug.cgi?id=21872

New function wl_check_firmwares() checks validity of all firmware images
loaded from user space.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-03 12:27:01 -08:00
Arend van Spriel
ff29ee8f93 staging: brcm80211: remove redundant CHIPREV macro
The CHIPREV macro simply expands to the macro argument so it is
redundant and as such removed.

Reviewed-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-02 12:34:09 -08:00
Arend van Spriel
dfa2643610 staging: brcm80211: remove redundant CHIPID macro
The CHIPID macro simply expands to the macro argument so it is
redundant and as such removed.

Reviewed-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-02 12:34:09 -08:00
Arend van Spriel
92246bcbd7 staging: brcm80211: remove redundant CHIPTYPE macro
The CHIPTYPE macro simply expands to the macro argument so it is
redundant and as such removed.

Reviewed-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-02 12:34:08 -08:00
Brett Rudley
c523ea78ec staging: brcm80211: absorb linux_osl.h into osl.h
Move code from linux_osl.h into osl.h and delete linux_osl.h, which
created a bunch of checkpatch errors...
I fixed most but volatile warnings will have to be dealt with later.

Signed-off-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-02 12:28:48 -08:00
Brett Rudley
df880a42dc staging: brcm80211: Remove unused code from osl.h
Signed-off-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-02 12:28:48 -08:00
Roland Vossen
2cb22a7a56 staging: brcm80211: replaced typedef struct wl_info_t by struct wl_info.
Part of the code cleanup effort. CodingStyle doc advises to restrict the usage
of typedefs. Also moved several function declarations from .c to .h file
because this typedef replace operation induced checkpatch.pl warnings.

Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-01 14:58:20 -08:00
Randy Dunlap
01d11441fd staging: brcm80211 needs lots of delay.h
Fix lots of errors like:

drivers/staging/brcm80211/phy/wlc_phy_n.c:17613: error: implicit declaration of function 'mdelay'
drivers/staging/brcm80211/util/nicpci.c:246: error: implicit declaration of function 'udelay'

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Cc: Brett Rudley <brudley@broadcom.com>
Cc: Henry Ptasinski <henryp@broadcom.com>
Cc: Dowan Kim <dowan@broadcom.com>
Cc: Roland Vossen <rvossen@broadcom.com>
Cc: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-01 14:58:19 -08:00
Brett Rudley
a043b26646 staging: brcm80211: bcmp => memcmp
s/bcmp/memcmp/

Signed-off-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-01 14:58:19 -08:00
Brett Rudley
9249ede9d4 staging: brcm80211: bzero => memset
s/bzero/memset/g

Signed-off-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-12-01 14:55:52 -08:00