rtl8187: fix 8187B throughput regression
authorHerton Ronaldo Krzesinski <herton@mandriva.com.br>
Thu, 13 Nov 2008 15:39:14 +0000 (10:39 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 25 Nov 2008 21:41:31 +0000 (16:41 -0500)
Hin-Tak Leung reported that after the change "rtl8187: add short slot
handling for 8187B" his RTL8187B started to give low throughput on
network transfers. Turns out that the SIFS setting used isn't ok, it
doesn't look to be the real aSIFSTime, using the "magical" 0x22 value
like on other 818x variants as the vendor does too fixes the issue.

Tested-by: Larry Finger <Larry.Finger@lwfinger.net>
Tested-by: Hin-Tak Leung <htl10@users.sourceforge.net>
Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rtl818x/rtl8187_dev.c

index 4a9f76f46f7754e5bf87d212fdf9fc2ed15ed6c4..5fe7473124e8c10dee3a45e81a3503008f14cfef 100644 (file)
@@ -935,7 +935,7 @@ static void rtl8187_conf_erp(struct rtl8187_priv *priv, bool use_short_slot,
                        difs = 0x32;
                        eifs = 0x5b;
                }
-               rtl818x_iowrite8(priv, &priv->map->SIFS, 0xa);
+               rtl818x_iowrite8(priv, &priv->map->SIFS, 0x22);
                rtl818x_iowrite8(priv, &priv->map->SLOT, slot_time);
                rtl818x_iowrite8(priv, &priv->map->DIFS, difs);