aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Roskin <proski@gnu.org>2007-07-10 02:20:54 -0400
committerGuido Guenther <agx@bogon.sigxcpu.org>2007-07-15 12:18:59 -0400
commitb72ac8c87c329d7321f9553b36bf1899242cf103 (patch)
tree1dfe2a9c0c545e3a322837fb35da59c41b6dd3e9
parenta263339e7735496d401c4eb315e2e8549f8ace73 (diff)
[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 <proski@gnu.org>
-rw-r--r--at76_usb.c35
1 files 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,