linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Gustavo F. Padovan" <padovan@profusion.mobi>
To: Alexander Holler <holler@ahsoftware.de>
Cc: Marcel Holtmann <marcel@holtmann.org>,
	Alicke Xu <sxu@atheros.com>,
	"Luis R. Rodriguez" <lrodriguez@atheros.com>,
	Vikram Kandukuri <vikram.kandukuri@atheros.com>,
	linux-bluetooth@vger.kernel.org
Subject: Re: [PATCH] ath3k: reduce memory usage
Date: Mon, 29 Nov 2010 23:52:00 -0200	[thread overview]
Message-ID: <20101130015200.GD5919@vigoh> (raw)
In-Reply-To: <1290456541-3812-1-git-send-email-holler@ahsoftware.de>

Hi Alexander,

* Alexander Holler <holler@ahsoftware.de> [2010-11-22 21:09:01 +0100]:

> There is no need to hold the firmware in memory.
> 
> Signed-off-by: Alexander Holler <holler@ahsoftware.de>
> ---
>  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?

-- 
Gustavo F. Padovan
http://profusion.mobi

  reply	other threads:[~2010-11-30  1:52 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-22 20:09 [PATCH] ath3k: reduce memory usage Alexander Holler
2010-11-30  1:52 ` Gustavo F. Padovan [this message]
2010-11-30  8:50   ` Alexander Holler
2010-12-03 10:51     ` Bala Shanmugam
2010-12-05 14:28       ` Alexander Holler
2011-01-10 16:54   ` Alexander Holler
2011-01-12 13:37     ` Bala Shanmugam
2011-01-13 19:08 ` Gustavo F. Padovan
2011-01-13 21:25   ` Alexander Holler
2011-01-18 10:48     ` Bala Shanmugam

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20101130015200.GD5919@vigoh \
    --to=padovan@profusion.mobi \
    --cc=holler@ahsoftware.de \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=lrodriguez@atheros.com \
    --cc=marcel@holtmann.org \
    --cc=sxu@atheros.com \
    --cc=vikram.kandukuri@atheros.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).