[rt2x00-users] [RFC/RFT 3/5] rt2800: disable DMA after firmware load

Ivo Van Doorn ivdoorn at gmail.com
Mon Jan 23 00:07:03 EST 2012


On Tue, Jan 17, 2012 at 12:53 PM, Stanislaw Gruszka <sgruszka at redhat.com> wrote:
> We can receive frames just after firmware load with current code, so
> disable DMA just after firmware is loaded, not before.
>
> Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>

Acked-by: Ivo van Doorn <IvDoorn at gmail.com>

> ---
>  drivers/net/wireless/rt2x00/rt2800lib.c |   21 +++++++++------------
>  1 files changed, 9 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
> index 658508e..fbc3279 100644
> --- a/drivers/net/wireless/rt2x00/rt2800lib.c
> +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
> @@ -412,18 +412,6 @@ int rt2800_load_firmware(struct rt2x00_dev *rt2x00dev,
>        }
>
>        /*
> -        * Disable DMA, will be reenabled later when enabling
> -        * the radio.
> -        */
> -       rt2800_register_read(rt2x00dev, WPDMA_GLO_CFG, &reg);
> -       rt2x00_set_field32(&reg, WPDMA_GLO_CFG_ENABLE_TX_DMA, 0);
> -       rt2x00_set_field32(&reg, WPDMA_GLO_CFG_TX_DMA_BUSY, 0);
> -       rt2x00_set_field32(&reg, WPDMA_GLO_CFG_ENABLE_RX_DMA, 0);
> -       rt2x00_set_field32(&reg, WPDMA_GLO_CFG_RX_DMA_BUSY, 0);
> -       rt2x00_set_field32(&reg, WPDMA_GLO_CFG_TX_WRITEBACK_DONE, 1);
> -       rt2800_register_write(rt2x00dev, WPDMA_GLO_CFG, reg);
> -
> -       /*
>         * Write firmware to the device.
>         */
>        rt2800_drv_write_firmware(rt2x00dev, data, len);
> @@ -444,6 +432,15 @@ int rt2800_load_firmware(struct rt2x00_dev *rt2x00dev,
>        }
>
>        /*
> +        * Disable DMA, will be reenabled later when enabling
> +        * the radio.
> +        */
> +       rt2800_register_read(rt2x00dev, WPDMA_GLO_CFG, &reg);
> +       rt2x00_set_field32(&reg, WPDMA_GLO_CFG_ENABLE_TX_DMA, 0);
> +       rt2x00_set_field32(&reg, WPDMA_GLO_CFG_ENABLE_RX_DMA, 0);
> +       rt2800_register_write(rt2x00dev, WPDMA_GLO_CFG, reg);
> +
> +       /*
>         * Initialize firmware.
>         */
>        rt2800_register_write(rt2x00dev, H2M_BBP_AGENT, 0);
> --
> 1.7.1
>
>
> _______________________________________________
> users mailing list
> users at rt2x00.serialmonkey.com
> http://rt2x00.serialmonkey.com/mailman/listinfo/users_rt2x00.serialmonkey.com



More information about the users mailing list