aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath/carl9170/usb.c
AgeCommit message (Collapse)AuthorFilesLines
2015-05-26carl9170: match wait_for_completion_timeout return typeNicholas Mc Guire1-2/+3
Return type of wait_for_completion_timeout is unsigned long not int. An appropriately named unsigned long is added, and the assignments as well as error checking fixed up. API conformance testing for completions with coccinelle spatches are being used to locate API usage inconsistencies: ./drivers/net/wireless/ath/carl9170/usb.c:675 int return assigned to unsigned long Patch was compile tested with x86_64_defconfig + CONFIG_ATH_CARDS=m, CONFIG_CARL9170=m Patch is against 4.1-rc3 (localversion-next is -next-20150512) Signed-off-by: Nicholas Mc Guire <[email protected]> Acked-by: Christian Lamparter <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2014-08-11carl9170: fix sending URBs with wrong type when using full-speedRonald Wahl1-4/+27
The driver assumes that endpoint 4 is always an interrupt endpoint. Unfortunately the type differs between high-speed and full-speed configurations while in the former case it is indeed an interrupt endpoint this is not true for the latter case - here it is a bulk endpoint. When sending URBs with the wrong type the kernel will generate a warning message including backtrace. In this specific case there will be a huge amount of warnings which can bring the system to freeze. To fix this we are now sending URBs to endpoint 4 using the type found in the endpoint descriptor. A side note: The carl9170 firmware currently specifies endpoint 4 as interrupt endpoint even in the full-speed configuration but this has no relevance because before this firmware is loaded the endpoint type is as described above and after the firmware is running the stick is not reenumerated and so the old descriptor is used. Signed-off-by: Ronald Wahl <[email protected]> Cc: <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2014-05-22carl9170: fix leaks at failure path in carl9170_usb_probe()Alexey Khoroshilov1-1/+7
carl9170_usb_probe() does not handle request_firmware_nowait() failure that leads to several leaks in this case. The patch adds all required deallocations. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2013-11-15tree-wide: use reinit_completion instead of INIT_COMPLETIONWolfram Sang1-1/+1
Use this new function to make code more comprehensible, since we are reinitialzing the completion, not initializing. [[email protected]: linux-next resyncs] Signed-off-by: Wolfram Sang <[email protected]> Acked-by: Linus Walleij <[email protected]> (personally at LCE13) Cc: Ingo Molnar <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2012-10-19carl9170: handle traps from firmware loaderChristian Lamparter1-0/+7
This patch changes the way the driver deals with command responses and traps which are sent through the special interrupt input endpoint 3. While the carl9170 firmware does not use this endpoint for command responses or traps, the firmware loader on the device does. It uses it to notify the host about 'watchdog triggered' in case the firmware/hardware has crashed. Note: Even without this patch, the driver is still able to detect the mishap and reset the device. But previously it did that because the trap event caused an out-of-order message sequence number error, which also triggered a reset. Signed-off-by: Christian Lamparter <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-05-18USB: Disable hub-initiated LPM for comms devices.Sarah Sharp1-0/+1
Hub-initiated LPM is not good for USB communications devices. Comms devices should be able to tell when their link can go into a lower power state, because they know when an incoming transmission is finished. Ideally, these devices would slam their links into a lower power state, using the device-initiated LPM, after finishing the last packet of their data transfer. If we enable the idle timeouts for the parent hubs to enable hub-initiated LPM, we will get a lot of useless LPM packets on the bus as the devices reject LPM transitions when they're in the middle of receiving data. Worse, some devices might blindly accept the hub-initiated LPM and power down their radios while they're in the middle of receiving a transmission. The Intel Windows folks are disabling hub-initiated LPM for all USB communications devices under a xHCI USB 3.0 host. In order to keep the Linux behavior as close as possible to Windows, we need to do the same in Linux. Set the disable_hub_initiated_lpm flag for for all USB communications drivers. I know there aren't currently any USB 3.0 devices that implement these class specifications, but we should be ready if they do. Signed-off-by: Sarah Sharp <[email protected]> Cc: Marcel Holtmann <[email protected]> Cc: Gustavo Padovan <[email protected]> Cc: Johan Hedberg <[email protected]> Cc: Hansjoerg Lipp <[email protected]> Cc: Tilman Schmidt <[email protected]> Cc: Karsten Keil <[email protected]> Cc: Peter Korsgaard <[email protected]> Cc: Jan Dumon <[email protected]> Cc: Petko Manolov <[email protected]> Cc: Steve Glendinning <[email protected]> Cc: "John W. Linville" <[email protected]> Cc: Kalle Valo <[email protected]> Cc: "Luis R. Rodriguez" <[email protected]> Cc: Jouni Malinen <[email protected]> Cc: Vasanthakumar Thiagarajan <[email protected]> Cc: Senthil Balasubramanian <[email protected]> Cc: Christian Lamparter <[email protected]> Cc: Brett Rudley <[email protected]> Cc: Roland Vossen <[email protected]> Cc: Arend van Spriel <[email protected]> Cc: "Franky (Zhenhui) Lin" <[email protected]> Cc: Kan Yan <[email protected]> Cc: Dan Williams <[email protected]> Cc: Jussi Kivilinna <[email protected]> Cc: Ivo van Doorn <[email protected]> Cc: Gertjan van Wingerde <[email protected]> Cc: Helmut Schaa <[email protected]> Cc: Herton Ronaldo Krzesinski <[email protected]> Cc: Hin-Tak Leung <[email protected]> Cc: Larry Finger <[email protected]> Cc: Chaoming Li <[email protected]> Cc: Daniel Drake <[email protected]> Cc: Ulrich Kunitz <[email protected]> Signed-off-by: Sarah Sharp <[email protected]>
2011-11-18USB: convert drivers/net/* to use module_usb_driver()Greg Kroah-Hartman1-12/+1
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 <[email protected]> Cc: Samuel Ortiz <[email protected]> Cc: Oliver Neukum <[email protected]> Cc: Peter Korsgaard <[email protected]> Cc: Petko Manolov <[email protected]> Cc: Steve Glendinning <[email protected]> Cc: Christian Lamparter <[email protected]> Cc: "John W. Linville" <[email protected]> Cc: Dan Williams <[email protected]> Cc: Jussi Kivilinna <[email protected]> Cc: Ivo van Doorn <[email protected]> Cc: Gertjan van Wingerde <[email protected]> Cc: Helmut Schaa <[email protected]> Cc: Herton Ronaldo Krzesinski <[email protected]> Cc: Hin-Tak Leung <[email protected]> Cc: Larry Finger <[email protected]> Cc: Chaoming Li <[email protected]> Cc: Lucas De Marchi <[email protected]> Cc: "David S. Miller" <[email protected]> Cc: Roel Kluin <[email protected]> Cc: Paul Gortmaker <[email protected]> Cc: Jiri Pirko <[email protected]> Cc: Pavel Roskin <[email protected]> Cc: Yoann DI-RUZZA <[email protected]> Cc: George <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2011-07-05carl9170: add NEC WL300NU-AG usbidChristian Lamparter1-0/+2
Cc: [email protected] Reported-by: Mark Davis Signed-off-by: Christian Lamparter <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-03-31Fix common misspellingsLucas De Marchi1-1/+1
Fixes generated by 'codespell' and manually reviewed. Signed-off-by: Lucas De Marchi <[email protected]>
2011-02-25carl9170: add Airlive X.USB a/b/g/n USBIDJan Puk1-0/+2
"AirLive X.USB now works perfectly under a Linux environment!" Cc: <[email protected]> Signed-off-by: Christian Lamparter <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2011-01-04carl9170: fix usb pm suspend->resume woesChristian Lamparter1-16/+37
This patch revamps some common code-paths which are shared between (re-)initialization and suspend/resume subroutines. It also adds some helpful comments about quirks and associated difficulties. It's quite big, but it should fix #25382: <https://bugzilla.kernel.org/show_bug.cgi?id=25382> And hopefully the code is robust enough to deal with all possible suspend/resume scenarios without requiring the user to do any sort of manual and possibly dangerous work. Signed-off-by: Christian Lamparter <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2010-12-02wireless: Remove unnecessary casts of usb_get_intfdataJoe Perches1-2/+1
Signed-off-by: Joe Perches <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2010-11-24Merge branch 'master' of ↵John W. Linville1-3/+5
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
2010-11-15carl9170: fix usb anchor wait timeoutChristian Lamparter1-2/+2
usb_wait_anchor_empty_timeout's @timeout wants milliseconds and not jiffies. Signed-off-by: Christian Lamparter <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2010-11-15carl9170: fix spurious restart due to high latencyChristian Lamparter1-1/+1
RX Stress tests of unidirectional bulk traffic with bitrates of up to 220Mbit/s have revealed that the fatal-event recovery logic [which was solely triggered by an out-of-rx-buffer situation] is too aggressive. The new method now "pings" the device and then decides - based on the response - whenever a restart is needed or not. Signed-off-by: Christian Lamparter <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2010-11-08carl9170: usbid table updatesChristian Lamparter1-1/+3
This patch includes the following updates: * add D-Link DWA-130 Rev D * Netgear has three WNDA3100 versions. the original WNDA3100 is now called WNDA3100v1. Signed-off-by: Christian Lamparter <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2010-10-25carl9170: fix async command buffer leakChristian Lamparter1-6/+19
If __carl9170_exec_cmd fails to upload an asynchronous command to the device, the functions: carl9170_reboot and carl9170_powersave will leak the temporary command assembly buffer. Signed-off-by: Christian Lamparter <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2010-09-28carl9170: interrupt urbs must not set URB_ZERO_PACKETChristian Lamparter1-2/+0
This patch fixes a bug in the driver which was exposed by CONFIG_USB_DEBUG: "usb 1-1.6.3: BOGUS urb flags, 40 --> 0" The transfer flag "URB_ZERO_PACKET" is only valid for bulk urbs. Reported-by: André Erdmann Signed-off-by: Christian Lamparter <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2010-09-21carl9170: fix state downgrade during resetChristian Lamparter1-2/+0
Don't mark the device as completely dead just yet. If all goes to plan and carl9170_reboot succeeds then we can skip the expensive userspace-driven reinitialization anyway. And if it doesn't and carl9170_reboot fails, then carl9170_usb_cancel_urbs will do the necessary steps. Signed-off-by: Christian Lamparter <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2010-09-21carl9170: abort tasklet during usb resetChristian Lamparter1-0/+3
This patch prevents the tasklet code from interfering while the firmware is down for an unscheduled maintenance. Signed-off-by: Christian Lamparter <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2010-09-14carl9170: 802.11 rx/tx processing and usb backendChristian Lamparter1-0/+1137
Signed-off-by: Christian Lamparter <[email protected]> Signed-off-by: John W. Linville <[email protected]>