Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[pandora-kernel.git] / drivers / bluetooth / ath3k.c
index 5577ed6..a585473 100644 (file)
@@ -62,6 +62,7 @@ static struct usb_device_id ath3k_table[] = {
 
        /* Atheros AR3011 with sflash firmware*/
        { USB_DEVICE(0x0CF3, 0x3002) },
+       { USB_DEVICE(0x13d3, 0x3304) },
 
        /* Atheros AR9285 Malbec with sflash firmware */
        { USB_DEVICE(0x03F0, 0x311D) },
@@ -138,9 +139,6 @@ static int ath3k_load_firmware(struct usb_device *udev,
                count -= size;
        }
 
-       kfree(send_buf);
-       return 0;
-
 error:
        kfree(send_buf);
        return err;
@@ -377,6 +375,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");