Commit Graph

11402 Commits

Author SHA1 Message Date
hwg
5599e38764 wifi: update mt5931 driver to 2.07 2013-01-14 23:06:29 +08:00
hwg
72f408e9f2 wifi: update mt5931 driver to 2.04 2013-01-08 23:58:31 +08:00
黄涛
b77e0e8463 Merge remote-tracking branch 'stable/linux-3.0.y' into develop-3.0
Conflicts:
	Makefile
2012-12-12 17:18:39 +08:00
Bing Zhao
d3a11abf83 mwifiex: report error to MMC core if we cannot suspend
commit dd321acddc upstream.

When host_sleep_config command fails we should return error to
MMC core to indicate the failure for our device.

The misspelled variable is also removed as it's redundant.

Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-12-03 12:59:13 -08:00
Albert Pool
37fd5d3210 rtlwifi: rtl8192cu: Add new USB ID
commit a485e827f0 upstream.

This is an ISY IWL 2000. Probably a clone of Belkin F7D1102 050d:1102.
Its FCC ID is the same.

Signed-off-by: Albert Pool <albertpool@solcon.nl>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-12-03 12:59:13 -08:00
hwg
e921652816 wifi: update mt5931 driver to v2.03 2012-11-29 22:30:02 +08:00
hwg
b04e4f3ea6 wifi: support mt5931 wifi and mt6622 bt 2012-11-28 17:10:22 +08:00
Stanislaw Gruszka
4a7dfa5ea7 rt2800: validate step value for temperature compensation
commit bf7e1abe43 upstream.

Some hardware has correct (!= 0xff) value of tssi_bounds[4] in the
EEPROM, but step is equal to 0xff. This results on ridiculous delta
calculations and completely broke TX power settings.

Reported-and-tested-by: Pavel Lucik <pavel.lucik@gmail.com>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-17 13:14:20 -08:00
Felix Fietkau
a699cd395b ath9k: fix stale pointers potentially causing access to free'd skbs
commit 8c6e30936a upstream.

bf->bf_next is only while buffers are chained as part of an A-MPDU
in the tx queue. When a tid queue is flushed (e.g. on tearing down
an aggregation session), frames can be enqueued again as normal
transmission, without bf_next being cleared. This can lead to the
old pointer being dereferenced again later.

This patch might fix crashes and "Failed to stop TX DMA!" messages.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-17 13:14:20 -08:00
gwl
babfea4e01 add to support rt5370 usb wifi 2012-11-12 12:44:22 +08:00
wuhao
053587a979 revert the wifi power control of commit cb6f8a8f31 2012-11-06 16:28:31 +08:00
wuhao
cb6f8a8f31 for rk2928 v86 2012-11-05 18:44:40 +08:00
Larry Finger
f39a3e8d14 b43legacy: Fix crash on unload when firmware not available
commit 2d838bb608 upstream.

When b43legacy is loaded without the firmware being available, a following
unload generates a kernel NULL pointer dereference BUG as follows:

