Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

rtl8180: be paranoid in stopping unused queues.

HW should never attempt to perform DMA for unused queues.
For rtl8187se this is ensured by setting a dedicated register at
init time, before enabling TX.

In rtl8180/5 the register is only written at the first TX (because
in rtl8180/5 it serves also to kick DMA for used queues).
This should be enough, but it's worth to add a register write at
init time, before enabling TX.

Signed-off-by: Andrea Merello <andrea.merello@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

authored by

Andrea Merello and committed by
John W. Linville
294bc611 6bcb20c7

+4 -1
+4 -1
drivers/net/wireless/rtl818x/rtl8180/dev.c
··· 910 910 reg32 &= 0x00ffff00; 911 911 reg32 |= 0xb8000054; 912 912 rtl818x_iowrite32(priv, &priv->map->RF_PARA, reg32); 913 - } 913 + } else 914 + /* stop unused queus (no dma alloc) */ 915 + rtl818x_iowrite8(priv, &priv->map->TX_DMA_POLLING, 916 + (1<<1) | (1<<2)); 914 917 915 918 priv->rf->init(dev); 916 919