diff options
author | Vikram Kandukuri <vkandukuri@atheros.com> | 2009-07-02 05:01:59 -0400 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2009-08-22 17:12:37 -0400 |
commit | 290ba200815fdecb4d40dc942499c4ea6d0c4624 (patch) | |
tree | b6a097bd9b8ddd580501aa9871af3380e95bd5dc /drivers/bluetooth/btusb.c | |
parent | 981b1414d78a7a42cab48b97d4de54a62d61db88 (diff) |
Bluetooth: Improve USB driver throughput by increasing the frame size
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>
Diffstat (limited to 'drivers/bluetooth/btusb.c')
-rw-r--r-- | drivers/bluetooth/btusb.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index e70c57ee4221..124db8cd144c 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c | |||
@@ -301,7 +301,7 @@ static int btusb_submit_bulk_urb(struct hci_dev *hdev, gfp_t mem_flags) | |||
301 | struct urb *urb; | 301 | struct urb *urb; |
302 | unsigned char *buf; | 302 | unsigned char *buf; |
303 | unsigned int pipe; | 303 | unsigned int pipe; |
304 | int err, size; | 304 | int err, size = HCI_MAX_FRAME_SIZE; |
305 | 305 | ||
306 | BT_DBG("%s", hdev->name); | 306 | BT_DBG("%s", hdev->name); |
307 | 307 | ||
@@ -312,8 +312,6 @@ static int btusb_submit_bulk_urb(struct hci_dev *hdev, gfp_t mem_flags) | |||
312 | if (!urb) | 312 | if (!urb) |
313 | return -ENOMEM; | 313 | return -ENOMEM; |
314 | 314 | ||
315 | size = le16_to_cpu(data->bulk_rx_ep->wMaxPacketSize); | ||
316 | |||
317 | buf = kmalloc(size, mem_flags); | 315 | buf = kmalloc(size, mem_flags); |
318 | if (!buf) { | 316 | if (!buf) { |
319 | usb_free_urb(urb); | 317 | usb_free_urb(urb); |