kernel: add missing config symbols
[openwrt/staging/yousong.git] / package / kernel / mac80211 / patches / 652-0061-rtl8xxxu-Correct-power-down-sequence-for-8188eu.patch
1 From 503e2c16e21b49e912bcbe6af5cda34b65e30502 Mon Sep 17 00:00:00 2001
2 From: Jes Sorensen <Jes.Sorensen@redhat.com>
3 Date: Tue, 30 Aug 2016 17:23:35 -0400
4 Subject: [PATCH] rtl8xxxu: Correct power down sequence for 8188eu
5
6 This matches the vendor driver more correctly
7
8 Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
9 ---
10 .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c | 26 ++++++++++++++++------
11 1 file changed, 19 insertions(+), 7 deletions(-)
12
13 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c
14 +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c
15 @@ -1083,7 +1083,8 @@ static void rtl8188e_disabled_to_emu(str
16 u16 val16;
17
18 val16 = rtl8xxxu_read16(priv, REG_APS_FSMCO);
19 - val16 &= ~(APS_FSMCO_PFM_WOWL | APS_FSMCO_ENABLE_POWERDOWN);
20 + val16 &= ~(APS_FSMCO_PFM_WOWL | APS_FSMCO_ENABLE_POWERDOWN |
21 + APS_FSMCO_HW_POWERDOWN);
22 rtl8xxxu_write16(priv, REG_APS_FSMCO, val16);
23 }
24
25 @@ -1196,15 +1197,26 @@ static int rtl8188eu_emu_to_disabled(str
26 {
27 u8 val8;
28
29 - /* 0x04[12:11] = 01 enable WL suspend */
30 - val8 = rtl8xxxu_read8(priv, REG_APS_FSMCO + 2);
31 - val8 &= ~BIT(0);
32 - rtl8xxxu_write8(priv, REG_APS_FSMCO + 2, val8);
33 + val8 = rtl8xxxu_read8(priv, REG_AFE_XTAL_CTRL + 2);
34 + val8 |= BIT(7);
35 + rtl8xxxu_write8(priv, REG_AFE_XTAL_CTRL + 2, val8);
36
37 val8 = rtl8xxxu_read8(priv, REG_APS_FSMCO + 1);
38 - val8 |= BIT(7);
39 + val8 &= ~(BIT(3) | BIT(4));
40 + val8 |= BIT(3);
41 rtl8xxxu_write8(priv, REG_APS_FSMCO + 1, val8);
42
43 + rtl8xxxu_write8(priv, REG_APS_FSMCO + 3, 0x00);
44 +
45 + val8 = rtl8xxxu_read8(priv, REG_GPIO_MUXCFG + 1);
46 + val8 &= ~BIT(4);
47 + rtl8xxxu_write8(priv, REG_GPIO_MUXCFG + 1, val8);
48 +
49 + /* Set USB suspend enable local register 0xfe10[4]=1 */
50 + val8 = rtl8xxxu_read8(priv, 0xfe10);
51 + val8 |= BIT(4);
52 + rtl8xxxu_write8(priv, 0xfe10, val8);
53 +
54 return 0;
55 }
56
57 @@ -1339,7 +1351,7 @@ void rtl8188eu_power_off(struct rtl8xxxu
58 rtl8xxxu_write8(priv, REG_GPIO_PIN_CTRL + 2, 0xff);
59
60 val8 = rtl8xxxu_read8(priv, REG_GPIO_IO_SEL);
61 - rtl8xxxu_write8(priv, REG_GPIO_IO_SEL + 1, val8 << 4);
62 + rtl8xxxu_write8(priv, REG_GPIO_IO_SEL, val8 << 4);
63 val8 = rtl8xxxu_read8(priv, REG_GPIO_IO_SEL + 1);
64 rtl8xxxu_write8(priv, REG_GPIO_IO_SEL + 1, val8 | 0x0f);
65