aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/bluetooth/ath3k.c
diff options
context:
space:
mode:
authorSteven.Li <Steven.Li@Atheros.com>2011-07-01 14:02:36 +0800
committerGreg Kroah-Hartman <gregkh@suse.de>2011-11-11 09:36:40 -0800
commit4770ac2af6255b6c64d290606b54fa2e2bfcbe08 (patch)
tree4cfd31ec8362f047574d2a4de902943c28b82985 /drivers/bluetooth/ath3k.c
parent39361fcb63d49f4036af08473c503e006e063ddc (diff)
downloadkernel_samsung_smdk4412-4770ac2af6255b6c64d290606b54fa2e2bfcbe08.zip
kernel_samsung_smdk4412-4770ac2af6255b6c64d290606b54fa2e2bfcbe08.tar.gz
kernel_samsung_smdk4412-4770ac2af6255b6c64d290606b54fa2e2bfcbe08.tar.bz2
Bluetooth: Add Atheros AR3012 one PID/VID supported
commit 2d25f8b462f3b849d8913d02978657ef06e67dd8 upstream. The new Ath3k needs to download patch and radio table, and it keeps same PID/VID even after downloading the patch and radio table. This patch is to use the bcdDevice (Device Release Number) to judge whether the chip has been patched or not. The init bcdDevice value of the chip is 0x0001, this value increases after patch and radio table downloading. Signed-off-by: Steven.Li <yongli@qca.qualcomm.com> Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/bluetooth/ath3k.c')
-rw-r--r--drivers/bluetooth/ath3k.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
index 1631fd0..db7cb81 100644
--- a/drivers/bluetooth/ath3k.c
+++ b/drivers/bluetooth/ath3k.c
@@ -376,6 +376,11 @@ static int ath3k_probe(struct usb_interface *intf,
/* load patch and sysconfig files for AR3012 */
if (id->driver_info & BTUSB_ATH3012) {
+
+ /* New firmware with patch and sysconfig files already loaded */
+ if (le16_to_cpu(udev->descriptor.bcdDevice) > 0x0001)
+ return -ENODEV;
+
ret = ath3k_load_patch(udev);
if (ret < 0) {
BT_ERR("Loading patch file failed");