c87d91143d1e296ce4337461c54a13dc5cf4afd7
[openwrt/openwrt.git] / package / kernel / mac80211 / patches / 651-0012-rtl8xxxu-Use-flag-to-indicate-whether-device-has-TX-.patch
1 From 37949932b4c8854d8122ac385bfcab725440625c Mon Sep 17 00:00:00 2001
2 From: Jes Sorensen <Jes.Sorensen@redhat.com>
3 Date: Wed, 20 Jul 2016 16:13:06 -0400
4 Subject: [PATCH] rtl8xxxu: Use flag to indicate whether device has TX report
5 timer support
6
7 Use a fileops flag to indicate whether the device has TX report timer
8 support. This will make it easier to include future devices such as
9 8188eu to use the TX report timer.
10
11 Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
12 ---
13 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 1 +
14 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c | 1 +
15 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 5 ++---
16 3 files changed, 4 insertions(+), 3 deletions(-)
17
18 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
19 +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h
20 @@ -1341,6 +1341,7 @@ struct rtl8xxxu_fileops {
21 char tx_desc_size;
22 char rx_desc_size;
23 char has_s0s1;
24 + char has_tx_report;
25 u32 adda_1t_init;
26 u32 adda_1t_path_on;
27 u32 adda_2t_path_on_a;
28 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c
29 +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c
30 @@ -1666,6 +1666,7 @@ struct rtl8xxxu_fileops rtl8723bu_fops =
31 .tx_desc_size = sizeof(struct rtl8xxxu_txdesc40),
32 .rx_desc_size = sizeof(struct rtl8xxxu_rxdesc24),
33 .has_s0s1 = 1,
34 + .has_tx_report = 1,
35 .adda_1t_init = 0x01c00014,
36 .adda_1t_path_on = 0x01c00014,
37 .adda_2t_path_on_a = 0x01c00014,
38 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
39 +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
40 @@ -4000,10 +4000,9 @@ static int rtl8xxxu_init_device(struct i
41 priv->fops->usb_quirks(priv);
42
43 /*
44 - * Presumably this is for 8188EU as well
45 - * Enable TX report and TX report timer
46 + * Enable TX report and TX report timer for 8723bu/8188eu/...
47 */
48 - if (priv->rtl_chip == RTL8723B) {
49 + if (priv->fops->has_tx_report) {
50 val8 = rtl8xxxu_read8(priv, REG_TX_REPORT_CTRL);
51 val8 |= TX_REPORT_CTRL_TIMER_ENABLE;
52 rtl8xxxu_write8(priv, REG_TX_REPORT_CTRL, val8);