[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