iommu: parisc: make the IOMMUs respect the segment boundary limits
[cascardo/linux.git] / drivers / bluetooth / hci_usb.c
index 59b0548..372c7ef 100644 (file)
@@ -111,6 +111,7 @@ static struct usb_device_id blacklist_ids[] = {
        { USB_DEVICE(0x0a5c, 0x2033), .driver_info = HCI_IGNORE },
 
        /* Broadcom BCM2035 */
+       { USB_DEVICE(0x0a5c, 0x2035), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
        { USB_DEVICE(0x0a5c, 0x200a), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
        { USB_DEVICE(0x0a5c, 0x2009), .driver_info = HCI_BCM92035 },
 
@@ -691,15 +692,18 @@ static void hci_usb_rx_complete(struct urb *urb)
                                        urb->iso_frame_desc[i].offset,
                                        urb->iso_frame_desc[i].actual_length);
        
-                       if (!urb->iso_frame_desc[i].status)
+                       if (!urb->iso_frame_desc[i].status) {
+                               husb->hdev->stat.byte_rx += urb->iso_frame_desc[i].actual_length;
                                hci_recv_fragment(husb->hdev, _urb->type, 
                                        urb->transfer_buffer + urb->iso_frame_desc[i].offset,
                                        urb->iso_frame_desc[i].actual_length);
+                       }
                }
 #else
                ;
 #endif
        } else {
+               husb->hdev->stat.byte_rx += count;
                err = hci_recv_fragment(husb->hdev, _urb->type, urb->transfer_buffer, count);
                if (err < 0) { 
                        BT_ERR("%s corrupted packet: type %d count %d",