[rt2x00-users] [PATCH 3/8] rt2x00: Wakeup hardware before loading firmware

Gertjan van Wingerde gwingerde at gmail.com
Mon Aug 30 18:09:56 UTC 2010


On 08/30/10 19:23, Ivo van Doorn wrote:
> According to the legacy drivers the AUTOWAKEUP_CFG
> register must be reset to 0 before loading the firmware.
> 
> Instead of during rt2800{pci,usb}_write_firmware it
> must actually be done in rt2800_load_firmware() before
> resetting the WPDMA_GLO_CFG and PWR_PIN_CFG registers.
> 
> Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>

Acked-by: Gertjan van Wingerde <gwingerde at gmail.com>

> ---
>  drivers/net/wireless/rt2x00/rt2800lib.c |    6 ++++++
>  drivers/net/wireless/rt2x00/rt2800pci.c |    2 --
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
> index c8af221..1bc7f49 100644
> --- a/drivers/net/wireless/rt2x00/rt2800lib.c
> +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
> @@ -385,6 +385,12 @@ int rt2800_load_firmware(struct rt2x00_dev *rt2x00dev,
>  	u32 reg;
>  
>  	/*
> +	 * If driver doesn't wake up firmware here,
> +	 * rt2800_load_firmware will hang forever when interface is up again.
> +	 */
> +	rt2800_register_write(rt2x00dev, AUTOWAKEUP_CFG, 0x00000000);
> +
> +	/*
>  	 * Wait for stable hardware.
>  	 */
>  	if (rt2800_wait_csr_ready(rt2x00dev))
> diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
> index 4d93204..2bcb150 100644
> --- a/drivers/net/wireless/rt2x00/rt2800pci.c
> +++ b/drivers/net/wireless/rt2x00/rt2800pci.c
> @@ -196,8 +196,6 @@ static int rt2800pci_write_firmware(struct rt2x00_dev *rt2x00dev,
>  {
>  	u32 reg;
>  
> -	rt2800_register_write(rt2x00dev, AUTOWAKEUP_CFG, 0x00000000);
> -
>  	/*
>  	 * enable Host program ram write selection
>  	 */




More information about the users mailing list