Bluetooth: Improve USB driver throughput by increasing the frame size
authorVikram Kandukuri <vkandukuri@atheros.com>
Thu, 2 Jul 2009 09:01:59 +0000 (14:31 +0530)
committerMarcel Holtmann <marcel@holtmann.org>
Sat, 22 Aug 2009 21:12:37 +0000 (14:12 -0700)
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>
drivers/bluetooth/btusb.c

index e70c57e..124db8c 100644 (file)
@@ -301,7 +301,7 @@ static int btusb_submit_bulk_urb(struct hci_dev *hdev, gfp_t mem_flags)
        struct urb *urb;
        unsigned char *buf;
        unsigned int pipe;
-       int err, size;
+       int err, size = HCI_MAX_FRAME_SIZE;
 
        BT_DBG("%s", hdev->name);
 
@@ -312,8 +312,6 @@ static int btusb_submit_bulk_urb(struct hci_dev *hdev, gfp_t mem_flags)
        if (!urb)
                return -ENOMEM;
 
-       size = le16_to_cpu(data->bulk_rx_ep->wMaxPacketSize);
-
        buf = kmalloc(size, mem_flags);
        if (!buf) {
                usb_free_urb(urb);