[rt2x00-users] [PATCH 1/5] rt2x00: Merge rt2800{pci/usb} radio enabling/disabling code to rt2800lib
Helmut Schaa
helmut.schaa at googlemail.com
Mon Aug 23 14:07:38 UTC 2010
Am Monday 23 August 2010 schrieb Ivo van Doorn:
> The functions rt2800pci_enable_radio and rt2800usb_disable_radio are
> almost equal and can be merged into rt2800lib. This reduces the number
> of functions which must be exported from rt2800lib to the drivers at
> the same time.
>
> Also rt2800pci_disable_radio and rt2800usb_disable_radio are almost
> equal and can be merged into rt2800lib in a similar fashion.
>
> Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
> ---
[...]
> diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
> index a5e5870..4d93204 100644
> --- a/drivers/net/wireless/rt2x00/rt2800pci.c
> +++ b/drivers/net/wireless/rt2x00/rt2800pci.c
> @@ -399,78 +399,18 @@ static int rt2800pci_init_registers(struct rt2x00_dev *rt2x00dev)
>
> static int rt2800pci_enable_radio(struct rt2x00_dev *rt2x00dev)
> {
> - u32 reg;
> - u16 word;
> -
> - /*
> - * Initialize all registers.
> - */
> if (unlikely(rt2800_wait_wpdma_ready(rt2x00dev) ||
> - rt2800pci_init_queues(rt2x00dev) ||
> - rt2800_init_registers(rt2x00dev) ||
> - rt2800_wait_wpdma_ready(rt2x00dev) ||
> - rt2800_init_bbp(rt2x00dev) ||
> - rt2800_init_rfcsr(rt2x00dev)))
> + rt2800pci_init_queues(rt2x00dev)))
> return -EIO;
>
> - /*
> - * Send signal to firmware during boot time.
> - */
> - rt2800_mcu_request(rt2x00dev, MCU_BOOT_SIGNAL, 0, 0, 0);
> -
> - /*
> - * Enable RX.
> - */
> - rt2800_register_read(rt2x00dev, MAC_SYS_CTRL, ®);
> - rt2x00_set_field32(®, MAC_SYS_CTRL_ENABLE_TX, 1);
> - rt2x00_set_field32(®, MAC_SYS_CTRL_ENABLE_RX, 0);
> - rt2800_register_write(rt2x00dev, MAC_SYS_CTRL, reg);
> -
> - rt2800_register_read(rt2x00dev, WPDMA_GLO_CFG, ®);
> - rt2x00_set_field32(®, WPDMA_GLO_CFG_ENABLE_TX_DMA, 1);
> - rt2x00_set_field32(®, WPDMA_GLO_CFG_ENABLE_RX_DMA, 1);
> - rt2x00_set_field32(®, WPDMA_GLO_CFG_WP_DMA_BURST_SIZE, 2);
> - rt2x00_set_field32(®, WPDMA_GLO_CFG_TX_WRITEBACK_DONE, 1);
> - rt2800_register_write(rt2x00dev, WPDMA_GLO_CFG, reg);
> -
> - rt2800_register_read(rt2x00dev, MAC_SYS_CTRL, ®);
> - rt2x00_set_field32(®, MAC_SYS_CTRL_ENABLE_TX, 1);
> - rt2x00_set_field32(®, MAC_SYS_CTRL_ENABLE_RX, 1);
> - rt2800_register_write(rt2x00dev, MAC_SYS_CTRL, reg);
> -
> - /*
> - * Initialize LED control
> - */
> - rt2x00_eeprom_read(rt2x00dev, EEPROM_LED1, &word);
> - rt2800_mcu_request(rt2x00dev, MCU_LED_1, 0xff,
> - word & 0xff, (word >> 8) & 0xff);
> -
> - rt2x00_eeprom_read(rt2x00dev, EEPROM_LED2, &word);
> - rt2800_mcu_request(rt2x00dev, MCU_LED_2, 0xff,
> - word & 0xff, (word >> 8) & 0xff);
> -
> - rt2x00_eeprom_read(rt2x00dev, EEPROM_LED3, &word);
> - rt2800_mcu_request(rt2x00dev, MCU_LED_3, 0xff,
> - word & 0xff, (word >> 8) & 0xff);
> -
> - return 0;
> + return rt2800_enable_radio(rt2x00dev);
> }
This changes the calling order, init_queues is called first
and everything else afterwards.
Not sure if that causes any troubles?
Unfortunately I don't have a development environment set up right
now to test it :(
Other then that looks fine ...
Helmut
More information about the users
mailing list