On 1/10/2011 10:24 PM, Alexander Holler wrote:
Hello,
because the merge window is currently open, should I resend that patch
or post it on another mailing list too?
I still think that driver should not waste about 250kb of memory. ;)
Regards,
Alexander
Am 30.11.2010 02:52, schrieb Gustavo F. Padovan:
Hi Alexander,
* Alexander Holler<holler@xxxxxxxxxxxxx> [2010-11-22 21:09:01 +0100]:
There is no need to hold the firmware in memory.
Signed-off-by: Alexander Holler<holler@xxxxxxxxxxxxx>
---
drivers/bluetooth/ath3k.c | 75 ++++++++++++---------------------------------
1 files changed, 20 insertions(+), 55 deletions(-)
diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
index 128cae4..81cd1ed 100644
--- a/drivers/bluetooth/ath3k.c
+++ b/drivers/bluetooth/ath3k.c
@@ -43,46 +43,40 @@ MODULE_DEVICE_TABLE(usb, ath3k_table);
#define USB_REQ_DFU_DNLOAD 1
#define BULK_SIZE 4096
-struct ath3k_data {
- struct usb_device *udev;
- u8 *fw_data;
- u32 fw_size;
- u32 fw_sent;
-};
-
-static int ath3k_load_firmware(struct ath3k_data *data,
- unsigned char *firmware,
- int count)
+static int ath3k_load_firmware(struct usb_device *udev,
+ const struct firmware *firmware)
{
u8 *send_buf;
int err, pipe, len, size, sent = 0;
+ int count = firmware->size;
- BT_DBG("ath3k %p udev %p", data, data->udev);
+ BT_DBG("udev %p", udev);
- pipe = usb_sndctrlpipe(data->udev, 0);
+ pipe = usb_sndctrlpipe(udev, 0);
- if ((usb_control_msg(data->udev, pipe,
+ send_buf = kmalloc(BULK_SIZE, GFP_ATOMIC);
+ if (!send_buf) {
+ BT_ERR("Can't allocate memory chunk for firmware");
+ return -ENOMEM;
+ }
+
+ memcpy(send_buf, firmware->data, 20);
+ if ((err = usb_control_msg(udev, pipe,
USB_REQ_DFU_DNLOAD,
USB_TYPE_VENDOR, 0, 0,
- firmware, 20, USB_CTRL_SET_TIMEOUT))< 0) {
+ send_buf, 20, USB_CTRL_SET_TIMEOUT))< 0) {
BT_ERR("Can't change to loading configuration err");
- return -EBUSY;
+ goto error;
}
sent += 20;
count -= 20;
Patch looks good to me, but I have a question here: what's 20 here? I
didn't figured out.
Vikram, what's your opinion on this patch? Can you ack/nack it?
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Alex,
Sorry for late reply.
Was held up in a work.
I will check your patch and update soon.
Can you send a fresh patch cc to btlinuxmail@xxxxxxxxx
Regards,
Bala.
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html