aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless/p54
AgeCommit message (Collapse)Author
2009-03-27p54: Kconfig maintenanceChristian Lamparter
This patch updates p54's Kconfig entry and removes the out-dated device list. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-03-27p54: fix SoftLED compile dependenciesChristian Lamparter
This patch fixes a compile problem when the MAC80211_LEDS triggers are enabled but not LED class itself. (which is sort of pointless, but anyway...) Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-03-27wireless/p54: P54_SPI should depend on GENERIC_HARDIRQSGeert Uytterhoeven
m68k allmodconfig: | drivers/net/wireless/p54/p54spi.c: In function 'p54spi_probe': | drivers/net/wireless/p54/p54spi.c:675: error: implicit declaration of function | 'set_irq_type' | make[4]: *** [drivers/net/wireless/p54/p54spi.o] Error 1 Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-03-16p54: completely ignore rx'd frames with bad FCSChristian Lamparter
Passing frames with a bad FCS to the user is an optional feature. However it doesn't work reliable and strangely not in the native monitor mode?! Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-03-16p54: enable power save supportChristian Lamparter
This patch enables power save support on all p54 devices. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-03-16p54: initial SoftLED supportChristian Lamparter
This patch adds SoftLED support for all p54 devices. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-03-16p54: fix iwconfig txpower offChristian Lamparter
Disabling the receiver logic with P54_FILTER_TYPE_RX_DISABLED is not supported by all firmwares. However we have an alternative: hibernation. And the only side effect - so far - is a bit less power consumption. WIN! Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-03-16p54pci: convert printk(KERN_* to dev_*Christian Lamparter
This patch replaces most printk(KERN_* "") with their by dev_* analogue. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-03-16p54: unify ieee80211 device registrationChristian Lamparter
All three drivers (p54pci, p54usb and p54spi) are implementing the same functionality three times. So, why not put it into the shared library?! Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-03-16p54usb: stop USB core interference in exit pathChristian Lamparter
The patch fixes a problem when the (Soft)LED stayed on after the module was unloaded. It turned out that the USB core disables all endpoints before calling the disconnect method. So it was impossible to switch off the radio & LEDs. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-03-10Merge branch 'master' of ↵David S. Miller
master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/bnx2x_main.c drivers/net/wireless/iwlwifi/iwl3945-base.c drivers/net/wireless/rt2x00/rt73usb.c
2009-03-06p54: fix race condition in memory managementChristian Lamparter
This patch fixes a number of race conditions in the driver. Up until now, "entry" pointer was initialized before acquiring the right lock. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-02-27p54: misplaced parenthesesRoel Kluin
Only FIF_FCSFAIL is set due to parentheses Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29wireless: restrict to 32 legacy ratesJohannes Berg
Since the standards only define 12 legacy rates, 32 is certainly a sane upper limit and we don't need to use u64 everywhere. Add sanity checking that no more than 32 rates are registered and change the variables to u32 throughout. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54spi: remove arch specific dependenciesChristian Lamparter
On Friday 16 January 2009 20:33:43 Kalle Valo wrote: > N800 and N810 support is not on mainline yet, for stlc45xx I decided > to add module parameters for the gpio numbers. Here's the commit from > stlc45xx repo: > > http://gitorious.org/projects/stlc45xx/repos/mainline/commits/35afc5df0027d02d49e6f5bf986dcc4deb4ee6cf This is the same patch for p54spi. It removes all N800/N810 specific code from p54spi, so the driver can be used on other architectures, or configurations as well. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54usb: fix conflict with recent usb changesChristian Lamparter
A recent change in the usb core "USB: change interface to usb_lock_device_for_reset()" conflicts with "p54usb: utilize usb_reset_device for 3887". Sadly, we have to call usb_reset_device before we can upload the firmware on 3887. Unless someone figures out how to reliably stop the 3887 so the hardware is still usable next time we want to start it. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54spi: p54spi driverChristian Lamparter
This patch adds the p54spi driver. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54spi: stlc45xx eeprom blobChristian Lamparter
Usually every prism54 design hardware has a tiny eeprom chip in which all device specific data for calibration and link-tuning is stored. The stlc45xx chips are the only exception. They are made for embedded devices, where space is scarce. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54: longbow frontend supportChristian Lamparter
This patch adds support for longbow RF chip. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54: prepare the eeprom parser routines for longbowChristian Lamparter
This patch adds support to upload pre-calculated calibration data to the firmware. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54: upgrade memrecord to p54_tx_infoChristian Lamparter
mac80211 reserves 24 bytes in skb->cb for the driver. So far, we only used them to keep track of used and free device memory. But p54spi will need a slice of it, as well as the stuck frame detection. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54: refactor p54_alloc_skbChristian Lamparter
Old firmwares had no problems processing frames which filled eighth of the memory window. However we have to be a bit more careful with fat frames when we talk to new firmwares. Apart from that, I confess the old logic was a bit weird and not very sophisticated. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54: return NETDEV_TX_OK in p54_tx and fix sparse warningsChristian Lamparter
This patch addresses all recent comments from Johannes Berg: 1st: (reference http://marc.info/?l=linux-wireless&m=123124685019631 ) >First off: all those should return NETDEV_TX_OK/BUSY. >iwl-agn: returns 0 (== NETDEV_TX_OK, but still should be changed) >[...] >p54: same (some paths) 2nd: > due to your PS patch ("p54: power save management"), please run sparse: > make C=2 CF=-D__CHECK_ENDIAN__ M=... > +drivers/net/wireless/p54/p54common.c:1753:8: warning: incorrect type in assignment (different base types) > +drivers/net/wireless/p54/p54common.c:1769:29: warning: incorrect type in assignment (different base types) The cpu_to_le16 ended up in the wrong line... Sorry! Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54: power save managementChristian Lamparter
This patch implements dynamic power save feature for p54. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54: implement FIF_OTHER_BSS filter settingChristian Lamparter
According to STMicroelectronics' LMAC documentation, the P54_FILTER_TYPE_TRANSPARENT flag "configures the receive frame filter to pass all frames without regard to type and address matching." Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54: enable rx/tx antenna diversity by eeprom bitsChristian Lamparter
Respect all documented bits in the eeprom about the device diversity features. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29mac80211: clean up set_key callbackJohannes Berg
The set_key callback now seems rather odd, passing a MAC address instead of a station struct, and a local address instead of a vif struct. Change that. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Acked-by: Bob Copeland <me@bobcopeland.com> [ath5k] Acked-by: Ivo van Doorn <ivdoorn@gmail.com> [rt2x00] Acked-by: Christian Lamparter <chunkeey@web.de> [p54] Tested-by: Kalle Valo <kalle.valo@nokia.com> [iwl3945] Tested-by: Samuel Ortiz <samuel@sortiz.org> [iwl3945] Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54: regulatory domain hintsChristian Lamparter
This patch adds a sub-routine that parses the default country eeprom entry and forwards the obtained Alpha2 identifier to the regulatory sub-system. Note: I dropped the p54 specific regdomain<->alpha2 conversion code for now. But it will be added as soon as there's the common library function is ready. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54: prevent upload of wrong firmwaresChristian Lamparter
This patch will prevent anyone to upload a firmware which was not designed for his device. There's still a catch: There is no easy way to detect if a firmware is for PCI or for USB (1st Gen), because they all share the same LM86 identifier. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54usb: utilize usb_reset_device for 3887Christian Lamparter
Sometimes on unload or reboot the 3887 USB devices become stuck. <usual log entry> kernel: usbcore: registered new interface driver p54usb kernel: usb 2-10: (p54usb) reset failed! (-110) kernel: p54usb: probe of 2-10:1.0 failed with error -110 [...] and a physical unplug and replug was necessary. However we should be able to do this in software as well, without any user interaction. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54: enable proper frame injectionChristian Lamparter
This patch enables frame injection in monitor mode for all p54 devices. As a result, any user can finally use the aircrack-ng suite out of the box. e.g: aireplay-ng --test wlan0 Trying broadcast probe requests... Injection is working! Found 1 AP Trying directed probe requests... XX:XX:XX:XX:XX:XX - channel: i - 'SSID' Ping (min/avg/max): 1.536ms/3.193ms/4.377ms Power: 193.00 30/30: 100% Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-29p54: label queues with their corresponding namesChristian Lamparter
This patch introduce new shiny named labels for our 8 (4 - on old firmware) queues. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-23p54usb: fix packet loss with first generation devicesChristian Lamparter
Artur Skawina confirmed that the first generation devices needs the same URB_ZERO_PACKET flag, in oder to finish the pending transfer properly. The second generation has been successfully fixed by "p54usb: fix random traffic stalls (LM87)" (43af18f06d5) Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-22p54usb: fix nasty use after freeChristian Lamparter
In theory, the firmware acks the received a data frame, before signaling the driver to free it again. However Artur Skawina <art.08.09@gmail.com> has shown that it can happen in reverse order as well. This is very bad and could lead to memory corruptions, oopses and panics. Thanks to Artur Skawina <art.08.09@gmail.com> for reporting and debugging this issue. Signed-off-by: Christian Lamparter <chunkeey@web.de> Tested-by: Artur Skawina <art.08.09@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-22p54: more cryptographic accelerator fixesChristian Lamparter
If we let the firmware do the data encryption, we have to remove the ICV and (M)MIC at the end of the frame before we can give it back to mac80211. Or, these data frames have a few trailing bytes on cooked monitor interfaces. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-22p54: add missing break in eeprom parserChr
This patch fixes a obvious memory leak in the eeprom parser. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-16p54: fix p54_set_key's return codeChristian Lamparter
p54 doesn't support AES-128-CMAC offload. This patch will fix the noisy mac80211 warnings, when 802.11w is enabled: mac80211-phy189: failed to set key (4, ff:ff:ff:ff:ff:ff) to hardware (-22) mac80211-phy189: failed to set key (5, ff:ff:ff:ff:ff:ff) to hardware (-22) Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-16p54: set_tim must be atomic.Artur Skawina
Fix for: BUG: scheduling while atomic: named/2004/0x10000200 Pid: 2004, comm: named Not tainted 2.6.29-rc1-00271-ge9fa6b0 #45 Call Trace: [<c04d4ef7>] schedule+0x2a7/0x320 [<c03aed74>] __alloc_skb+0x34/0x110 [<c011f5b3>] __cond_resched+0x13/0x30 [<c04d501d>] _cond_resched+0x2d/0x40 [<c016d8c5>] kmem_cache_alloc+0x95/0xc0 [<c016b8d4>] check_object+0xc4/0x230 [<c03aed74>] __alloc_skb+0x34/0x110 [<c02ede91>] p54_alloc_skb+0x71/0xf0 [<c02ee36f>] p54_set_tim+0x3f/0xa0 [<c04ae064>] sta_info_set_tim_bit+0x64/0x80 [<c04c1017>] invoke_tx_handlers+0xd57/0xd80 [<c016c397>] free_debug_processing+0x197/0x210 [<c03ae215>] pskb_expand_head+0xf5/0x170 [<c04bfd94>] __ieee80211_tx_prepare+0x164/0x2f0 [<c04c1a8d>] ieee80211_skb_resize+0x6d/0xe0 [<c04c250f>] ieee80211_master_start_xmit+0x23f/0x550 [<c016d188>] __slab_alloc+0x2b8/0x4f0 [<c013a711>] getnstimeofday+0x51/0x120 [<c03b5e7b>] dev_hard_start_xmit+0x1db/0x240 [<c03c6a4b>] __qdisc_run+0x1ab/0x200 [<c0136aa1>] __run_hrtimer+0x31/0xf0 [<c03b6247>] dev_queue_xmit+0x247/0x500 [<c04c1e56>] ieee80211_subif_start_xmit+0x356/0x7d0 [<c0466ff7>] packet_rcv_spkt+0x37/0x150 [<c0466ff7>] packet_rcv_spkt+0x37/0x150 [<c03b5e7b>] dev_hard_start_xmit+0x1db/0x240 [<c03c6a4b>] __qdisc_run+0x1ab/0x200 [<c03b6247>] dev_queue_xmit+0x247/0x500 [<c03bc1e2>] neigh_resolve_output+0xe2/0x200 [<c0410080>] ip_finish_output+0x0/0x290 [<c0410267>] ip_finish_output+0x1e7/0x290 [<c040f355>] ip_local_out+0x15/0x20 [<c040f5d2>] ip_push_pending_frames+0x272/0x380 [<c042bbc6>] udp_push_pending_frames+0x146/0x3a0 [<c042d52a>] udp_sendmsg+0x2fa/0x6b0 [<c0433bc7>] inet_sendmsg+0x37/0x70 [<c03a7b7e>] sock_sendmsg+0xbe/0x100 [<c0133cd0>] autoremove_wake_function+0x0/0x50 [<c011c043>] __wake_up_common+0x43/0x70 [<c024a892>] copy_from_user+0x32/0x130 [<c024a892>] copy_from_user+0x32/0x130 [<c03b001e>] verify_iovec+0x2e/0xb0 [<c03a7d3f>] sys_sendmsg+0x17f/0x290 [<c017730a>] pipe_write+0x29a/0x570 [<c013a172>] update_wall_time+0x492/0x8e0 [<c013a711>] getnstimeofday+0x51/0x120 [<c011b05d>] sched_slice+0x3d/0x80 [<c013a711>] getnstimeofday+0x51/0x120 [<c0136657>] hrtimer_forward+0x147/0x1a0 [<c01101b0>] lapic_next_event+0x10/0x20 [<c013ccb3>] clockevents_program_event+0xa3/0x170 [<c03a9054>] sys_socketcall+0xa4/0x290 [<c0110920>] smp_apic_timer_interrupt+0x40/0x70 [<c0103165>] sysenter_do_call+0x12/0x25 Signed-off-by: Artur Skawina <art.08.09@gmail.com> Acked-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-16p54: fix oops caused by bad eepromsChristian Lamparter
This patch fixes a bug that could occur, if it the eeprom is incomplete or partly corrupted. BUG: unable to handle kernel NULL pointer dereference at 00000008 IP: p54_assign_address+0x108/0x15d [p54common] Oops: 0002 [#1] SMP Pid: 12988, comm: phy1 Tainted: P W 2.6.28-rc6-wl #3 RIP: 0010: p54_assign_address+0x108/0x15d [p54common] [...] Call Trace: p54_alloc_skb+0xa3/0xc0 [p54common] p54_scan+0x37/0x204 [p54common] [...] Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-13p54: fix "‘ret’ may be used uninitialized" warningJohn W. Linville
drivers/net/wireless/p54/p54common.c: In function ‘p54_config’: drivers/net/wireless/p54/p54common.c:1853: warning: ‘ret’ may be used uninitialized in this function Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-12p54: fix WARN_ON at line 2247 of net/mac80211/rx.cChristian Lamparter
This patch hopefully fixes a mac80211<->p54 interaction problem, which was described by Larry Finger (ref: http://marc.info/?l=linux-wireless&m=123009889327707 ) I guess the warning was triggered by pending frames in the receive queue, while we're doing a band change 5GHz. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-12p54usb: fix random traffic stalls (LM87)Christian Lamparter
All LM87 firmwares need a explicit termination "packet", in oder to finish the pending transfer properly. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-12p54: crypto offload fixesChristian Lamparter
This patch fixes two small flaws: - restore the original TKIP IV if we altered it. - reserve & initialize ICV with zeros. This is actually only necessary for some obsolete p54usb firmwares. But we don't know yet, if all devices are compatible with the new revisions. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-12p54usb: Add USB ID for Thomson Speedtouch 121gMichiel
Add the USB ID for Thomson Speedtouch 121g to p54usb. Signed-off-by: Michiel <michiel@ettema.net> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-01-12p54usb: Fix to prevent SKB memory allocation errors with 4K page sizeLarry Finger
On x86_64 architecture with 4K page size and SLUB debugging enabled, stress testing on p54usb has resulted in skb allocation failures of O(1) and extreme page fragmentation. Reducing rx_mtu fixes this problem by reducing the size of all receive skb allocations to be of O(0). This change does not impact performance in any way. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-12-19p54usb: bring first generation devices back to lifeChristian Lamparter
This patch fixes a serious regression (introduced by: "p54: fix memory management") that affected isl3886+net2280 usb devices operation. Signed-off-by: Christian Lamparter <chunkeey@web.de> Tested-by: Artur Skawina <art.08.09@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-12-19p54: remove free_on_tx parameterChristian Lamparter
This patch simplifies the tx code a bit and will be necessary for the upcoming stlc45xx<->p54 port. In detail: we no longer have to tell all back-end drivers directly, if we want to free a frame right after it was send to the firmware, or if we do it in the library callback later. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-12-19p54: more accurate rssi to dBm conversionChristian Lamparter
This patch replaces the static rssi auto calibration data with more precise values out of the device's eeprom. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-12-19p54: update ACK failure statistic counter in real-timeChristian Lamparter
Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-12-19p54: move statistic timer update routine into a workqueueChristian Lamparter
This patch moves a good chunk of code from the former statistic update timer routine into a workqueue, which is kindly provided by mac80211. Also as a nice side-effect we can lay the foundation for other essential housekeeping features we want to do in the future. e.g: - drain the (clogged) tx_queue. - initiate bursts. Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>