[  214.330789] BUG: unable to handle kernel NULL pointer dereference at 0000004c
[  214.330997] IP: [<c104c395>] drain_workqueue+0x15/0x170
[  214.331179] *pde = 00000000
[  214.331311] Oops: 0000 [#1] SMP
[  214.331471] Modules linked in: b43legacy(-) ssb pcmcia mac80211 cfg80211 af_packet mperf arc4 ppdev sr_mod cdrom sg shpchp yenta_socket pcmcia_rsrc pci_hotplug pcmcia_core battery parport_pc parport floppy container ac button edd autofs4 ohci_hcd ehci_hcd usbcore usb_common thermal processor scsi_dh_rdac scsi_dh_hp_sw scsi_dh_emc scsi_dh_alua scsi_dh fan thermal_sys hwmon ata_generic pata_ali libata [last unloaded: cfg80211]
[  214.333421] Pid: 3639, comm: modprobe Not tainted 3.6.0-rc6-wl+ #163 Source Technology VIC 9921/ALI Based Notebook
[  214.333580] EIP: 0060:[<c104c395>] EFLAGS: 00010246 CPU: 0
[  214.333687] EIP is at drain_workqueue+0x15/0x170
[  214.333788] EAX: c162ac40 EBX: cdfb8360 ECX: 0000002a EDX: 00002a2a
[  214.333890] ESI: 00000000 EDI: 00000000 EBP: cd767e7c ESP: cd767e5c
[  214.333957]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[  214.333957] CR0: 8005003b CR2: 0000004c CR3: 0c96a000 CR4: 00000090
[  214.333957] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[  214.333957] DR6: ffff0ff0 DR7: 00000400
[  214.333957] Process modprobe (pid: 3639, ti=cd766000 task=cf802e90 task.ti=cd766000)
[  214.333957] Stack:
[  214.333957]  00000292 cd767e74 c12c5e09 00000296 00000296 cdfb8360 cdfb9220 00000000
[  214.333957]  cd767e90 c104c4fd cdfb8360 cdfb9220 cd682800 cd767ea4 d0c10184 cd682800
[  214.333957]  cd767ea4 cba31064 cd767eb8 d0867908 cba31064 d087e09c cd96f034 cd767ec4
[  214.333957] Call Trace:
[  214.333957]  [<c12c5e09>] ? skb_dequeue+0x49/0x60
[  214.333957]  [<c104c4fd>] destroy_workqueue+0xd/0x150
[  214.333957]  [<d0c10184>] ieee80211_unregister_hw+0xc4/0x100 [mac80211]
[  214.333957]  [<d0867908>] b43legacy_remove+0x78/0x80 [b43legacy]
[  214.333957]  [<d083654d>] ssb_device_remove+0x1d/0x30 [ssb]
[  214.333957]  [<c126f15a>] __device_release_driver+0x5a/0xb0
[  214.333957]  [<c126fb07>] driver_detach+0x87/0x90
[  214.333957]  [<c126ef4c>] bus_remove_driver+0x6c/0xe0
[  214.333957]  [<c1270120>] driver_unregister+0x40/0x70
[  214.333957]  [<d083686b>] ssb_driver_unregister+0xb/0x10 [ssb]
[  214.333957]  [<d087c488>] b43legacy_exit+0xd/0xf [b43legacy]
[  214.333957]  [<c1089dde>] sys_delete_module+0x14e/0x2b0
[  214.333957]  [<c110a4a7>] ? vfs_write+0xf7/0x150
[  214.333957]  [<c1240050>] ? tty_write_lock+0x50/0x50
[  214.333957]  [<c110a6f8>] ? sys_write+0x38/0x70
[  214.333957]  [<c1397c55>] syscall_call+0x7/0xb
[  214.333957] Code: bc 27 00 00 00 00 a1 74 61 56 c1 55 89 e5 e8 a3 fc ff ff 5d c3 90 55 89 e5 57 56 89 c6 53 b8 40 ac 62 c1 83 ec 14 e8 bb b7 34 00 <8b> 46 4c 8d 50 01 85 c0 89 56 4c 75 03 83 0e 40 80 05 40 ac 62
[  214.333957] EIP: [<c104c395>] drain_workqueue+0x15/0x170 SS:ESP 0068:cd767e5c
[  214.333957] CR2: 000000000000004c
[  214.341110] ---[ end trace c7e90ec026d875a6 ]---Index: wireless-testing/drivers/net/wireless/b43legacy/main.c

The problem is fixed by making certain that the ucode pointer is not NULL
before deregistering the driver in mac80211.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-10-07 08:27:25 -07:00
Gertjan van Wingerde
b4395a14b8 rt2x00: Fix rfkill polling prior to interface start.
commit a396e10019 upstream.

We need to program the rfkill switch GPIO pin direction to input at
device initialization time, not only when the interface is brought up.
Doing this only when the interface is brought up could lead to rfkill
detecting the switch is turned on erroneously and inability to create
the interface and bringing it up.

Reported-and-tested-by: Andreas Messer <andi@bastelmap.de>
Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Ivo Van Doorn <ivdoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-10-02 09:47:37 -07:00
Gertjan van Wingerde
d89abc3c41 rt2x00: Fix word size of rt2500usb MAC_CSR19 register.
commit 6ced58a5db upstream.

The register is 16 bits wide, not 32.

Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Ivo Van Doorn <ivdoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-10-02 09:47:37 -07:00
linjh
57516c8d11 rk2928-phonepad: update rda power control
[reference file]

	modify file:
		drivers/net/wireless/rda5990/rda_5990_power_ctrl/rda_5990_power_ctrl.c
		drivers/net/wireless/rda5990/rda_wlan/rda5890_if_sdio.c
2012-09-29 16:48:38 +08:00
linjh
97e508f4ea phonepad: commit phonepad(i30) rda code
[reference file]
	modified:
		drivers/net/wireless/Kconfig
		drivers/net/wireless/Makefile
	new file:
		drivers/net/wireless/rda5990/Makefile
		drivers/net/wireless/rda5990/drv_fm_rda/Makefile
		drivers/net/wireless/rda5990/drv_fm_rda/RDA5990_FM_drv.c
		drivers/net/wireless/rda5990/drv_fm_rda/RDA5990_FM_drv_gpio.c
		drivers/net/wireless/rda5990/rda_5990_power_ctrl/Makefile
		drivers/net/wireless/rda5990/rda_5990_power_ctrl/rda_5990_power_ctrl.c
		drivers/net/wireless/rda5990/rda_5990_power_ctrl/rda_5990_power_ctrl_by_gpio.c
		drivers/net/wireless/rda5990/rda_gpio_i2c/Makefile
		drivers/net/wireless/rda5990/rda_gpio_i2c/rda_gpio_i2c.c
		drivers/net/wireless/rda5990/rda_wlan/Makefile
		drivers/net/wireless/rda5990/rda_wlan/Makefile_gwl
		drivers/net/wireless/rda5990/rda_wlan/rda5890_debugfs.c
		drivers/net/wireless/rda5990/rda_wlan/rda5890_debugfs.h
		drivers/net/wireless/rda5990/rda_wlan/rda5890_defs.h
		drivers/net/wireless/rda5990/rda_wlan/rda5890_dev.c
		drivers/net/wireless/rda5990/rda_wlan/rda5890_dev.h
		drivers/net/wireless/rda5990/rda_wlan/rda5890_if_sdio.c
		drivers/net/wireless/rda5990/rda_wlan/rda5890_if_sdio.h
		drivers/net/wireless/rda5990/rda_wlan/rda5890_ioctl.h
		drivers/net/wireless/rda5990/rda_wlan/rda5890_nvram.c
		drivers/net/wireless/rda5990/rda_wlan/rda5890_scan.c
		drivers/net/wireless/rda5990/rda_wlan/rda5890_sdio_patch.c
		drivers/net/wireless/rda5990/rda_wlan/rda5890_txrx.c
		drivers/net/wireless/rda5990/rda_wlan/rda5890_txrx.h
		drivers/net/wireless/rda5990/rda_wlan/rda5890_wext.c
		drivers/net/wireless/rda5990/rda_wlan/rda5890_wext.h
		drivers/net/wireless/rda5990/rda_wlan/rda5890_wid.c
		drivers/net/wireless/rda5990/rda_wlan/rda5890_wid.h
2012-09-27 18:04:00 +08:00
hwg
3056032b0d wifi: modify usb wifi power control for rk2928 2012-09-16 12:41:20 +08:00
hwg
e049351a09 wifi: modify wifi gpio control 2012-09-16 12:20:24 +08:00
Greg Kroah-Hartman
42d6954e99 USB: rtl8187: remove __devinit* from the struct usb_device_id table
commit a3433179d0 upstream.

This structure needs to always stick around, even if CONFIG_HOTPLUG
is disabled, otherwise we can oops when trying to probe a device that
was added after the structure is thrown away.

Thanks to Fengguang Wu and Bjørn Mork for tracking this issue down.

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Reported-by: Bjørn Mork <bjorn@mork.no>
CC: Herton Ronaldo Krzesinski <herton@canonical.com>
CC: Hin-Tak Leung <htl10@users.sourceforge.net>
CC: Larry Finger <Larry.Finger@lwfinger.net>
CC: "John W. Linville" <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-09-14 10:00:40 -07:00
Greg Kroah-Hartman
82c6c33eca USB: p54usb: remove __devinit* from the struct usb_device_id table
commit b9c4167cbb upstream.

This structure needs to always stick around, even if CONFIG_HOTPLUG
is disabled, otherwise we can oops when trying to probe a device that
was added after the structure is thrown away.

Thanks to Fengguang Wu and Bjørn Mork for tracking this issue down.

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Reported-by: Bjørn Mork <bjorn@mork.no>
CC: Christian Lamparter <chunkeey@googlemail.com>
CC: "John W. Linville" <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-09-14 10:00:40 -07:00
Lorenzo Bianconi
c227ece753 ath9k: fix decrypt_error initialization in ath_rx_tasklet()
commit e1352fde56 upstream.

ath_rx_tasklet() calls ath9k_rx_skb_preprocess() and ath9k_rx_skb_postprocess()
in a loop over the received frames. The decrypt_error flag is
initialized to false
just outside ath_rx_tasklet() loop. ath9k_rx_accept(), called by
ath9k_rx_skb_preprocess(),
only sets decrypt_error to true and never to false.
Then ath_rx_tasklet() calls ath9k_rx_skb_postprocess() and passes
decrypt_error to it.
So, after a decryption error, in ath9k_rx_skb_postprocess(), we can
have a leftover value
from another processed frame. In that case, the frame will not be marked with
RX_FLAG_DECRYPTED even if it is decrypted correctly.
When using CCMP encryption this issue can lead to connection stuck
because of CCMP
PN corruption and a waste of CPU time since mac80211 tries to decrypt an already
deciphered frame with ieee80211_aes_ccm_decrypt.
Fix the issue initializing decrypt_error flag at the begging of the
ath_rx_tasklet() loop.

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-09-14 10:00:39 -07:00
hwg
3007ce0c88 wifi: add usb wifi power control 2012-09-11 18:42:27 +08:00
kfx
c4ee5b4b27 rk2928: a720: usb wifi: add power control 2012-09-11 11:18:06 +08:00
Jeongdo Son
3a933fe49e rt2x00: Add support for BUFFALO WLI-UC-GNM2 to rt2800usb.
commit a769f95772 upstream.

This is a RT3070 based device.

Signed-off-by: Jeongdo Son <sohn9086@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-08-26 15:12:13 -07:00
黄涛
b2be450f10 Merge remote-tracking branch 'origin/develop-3.0' into develop-3.0-jb
Conflicts:
	include/net/cfg80211.h
2012-08-21 14:14:24 +08:00
gwl
e85be8c2be add rtl8188eu to rkwifi_sys_iface.c 2012-08-20 14:50:02 +08:00
黄涛
21d650142f Revert "add usb wifi rtl8188eus support."
This reverts commit 1c9e908069.

Conflicts:

	drivers/net/wireless/Kconfig
	drivers/net/wireless/Makefile
	drivers/net/wireless/wifi_sys/rkwifi_sys_iface.c
2012-08-17 22:59:47 +08:00
黄涛
d7fb2169b6 Merge remote-tracking branch 'origin/develop-3.0-rk2928' into develop-3.0
Conflicts:
	arch/arm/mach-rk30/include/mach/rk30_camera.h
	arch/arm/plat-rk/include/plat/rk_camera.h
	drivers/gpio/gpio-tps65910.c
	drivers/media/video/rk30_camera_oneframe.c
	drivers/mmc/host/rk29_sdmmc.c
	drivers/net/wireless/Kconfig
	drivers/net/wireless/Makefile
	drivers/net/wireless/wifi_sys/rkwifi_sys_iface.c
	drivers/regulator/rk30-pwm-regulator.c
	drivers/usb/dwc_otg/dwc_otg_driver.c
	drivers/usb/dwc_otg/dwc_otg_hcd.c
	drivers/usb/dwc_otg/dwc_otg_pcd.c
	sound/soc/codecs/Makefile
	sound/soc/rk29/Kconfig
2012-08-17 21:48:20 +08:00
gwl
1c9e908069 add usb wifi rtl8188eus support. 2012-08-17 15:10:37 +08:00
Stanislaw Gruszka
931d5990ed rt61pci: fix NULL pointer dereference in config_lna_gain
commit deee0214de upstream.

We can not pass NULL libconf->conf->channel to rt61pci_config() as it
is dereferenced unconditionally in rt61pci_config_lna_gain() subroutine.

Resolves:
https://bugzilla.kernel.org/show_bug.cgi?id=44361

Reported-and-tested-by: <dolohow@gmail.com>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-08-15 12:04:30 -07:00
xbw
17f39ed917 add MTK-combo-module 2012-08-10 14:02:20 +08:00
黄涛
91f521d23d Merge remote-tracking branch 'origin/develop-3.0' into develop-3.0-jb 2012-07-31 14:16:32 +08:00
gwl
8aa69d7611 change usb wifi insmod way to ko, add new usb wifi rtl8188eu 2012-07-31 11:37:17 +08:00
Stanislaw Gruszka
16f1a5d495 rt2x00usb: fix indexes ordering on RX queue kick
commit efd821182c upstream.

On rt2x00_dmastart() we increase index specified by Q_INDEX and on
rt2x00_dmadone() we increase index specified by Q_INDEX_DONE. So entries
between Q_INDEX_DONE and Q_INDEX are those we currently process in the
hardware. Entries between Q_INDEX and Q_INDEX_DONE are those we can
submit to the hardware.

According to that fix rt2x00usb_kick_queue(), as we need to submit RX
entries that are not processed by the hardware. It worked before only
for empty queue, otherwise was broken.

Note that for TX queues indexes ordering are ok. We need to kick entries
that have filled skb, but was not submitted to the hardware, i.e.
started from Q_INDEX_DONE and have ENTRY_DATA_PENDING bit set.

From practical standpoint this fixes RX queue stall, usually reproducible
in AP mode, like for example reported here:
https://bugzilla.redhat.com/show_bug.cgi?id=828824

Reported-and-tested-by: Franco Miceli <fmiceli@plan.ceibal.edu.uy>
Reported-and-tested-by: Tom Horsley <horsley1953@gmail.com>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-07-19 08:58:21 -07:00
黄涛
f30ecbfd21 Merge remote-tracking branch 'stable/linux-3.0.y' into develop-3.0-jb
Conflicts:
	drivers/net/wireless/ath/ath9k/hw.c
	drivers/net/wireless/ath/ath9k/main.c
	drivers/net/wireless/rtl818x/rtl8187/leds.c
2012-07-18 11:12:45 +08:00
Stanislaw Gruszka
6a62ab54c2 rtl8187: ->brightness_set can not sleep
commit 0fde0a8cfd upstream.

Fix:

BUG: sleeping function called from invalid context at kernel/workqueue.c:2547
in_atomic(): 1, irqs_disabled(): 0, pid: 629, name: wpa_supplicant
2 locks held by wpa_supplicant/629:
 #0:  (rtnl_mutex){+.+.+.}, at: [<c08b2b84>] rtnl_lock+0x14/0x20
 #1:  (&trigger->leddev_list_lock){.+.?..}, at: [<c0867f41>] led_trigger_event+0x21/0x80
Pid: 629, comm: wpa_supplicant Not tainted 3.3.0-0.rc3.git5.1.fc17.i686
Call Trace:
 [<c046a9f6>] __might_sleep+0x126/0x1d0
 [<c0457d6c>] wait_on_work+0x2c/0x1d0
 [<c045a09a>] __cancel_work_timer+0x6a/0x120
 [<c045a160>] cancel_delayed_work_sync+0x10/0x20
 [<f7dd3c22>] rtl8187_led_brightness_set+0x82/0xf0 [rtl8187]
 [<c0867f7c>] led_trigger_event+0x5c/0x80
 [<f7ff5e6d>] ieee80211_led_radio+0x1d/0x40 [mac80211]
 [<f7ff3583>] ieee80211_stop_device+0x13/0x230 [mac80211]

Removing _sync is ok, because if led_on work is currently running
it will be finished before led_off work start to perform, since
they are always queued on the same mac80211 local->workqueue.

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=795176

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Acked-by: Hin-Tak Leung <htl10@users.sourceforge.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Cc: Josh Boyer <jwboyer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-07-16 08:47:51 -07:00
Stone Piao
c148a3eb63 mwifiex: fix 11n rx packet drop issue
commit 925839243d upstream.

Currently we check the sequence number of last packet received
against start_win. If a sequence hole is detected, start_win is
updated to next sequence number.

Since the rx sequence number is initialized to 0, a corner case
exists when BA setup happens immediately after association. As
0 is a valid sequence number, start_win gets increased to 1
incorrectly. This causes the first packet with sequence number 0
being dropped.

Initialize rx sequence number as 0xffff and skip adjusting
start_win if the sequence number remains 0xffff. The sequence
number will be updated once the first packet is received.

Signed-off-by: Stone Piao <piaoyun@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Kiran Divekar <dkiran@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-07-16 08:47:49 -07:00
Panayiotis Karabassis
5fe4d12cfb ath9k: enable serialize_regmode for non-PCIE AR9287
commit 7508b65796 upstream.

https://bugzilla.kernel.org/show_bug.cgi?id=42903

Based on the work of <fynivx@gmail.com>

Signed-off-by: Panayiotis Karabassis <panayk@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-07-16 08:47:39 -07:00
Mohammed Shafi Shajakhan
3a3ca923be ath9k_hw: avoid possible infinite loop in ar9003_get_pll_sqsum_dvc
commit f18e3c6b67 upstream.

"ath9k: Fix softlockup in AR9485" with commit id
64bc1239c7 fixed the reported
issue, yet its better to avoid the possible infinite loop
in ar9003_get_pll_sqsum_dvc by having a timeout as suggested
by ath9k maintainers.
http://www.spinics.net/lists/linux-wireless/msg92126.html.
Based on my testing PLL's locking measurement is done in
~200us (2 iterations).

Cc: Rolf Offermanns <rolf.offermanns@gmx.net>
Cc: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Cc: Senthil Balasubramanian <senthilb@qca.qualcomm.com>
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-07-16 08:47:39 -07:00
Mohammed Shafi Shajakhan
de39eed0da ath9k: Fix softlockup in AR9485
commit bcb7ad7bcb upstream.

steps to recreate:
load latest ath9k driver with AR9485
stop the network-manager and wpa_supplicant
bring the interface up

	Call Trace:
	[<ffffffffa0517490>] ? ath_hw_check+0xe0/0xe0 [ath9k]
	[<ffffffff812cd1e8>] __const_udelay+0x28/0x30
	[<ffffffffa03bae7a>] ar9003_get_pll_sqsum_dvc+0x4a/0x80 [ath9k_hw]
	[<ffffffffa05174eb>] ath_hw_pll_work+0x5b/0xe0 [ath9k]
	[<ffffffff810744fe>] process_one_work+0x11e/0x470
	[<ffffffff8107530f>] worker_thread+0x15f/0x360
	[<ffffffff810751b0>] ? manage_workers+0x230/0x230
	[<ffffffff81079af3>] kthread+0x93/0xa0
	[<ffffffff815fd3a4>] kernel_thread_helper+0x4/0x10
	[<ffffffff81079a60>] ? kthread_freezable_should_stop+0x70/0x70
	[<ffffffff815fd3a0>] ? gs_change+0x13/0x13

ensure that the PLL-WAR for AR9485/AR9340 is executed only if the STA is
associated (or) IBSS/AP mode had started beaconing. Ideally this WAR
is needed to recover from some rare beacon stuck during stress testing.
Before the STA is associated/IBSS had started beaconing, PLL4(0x1618c)
always seem to have zero even though we had configured PLL3(0x16188) to
query about PLL's locking status. When we keep on polling infinitely PLL4's
8th bit(ie check for PLL locking measurements is done), machine hangs
due to softlockup.

fixes https://bugzilla.redhat.com/show_bug.cgi?id=811142

Reported-by: Rolf Offermanns <rolf.offermanns@gmx.net>
Tested-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-07-16 08:47:38 -07:00
Emmanuel Grumbach
e2b55892ce iwlwifi: don't mess up the SCD when removing a key
commit d6ee27eb13 upstream.

When we remove a key, we put a key index which was supposed
to tell the fw that we are actually removing the key. But
instead the fw took that index as a valid index and messed
up the SRAM of the device.

This memory corruption on the device mangled the data of
the SCD. The impact on the user is that SCD queue 2 got
stuck after having removed keys.
The message is the log that was printed is:

Queue 2 stuck for 10000ms

This doesn't seem to fix the higher queues that get stuck
from time to time.

Reviewed-by: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-06-17 11:23:12 -07:00
Grazvydas Ignotas
65926f3ad3 wl1251: fix oops on early interrupt
commit f380f2c4a1 upstream.

This driver disables interrupt just after requesting it and enables it
later, after interface is up. However currently there is a time window
between request_irq() and disable_irq() where if interrupt arrives, the
driver oopses because it's not yet ready to process it. This can be
reproduced by inserting the module, associating and removing the module
multiple times.

Eliminate this race by setting IRQF_NOAUTOEN flag before request_irq().

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-06-10 00:33:05 +09:00
Meenakshi Venkataraman
e48fdd4d09 iwlwifi: update BT traffic load states correctly
commit 882dde8eb0 upstream.

When BT traffic load changes from its
previous state, a new LQ command needs to be
sent down to the firmware. This needs to
be done only once per change. The state
variable that keeps track of this change is
last_bt_traffic_load. However, it was not
being updated when the change had been
handled. Not updating this variable was
causing a flood of advanced BT config
commands to be sent to the firmware. Fix
this.

Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-06-10 00:32:58 +09:00
gwl
91dd60b088 update usb wifi for rk30 platform 2012-05-10 18:14:38 +08:00
hwg
22dc008788 Wifi: add bcm4330 use rkwifi.ko 2012-05-09 16:17:25 +08:00
CMY
f29ef1ff8b rkwifi: change config name for 26M and 37.4M, and update bt chip name 2012-05-09 15:57:00 +08:00
hwg
0f7f0d1406 rkwifi: add crystal freq select for 26M and 37.4M 2012-05-09 15:20:54 +08:00
hwg
6795b1ca14 rkwifi: use ko replace of uu, ver 4.05 2012-05-09 14:35:03 +08:00
gwl
289a40c55d Fix rkwifi for rk30 2012-05-09 10:08:46 +08:00