rtl8xxxu: add support for rtl8188eu
[openwrt/staging/rmilecki.git] / package / kernel / mac80211 / patches / 652-0046-rtl8xxxu-Clean-up-llt_init-API.patch
1 From 533293085b6c331f20c36fa09fe3cf1e904ce259 Mon Sep 17 00:00:00 2001
2 From: Jes Sorensen <Jes.Sorensen@redhat.com>
3 Date: Wed, 24 Aug 2016 11:31:38 -0400
4 Subject: [PATCH] rtl8xxxu: Clean up llt_init() API
5
6 Remove last_tx_page argument from the llt_init() function. The
7 rtl8xxxu_fileops structure contains the correct TX_TOTAL_PAGE_NUM
8 value for the device, and rtl8xxxu_auto_llt_table() doesn't need to
9 know the value in the first place.
10
11 Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
12 ---
13 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 6 +++---
14 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 9 ++++++---
15 2 files changed, 9 insertions(+), 6 deletions(-)
16
17 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
18 +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
19 @@ -1367,7 +1367,7 @@ struct rtl8xxxu_fileops {
20 int (*power_on) (struct rtl8xxxu_priv *priv);
21 void (*power_off) (struct rtl8xxxu_priv *priv);
22 void (*reset_8051) (struct rtl8xxxu_priv *priv);
23 - int (*llt_init) (struct rtl8xxxu_priv *priv, u8 last_tx_page);
24 + int (*llt_init) (struct rtl8xxxu_priv *priv);
25 void (*init_phy_bb) (struct rtl8xxxu_priv *priv);
26 int (*init_phy_rf) (struct rtl8xxxu_priv *priv);
27 void (*phy_init_antenna_selection) (struct rtl8xxxu_priv *priv);
28 @@ -1449,14 +1449,14 @@ int rtl8xxxu_load_firmware(struct rtl8xx
29 void rtl8xxxu_firmware_self_reset(struct rtl8xxxu_priv *priv);
30 void rtl8xxxu_power_off(struct rtl8xxxu_priv *priv);
31 void rtl8xxxu_reset_8051(struct rtl8xxxu_priv *priv);
32 -int rtl8xxxu_auto_llt_table(struct rtl8xxxu_priv *priv, u8 last_tx_page);
33 +int rtl8xxxu_auto_llt_table(struct rtl8xxxu_priv *priv);
34 void rtl8xxxu_gen2_prepare_calibrate(struct rtl8xxxu_priv *priv, u8 start);
35 int rtl8xxxu_flush_fifo(struct rtl8xxxu_priv *priv);
36 int rtl8xxxu_gen2_h2c_cmd(struct rtl8xxxu_priv *priv,
37 struct h2c_cmd *h2c, int len);
38 int rtl8xxxu_active_to_lps(struct rtl8xxxu_priv *priv);
39 void rtl8xxxu_disabled_to_emu(struct rtl8xxxu_priv *priv);
40 -int rtl8xxxu_init_llt_table(struct rtl8xxxu_priv *priv, u8 last_tx_page);
41 +int rtl8xxxu_init_llt_table(struct rtl8xxxu_priv *priv);
42 void rtl8xxxu_gen1_phy_iq_calibrate(struct rtl8xxxu_priv *priv);
43 void rtl8xxxu_gen1_init_phy_bb(struct rtl8xxxu_priv *priv);
44 void rtl8xxxu_gen1_set_tx_power(struct rtl8xxxu_priv *priv,
45 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
46 +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
47 @@ -2482,10 +2482,13 @@ static int rtl8xxxu_llt_write(struct rtl
48 return ret;
49 }
50
51 -int rtl8xxxu_init_llt_table(struct rtl8xxxu_priv *priv, u8 last_tx_page)
52 +int rtl8xxxu_init_llt_table(struct rtl8xxxu_priv *priv)
53 {
54 int ret;
55 int i;
56 + u8 last_tx_page;
57 +
58 + last_tx_page = priv->fops->total_page_num;
59
60 for (i = 0; i < last_tx_page; i++) {
61 ret = rtl8xxxu_llt_write(priv, i, i + 1);
62 @@ -2513,7 +2516,7 @@ exit:
63 return ret;
64 }
65
66 -int rtl8xxxu_auto_llt_table(struct rtl8xxxu_priv *priv, u8 last_tx_page)
67 +int rtl8xxxu_auto_llt_table(struct rtl8xxxu_priv *priv)
68 {
69 u32 val32;
70 int ret = 0;
71 @@ -3999,7 +4002,7 @@ static int rtl8xxxu_init_device(struct i
72
73 dev_dbg(dev, "%s: macpower %i\n", __func__, macpower);
74 if (!macpower) {
75 - ret = priv->fops->llt_init(priv, TX_TOTAL_PAGE_NUM);
76 + ret = priv->fops->llt_init(priv);
77 if (ret) {
78 dev_warn(dev, "%s: LLT table init failed\n", __func__);
79 goto exit;