[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, &reg);
> -	rt2x00_set_field32(&reg, MAC_SYS_CTRL_ENABLE_TX, 1);
> -	rt2x00_set_field32(&reg, MAC_SYS_CTRL_ENABLE_RX, 0);
> -	rt2800_register_write(rt2x00dev, MAC_SYS_CTRL, reg);
> -
> -	rt2800_register_read(rt2x00dev, WPDMA_GLO_CFG, &reg);
> -	rt2x00_set_field32(&reg, WPDMA_GLO_CFG_ENABLE_TX_DMA, 1);
> -	rt2x00_set_field32(&reg, WPDMA_GLO_CFG_ENABLE_RX_DMA, 1);
> -	rt2x00_set_field32(&reg, WPDMA_GLO_CFG_WP_DMA_BURST_SIZE, 2);
> -	rt2x00_set_field32(&reg, WPDMA_GLO_CFG_TX_WRITEBACK_DONE, 1);
> -	rt2800_register_write(rt2x00dev, WPDMA_GLO_CFG, reg);
> -
> -	rt2800_register_read(rt2x00dev, MAC_SYS_CTRL, &reg);
> -	rt2x00_set_field32(&reg, MAC_SYS_CTRL_ENABLE_TX, 1);
> -	rt2x00_set_field32(&reg, 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