diff options
author | Daniel Drake <dsd@gentoo.org> | 2006-12-11 20:25:52 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-02-05 16:58:42 -0500 |
commit | ee30276774451d657407855d95d9393ee8bc0bac (patch) | |
tree | ceb02ea0a59acf90ac532c72e7ff294c2736f9a4 /drivers/net/wireless/zd1211rw/zd_usb.c | |
parent | a2bdcc679288307f9237c9611a0cc0c3c06669a9 (diff) |
[PATCH] zd1211rw: Consistency for address space constants
The zd1211rw address space has confused me once too many times. This
patch introduces the following naming notation:
Memory space is split into segments (cr, fw, eeprom) and segments may
contain components (e.g. boot code inside eeprom). These names are
arbitrary and only for the description below:
x_START: Absolute address of segment start
(previously these were named such as CR_BASE_OFFSET, but they weren't
really offsets unless you were considering them as an offset to 0)
x_LEN: Segment length
x_y_LEN: Length of component y of segment x
x_y_OFFSET: Relative address of component y into segment x. The absolute
address for this component is (x_START + x_y_OFFSET)
I also renamed EEPROM registers to EEPROM data. These 'registers' can't
be written to using standard I/O and really represent predefined data
from the vendor.
Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/zd1211rw/zd_usb.c')
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_usb.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c index b061d11d4ab..6a524409aea 100644 --- a/drivers/net/wireless/zd1211rw/zd_usb.c +++ b/drivers/net/wireless/zd1211rw/zd_usb.c | |||
@@ -152,10 +152,10 @@ static u16 usb_addr(struct zd_usb *usb, zd_addr_t addr) | |||
152 | 152 | ||
153 | switch (base) { | 153 | switch (base) { |
154 | case CR_BASE: | 154 | case CR_BASE: |
155 | offset += CR_BASE_OFFSET; | 155 | offset += CR_START; |
156 | break; | 156 | break; |
157 | case E2P_BASE: | 157 | case E2P_BASE: |
158 | offset += E2P_BASE_OFFSET; | 158 | offset += E2P_START + E2P_DATA_OFFSET; |
159 | break; | 159 | break; |
160 | case FW_BASE: | 160 | case FW_BASE: |
161 | offset += usb->fw_base_offset; | 161 | offset += usb->fw_base_offset; |
@@ -297,14 +297,13 @@ static int handle_version_mismatch(struct usb_device *udev, u8 device_type, | |||
297 | if (r) | 297 | if (r) |
298 | goto error; | 298 | goto error; |
299 | 299 | ||
300 | r = upload_code(udev, ur_fw->data, ur_fw->size, FW_START_OFFSET, | 300 | r = upload_code(udev, ur_fw->data, ur_fw->size, FW_START, REBOOT); |
301 | REBOOT); | ||
302 | if (r) | 301 | if (r) |
303 | goto error; | 302 | goto error; |
304 | 303 | ||
305 | offset = ((EEPROM_REGS_OFFSET + EEPROM_REGS_SIZE) * sizeof(u16)); | 304 | offset = (E2P_BOOT_CODE_OFFSET * sizeof(u16)); |
306 | r = upload_code(udev, ub_fw->data + offset, ub_fw->size - offset, | 305 | r = upload_code(udev, ub_fw->data + offset, ub_fw->size - offset, |
307 | E2P_BASE_OFFSET + EEPROM_REGS_SIZE, REBOOT); | 306 | E2P_START + E2P_BOOT_CODE_OFFSET, REBOOT); |
308 | 307 | ||
309 | /* At this point, the vendor driver downloads the whole firmware | 308 | /* At this point, the vendor driver downloads the whole firmware |
310 | * image, hacks around with version IDs, and uploads it again, | 309 | * image, hacks around with version IDs, and uploads it again, |
@@ -333,7 +332,7 @@ static int upload_firmware(struct usb_device *udev, u8 device_type) | |||
333 | if (r) | 332 | if (r) |
334 | goto error; | 333 | goto error; |
335 | 334 | ||
336 | fw_bcdDevice = get_word(ub_fw->data, EEPROM_REGS_OFFSET); | 335 | fw_bcdDevice = get_word(ub_fw->data, E2P_DATA_OFFSET); |
337 | 336 | ||
338 | if (fw_bcdDevice != bcdDevice) { | 337 | if (fw_bcdDevice != bcdDevice) { |
339 | dev_info(&udev->dev, | 338 | dev_info(&udev->dev, |
@@ -359,8 +358,7 @@ static int upload_firmware(struct usb_device *udev, u8 device_type) | |||
359 | if (r) | 358 | if (r) |
360 | goto error; | 359 | goto error; |
361 | 360 | ||
362 | r = upload_code(udev, uph_fw->data, uph_fw->size, FW_START_OFFSET, | 361 | r = upload_code(udev, uph_fw->data, uph_fw->size, FW_START, REBOOT); |
363 | REBOOT); | ||
364 | if (r) { | 362 | if (r) { |
365 | dev_err(&udev->dev, | 363 | dev_err(&udev->dev, |
366 | "Could not upload firmware code uph. Error number %d\n", | 364 | "Could not upload firmware code uph. Error number %d\n", |
@@ -899,7 +897,7 @@ int zd_usb_init_hw(struct zd_usb *usb) | |||
899 | 897 | ||
900 | ZD_ASSERT(mutex_is_locked(&chip->mutex)); | 898 | ZD_ASSERT(mutex_is_locked(&chip->mutex)); |
901 | r = zd_ioread16_locked(chip, &usb->fw_base_offset, | 899 | r = zd_ioread16_locked(chip, &usb->fw_base_offset, |
902 | USB_REG((u16)FW_BASE_ADDR_OFFSET)); | 900 | USB_REG(FW_START + FW_REGS_ADDR_OFFSET)); |
903 | if (r) | 901 | if (r) |
904 | return r; | 902 | return r; |
905 | dev_dbg_f(zd_usb_dev(usb), "fw_base_offset: %#06hx\n", | 903 | dev_dbg_f(zd_usb_dev(usb), "fw_base_offset: %#06hx\n", |