From b72ac8c87c329d7321f9553b36bf1899242cf103 Mon Sep 17 00:00:00 2001 From: Pavel Roskin Date: Tue, 10 Jul 2007 02:20:54 -0400 Subject: [PATCH] Make firmware download utilities more uniform Rename some functions and variables so that the internal and the external download don't look so different. Signed-off-by: Pavel Roskin --- at76_usb.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/at76_usb.c b/at76_usb.c index d541413..ae1bc26 100644 --- a/at76_usb.c +++ b/at76_usb.c @@ -220,17 +220,18 @@ struct dfu_status { unsigned char string; } __attribute__ ((packed)); -static int at76_dfu_download_block(struct usb_device *udev, u8 *buffer, - int bytes, int block) +/* Load a block of the first (internal) part of the firmware */ +static int at76_load_int_fw_block(struct usb_device *udev, int blockno, + void *block, int size) { int ret; - at76_dbg(DBG_DFU, "dfu_download_block(): buffer=%p, bytes=%d, block=%d", - buffer, bytes, block); + at76_dbg(DBG_DFU, "dfu_download_block(): block=%p, size=%d, blockno=%d", + block, size, blockno); ret = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), DFU_DNLOAD, USB_TYPE_CLASS | USB_DIR_OUT | - USB_RECIP_INTERFACE, block, 0, buffer, bytes, + USB_RECIP_INTERFACE, blockno, 0, block, size, USB_CTRL_GET_TIMEOUT); return ret; } @@ -270,7 +271,7 @@ static inline u32 at76_get_timeout(struct dfu_status *s) static int at76_usbdfu_download(struct usb_device *udev, u8 *dfu_buffer, u32 dfu_len, int manifest_sync_timeout) { - u8 *dmabuf; + u8 *block; struct dfu_status dfu_stat_buf; int ret = 0; int need_dfu_state = 1; @@ -290,8 +291,8 @@ static int at76_usbdfu_download(struct usb_device *udev, u8 *dfu_buffer, return -EINVAL; } - dmabuf = kmalloc(DFU_PACKETSIZE, GFP_KERNEL); - if (dmabuf == NULL) + block = kmalloc(DFU_PACKETSIZE, GFP_KERNEL); + if (block == NULL) return -ENOMEM; do { @@ -333,11 +334,10 @@ static int at76_usbdfu_download(struct usb_device *udev, u8 *dfu_buffer, dfu_block_bytes = min(dfu_bytes_left, DFU_PACKETSIZE); dfu_bytes_left -= dfu_block_bytes; - memcpy(dmabuf, dfu_buffer + dfu_buffer_offset, + memcpy(block, dfu_buffer + dfu_buffer_offset, dfu_block_bytes); - ret = at76_dfu_download_block(udev, dmabuf, - dfu_block_bytes, - dfu_block_cnt); + ret = at76_load_int_fw_block(udev, dfu_block_cnt, block, + dfu_block_bytes); dfu_buffer_offset += dfu_block_bytes; dfu_block_cnt++; @@ -395,7 +395,7 @@ static int at76_usbdfu_download(struct usb_device *udev, u8 *dfu_buffer, } while (!is_done && (ret >= 0)); exit: - kfree(dmabuf); + kfree(block); if (ret >= 0) ret = 0; @@ -560,13 +560,14 @@ static int at76_get_op_mode(struct usb_device *udev) return op_mode; } -/* Load a block of the second part of the firmware */ -static inline int at76_load_ext_fw_block(struct usb_device *udev, int i, - void *buf, int bsize) +/* Load a block of the second ("external") part of the firmware */ +static inline int at76_load_ext_fw_block(struct usb_device *udev, int blockno, + void *block, int size) { return usb_control_msg(udev, usb_sndctrlpipe(udev, 0), 0x0e, DEVICE_VENDOR_REQUEST_OUT, - 0x0802, i, buf, bsize, USB_CTRL_GET_TIMEOUT); + 0x0802, blockno, block, size, + USB_CTRL_GET_TIMEOUT); } static inline int at76_get_hw_cfg_rfmd(struct usb_device *udev, -- cgit v1.2.3