aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/bluetooth
Commit message (Collapse)AuthorAge
* pcmcia: dtl1_cs: fix pcmcia_loop_config logicPhilipp Zabel2009-09-15
| | | | | | | | | | | pcmcia_loop_config returns 0 on success. [wsa: added '< 0' for better readability] Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com> Acked-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* Bluetooth: Add USB autosuspend support to btusb driverOliver Neukum2009-08-24
| | | | | | | | | | | | | | | | | | | | This patch adds support of USB autosuspend to the btusb driver. If the device doesn't support remote wakeup, simple support based on up/down is provided. If the device supports remote wakeup, additional support for autosuspend while the interface is up is provided. This is done by queueing URBs in an anchor structure and waking the device up from a work queue on sending. Reception triggers remote wakeup. The last busy facility of the USB autosuspend code is used. To close a race between autosuspend and transmission, a counter of ongoing transmissions is maintained. Add #ifdefs for CONFIG_PM as necessary. Signed-off-by: Oliver Neukum <oliver@neukum.org> Tested-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Fix false errors from bcsp_pkt_cull functionWending Weng2009-08-24
| | | | | | | | | | | | | | | | | | | | | | | | The error message "Removed only %u out of %u pkts" is printed when multiple to be acked packets are queued. if (i++ >= pkts_to_be_removed) break; This will break out of the loop and increase the counter i when i==pkts_to_be_removed and the loop ends up with i=pkts_to_be_removed+1. The following line if (i != pkts_to_be_removed) { BT_ERR("Removed only %u out of %u pkts", i, pkts_to_be_removed); } will then display the false message. The counter i must not increase on the same statement. Signed-off-by: Wending Weng <wweng@rheinmetall.ca> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Add missing kmalloc NULL tests to Marvell driverJulia Lawall2009-08-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check that the result of kmalloc is not NULL before dereferencing it. The patch also replaces kmalloc + memset by kzalloc. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression *x; identifier f; constant char *C; @@ x = \(kmalloc\|kcalloc\|kzalloc\)(...); ... when != x == NULL when != x != NULL when != (x || ...) ( kfree(x) | f(...,C,...,x,...) | *f(...,x,...) | *x->f ) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Fix incorrect alignment in Marvell BT-over-SDIO driverBing Zhao2009-08-22
| | | | | | | | | The driver uses "u32" for alignment check and calculation which works only on 32-bit system. It will crash the 64-bit system. Replace "u32" with "unsigned long" to fix this issue. Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Remove Enter/Leave debug statements from Marvell driverMarcel Holtmann2009-08-22
| | | | | | | | | The Marvell Bluetooth driver is full of Enter/Leave debug statements and all of them are really pointless and only clutter the code. Seems to be some left-overs when they ported the driver from Windows. For the Linux driver lets remove these. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Fix last few compiler warning within Marvell core driverMarcel Holtmann2009-08-22
| | | | | | | After fixing the driver to use skb_put properly for their HCI commands only a few compiler warnings are left. Add proper casting for them. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Fix Marvell driver to use skb_put and hci_opcode_packMarcel Holtmann2009-08-22
| | | | | | | | The Marvell driver has some weird quirks on how to construct proper SKBs with Bluetooth HCI commands. Fix it to use skb_put properly and also use hci_opcode_pack instead of self-crafted macro. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Remove private device name of Marvell SDIO driverMarcel Holtmann2009-08-22
| | | | | | | | For some reason the btmrvl_device struct has a name field that the SDIO fills in, but then never ever uses again. That is totally pointless and so just remove it. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Fix module description strings for Marvell driverMarcel Holtmann2009-08-22
| | | | | | | Make the module description entries for the core and also the Marvell SDIO driver match common practive inside the Bluetooth subsystem. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Fix complicated assignment of firmware for Marvell devicesMarcel Holtmann2009-08-22
| | | | | | | | | | | The Marvell Bluetooth SDIO driver has a really complicated concept on how firmware names are assigned to specific device ids. Fix that by doing a proper structure and assign it to the module device table. And while at it fix various coding style weirdness that is still present in this driver. Signed-off-by: Marcel Holtman <marcel@holtmann.org>
* Bluetooth: Some coding style cleanup for Marvell core driverMarcel Holtmann2009-08-22
| | | | | | | | The Marvell core Bluetooth driver has various weird casting and unneeded braces in its code that makes it hard to read. Remove all of these to make the code a little bit simpler. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Remove pointless casts from Marvell debugfs supportMarcel Holtmann2009-08-22
| | | | | | | | The Marvell Bluetooth driver has debugfs support and they are casting like there is no tomorrow. Remove all of them and magically the code becomes more readable. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Remove pointless ifdef protection for Marvell header filesMarcel Holtmann2009-08-22
| | | | | | | | | Both header files of the Marvell Bluetooth driver are private anyway and if the driver happens to include them twice or they create a circular dependency then the driver needs fixing. So just remove both pointless ifdefs. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Fix compilation of Marvell driver without debugfsMarcel Holtmann2009-08-22
| | | | | | | | | The Makefile entry for the Marvell driver is broken when it comes to handling the optional DEBUG_FS correctly. That must have been the reason why they were using select in Kconfig in the first place. Fix this and make it really optional. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Fix Kconfig for Marvell Bluetooth driverMarcel Holtmann2009-08-22
| | | | | | | | | | The Marvell driver selects DEBUG_FS and FW_LOADER for its core driver and that is pointless. Don't select DEBUG_FS since it is either enabled or not and it is not for the driver to enable it. Also FW_LOADER is only used within the SDIO driver and so just have that one select the FW_LOADER option. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Add debugfs support to btmrvl driverBing Zhao2009-08-22
| | | | | | | | | | | | | | /debug/btmrvl/config/ /debug/btmrvl/status/ See Documentation/btmrvl.txt for details. This patch incorporates a lot of comments given by Nicolas Pitre <nico@marvell.com>. Many thanks to Nicolas Pitre. Signed-off-by: Rahul Tank <rahult@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Add Marvell BT-over-SDIO driverBing Zhao2009-08-22
| | | | | | | | | | | | | | | This driver supports Marvell Bluetooth enabled devices with SDIO interface. Currently only SD8688 chip is supported. The helper/firmware images of SD8688 can be downloaded from this tree: git://git.infradead.org/users/dwmw2/linux-firmware.git This patch incorporates a lot of comments given by Nicolas Pitre <nico@marvell.com>. Many thanks to Nicolas Pitre. Signed-off-by: Rahul Tank <rahult@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Add btmrvl driver for Marvell Bluetooth devicesBing Zhao2009-08-22
| | | | | | | | | | | | | This driver provides basic definitions and library functions to support Marvell Bluetooth enabled devices, such as 88W8688 WLAN/BT combo chip. This patch incorporates a lot of comments given by Nicolas Pitre <nico@marvell.com>. Many thanks to Nicolas Pitre. Signed-off-by: Rahul Tank <rahult@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Improve USB driver throughput by increasing the frame sizeVikram Kandukuri2009-08-22
| | | | | | | | | | | | This patch increases the receive buffer size to HCI_MAX_FRAME_SIZE which improves the RX throughput considerably. Tested against BRM/Atheros/CSR USB Dongles with PAN profile using iperf and chariot. This gave significant (around 40%) increase in performance (increased from 0.8 to 1.5 Mb/s in Sheld room) Signed-off-by: Vikram Kandukuri <vikram.kandukuri@atheros.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* headers: smp_lock.h reduxAlexey Dobriyan2009-07-12
| | | | | | | | | | | | | * Remove smp_lock.h from files which don't need it (including some headers!) * Add smp_lock.h to files which do need it * Make smp_lock.h include conditional in hardirq.h It's needed only for one kernel_locked() usage which is under CONFIG_PREEMPT This will make hardirq.h inclusion cheaper for every PREEMPT=n config (which includes allmodconfig/allyesconfig, BTW) Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Merge branch 'master' of ↵David S. Miller2009-06-15
|\ | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 Conflicts: Documentation/feature-removal-schedule.txt drivers/scsi/fcoe/fcoe.c net/core/drop_monitor.c net/core/net-traces.c
| * tty: fix bluetooth scribbling on low latency flagsAlan Cox2009-06-11
| | | | | | | | | | | | | | | | | | | | Bluetooth shouldn't be doing this as most drivers don't support the flag, furthermore it shouldn't be needed with newer buffering. This becomes rather more visible as the locking fixes make the abuse of low_latency visible as spew on the users console/dmesg. Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| * tty: rewrite the ldisc lockingAlan Cox2009-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are several pretty much unfixable races in the old ldisc code, especially with respect to pty behaviour and also to hangup. It's easier to rewrite the code than simply try and patch it up. This patch - splits the ldisc from the tty (so we will be able to refcount it more cleanly later) - introduces a mutex lock for ldisc changing on an active device - fixes the complete mess that hangup caused - implements hopefully correct setldisc/close/hangup locking There are still some problems around pty pairs that have always been there but at least it is now possible to understand the code and fix further problems. This fixes the following known bugs - hang up can leak ldisc references - hang up may not call open/close on ldisc in a matched way - pty/tty pairs can deadlock during an ldisc change - reading the ldisc proc files can cause every ldisc to be loaded and probably a few other of the mysterious ldisc race reports. I'm sure it also adds the odd new one. Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | Bluetooth: Fix issue with uninitialized nsh.type in DTL-1 driverMarcel Holtmann2009-06-14
| | | | | | | | | | | | | | | | | | | | | | | | The current build shows a warning with the DTL-1 driver: CC [M] drivers/bluetooth/dtl1_cs.o drivers/bluetooth/dtl1_cs.c: In function ‘dtl1_hci_send_frame’: drivers/bluetooth/dtl1_cs.c:396: warning: ‘nsh.type’ may be used uninitialized in this function Fix this by adding a proper error for unknown packet types. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* | Bluetooth: Remove unused and unneeded support in virtual driverMarcel Holtmann2009-06-08
| | | | | | | | | | | | | | | | The virtual driver implements fasync and ioctl support, but it is not used and unneeded due to its constraints via the Bluetooth core layer. So too just make the driver simpler, remove support for both of them. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* | Bluetooth: Remove BKL from open callback of virtual driverMarcel Holtmann2009-06-08
| | | | | | | | | | | | | | | | The BKL push down added some BKL into the open callback of the virtual driver. The driver is really simple and need no such locking and so just remove it. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* | Bluetooth: Use wait_event_interruptible for virtual driverMarcel Holtmann2009-06-08
| | | | | | | | | | | | | | | | The virtual driver still uses a home grown way of waiting for events and so just replace it with wait_event_interruptible. And while at it remove the useless access_ok() checks. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* | Bluetooth: Use only MISC_DYNAMIC_MINOR for virtual driverMarcel Holtmann2009-06-08
|/ | | | | | | | Allowing to specify a specific misc minor number for the virtual driver is pretty much useless and nobody is using this feature. So just remove it and use MISC_DYNAMIC_MINOR all the time. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Remove some pointless conditionals before kfree_skb()Wei Yongjun2009-02-27
| | | | | | | Remove some pointless conditionals before kfree_skb(). Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Submit bulk URBs along with interrupt URBsMarcel Holtmann2009-02-27
| | | | | | | | | | | | | | Submitting the bulk URBs for ACL data transfers only on demand has no real benefit compared to just submit them when a Bluetooth device gets opened. So when submitting the interrupt URBs for HCI events, just submit the bulk URBs, too. This solves a problem with some Bluetooth USB dongles that has been reported over the last few month. These devices require that the bulk URBs are actually present. These devices are really broken, but there is nothing we can do about it. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Eliminate a sparse warning in bt3c driverAndre Haupt2009-02-27
| | | | | | | This eliminates a sparse warning that symbol 'stat' shadows an earlier one. Signed-off-by: Andre Haupt <andre@bitwigglers.org> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Enable per-module dynamic debug messagesMarcel Holtmann2008-11-30
| | | | | | | | | | | With the introduction of CONFIG_DYNAMIC_PRINTK_DEBUG it is possible to allow debugging without having to recompile the kernel. This patch turns all BT_DBG() calls into pr_debug() to support dynamic debug messages. As a side effect all CONFIG_BT_*_DEBUG statements are now removed and some broken debug entries have been fixed. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Allow SCO audio with Asus WL-BTD202 dongleMarcel Holtmann2008-11-30
| | | | | | | | | This patch allows the Asus WL-BTD202 dongle to be used with a mono headset without having to specify "options btusb force_scofix=1". Based on a patch from Guillaume Bedot <littletux@zarb.org> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Send HCI Reset command by default on device initializationMarcel Holtmann2008-11-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | The Bluetooth subsystem was not using the HCI Reset command when doing device initialization. The Bluetooth 1.0b specification was ambiguous on how the device firmware was suppose to handle it. Almost every device was triggering a transport reset at the same time. In case of USB this ended up in disconnects from the bus. All modern Bluetooth dongles handle this perfectly fine and a lot of them actually require that HCI Reset is sent. If not then they are either stuck in their HID Proxy mode or their internal structures for inquiry and paging are not correctly setup. To handle old and new devices smoothly the Bluetooth subsystem contains a quirk to force the HCI Reset on initialization. However maintaining such a quirk becomes more and more complicated. This patch turns the logic around and lets the old devices disable the HCI Reset command. The only device where the HCI_QUIRK_NO_RESET is still needed are the original Digianswer devices and dongles with an early CSR firmware. CSR reported that they fixed this for version 12 firmware. The last official release of version 11 firmware is build ID 115. The first version 12 candidate was build ID 117. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Remove deprecated hci_usb driverMarcel Holtmann2008-11-30
| | | | | | | | The old hci_usb driver has been fully replaced with the new btusb driver and all major distributions switched to the new driver now. This removes it since it should not be used at all anymore. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Respect HCI_UART_DEBUG config in hci_ll.cNick Pelly2008-11-30
| | | | | | | | | Following the pattern from hci_*.c, turn off BT_DBG messages unless they have been requested via HCI_UART_DEBUG Signed-off-by: Nick Pelly <npelly@google.com> Acked-by: Brian Swetland <swetland@google.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Change simple_strtol to simple_strtoulJulia Lawall2008-11-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since size, addr, fcs, and tmp are unsigned, it would seem better to use simple_strtoul that simple_strtol. A simplified version of the semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @r2@ long e; position p; @@ e = simple_strtol@p(...) @@ position p != r2.p; type T; T e; @@ e = - simple_strtol@p + simple_strtoul (...) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Fix TX error path in btsdio driverTomas Winkler2008-11-30
| | | | | | | | This patch fixes accumulating of the header in case packet was requeued in the error path. Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Add suspend/resume support to btusb driverMarcel Holtmann2008-11-30
| | | | | | | | | During suspend it is important that all URBs are cancelled and then on resume re-submitted. This gives initial suspend/resume support. Based on initial work from Oliver Neukum <oneukum@suse.de> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Handle bulk URBs in btusb driver from notify callbackMarcel Holtmann2008-11-30
| | | | | | | | With the addition of usb_unlink_anchored_urbs() it is possible to fully control the bulk URBs from the notify callback. There is no need to schedule work and so only do this for the ISOC URBs. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* Bluetooth: Add fine grained mem_flags usage to btusb driverMarcel Holtmann2008-11-30
| | | | | | | | | The URB submission routines need more fine grained control for the mem_flags used by kmalloc(), usb_alloc_urb() and usb_submit_urb() to better support different caller situations. Add a mem_flags parameter and give the caller full control. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
* bpa10x: free sk_buff with kfree_skbIlpo Järvinen2008-10-31
| | | | | | | | | | Inspired by Sergio Luis' similar patches, I finally found a case which is trivial enough that spatch won't choke on it. Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Acked-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6Linus Torvalds2008-10-30
|\ | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: fdomain_cs: Sort out modules with duplicate description pcmcia: Whine harder about use of EXCLUSIVE pcmcia: IRQ_TYPE_EXCLUSIVE is long obsoleted
| * pcmcia: IRQ_TYPE_EXCLUSIVE is long obsoletedAlan Cox2008-10-17
| | | | | | | | | | | | | | | | | | Switch more drivers to dynamic sharing after checking their IRQ handlers use dev_id and are robust Signed-off-by: Alan Cox <alan@redhat.com> Acked-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
* | btsdio: free sk_buff with kfree_skbSergio Luis2008-10-27
|/ | | | | | | free sk_buff with kfree_skb, instead of kree Signed-off-by: Sergio Luis <sergio@larces.uece.br> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6Linus Torvalds2008-10-13
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: (49 commits) pcmcia: ioctl-internal definitions pcmcia: cistpl header cleanup pcmcia: remove unused argument to pcmcia_parse_tuple() pcmcia: card services header cleanup pcmcia: device_id header cleanup pcmcia: encapsulate ioaddr_t pcmcia: cleanup device driver header file pcmcia: cleanup socket services header file pcmcia: merge ds_internal.h into cs_internal.h pcmcia: cleanup cs_internal.h pcmcia: cs_internal.h is internal pcmcia: use dev_printk for cs_error() pcmcia: remove CS_ error codes alltogether pcmcia: deprecate CS_BAD_TUPLE pcmcia: deprecate CS_BAD_ARGS pcmcia: deprecate CS_BAD_BASE, CS_BAD_IRQ, CS_BAD_OFFSET and CS_BAD_SIZE pcmcia: deprecate CS_BAD_ATTRIBUTE, CS_BAD_TYPE and CS_BAD_PAGE pcmcia: deprecate CS_NO_MORE_ITEMS pcmcia: deprecate CS_IN_USE pcmcia: deprecate CS_CONFIGURATION_LOCKED ... Fix trivial conflict in drivers/pcmcia/ds.c manually
| * pcmcia: deprecate CS_SUCCESSDominik Brodowski2008-08-22
| | | | | | | | | | | | | | | | | | Instead of using own error or success codes, the PCMCIA code should rely on the generic return values. Therefore, replace all occurrences of CS_SUCCESS with 0. CC: netdev@vger.kernel.org Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
| * pcmcia: pcmcia_config_loop() improvement by passing vccDominik Brodowski2008-08-22
| | | | | | | | | | | | | | | | By passing the current Vcc setting to the pcmcia_config_loop callback function, we can remove pcmcia_get_configuration_info() calls from many drivers. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
| * pcmcia: pcmcia_config_loop() default CIS entry handlingDominik Brodowski2008-08-22
| | | | | | | | | | | | | | Many drivers use the default CIS entry within their pcmcia_config_loop() callback function. Therefore, factor the default CIS entry handling out. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>