mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
Sunxi 5.18 (#3879)
* sunxi-5.18: rebase megous patces to v5.18.3 * sunxi-5.18: Add upstream patches - tag: orange-pi-5.18-20220609-1318 * Check applicability to version 5.18.3 * sunxi-5.18: switch to version 5.18.3
This commit is contained in:
@@ -23,7 +23,7 @@ case $BRANCH in
|
||||
|
||||
edge)
|
||||
KERNEL_VERSION_LEVEL=${KERNEL_VERSION_LEVEL:-5.18}
|
||||
KERNELSWITCHOBJ=${KERNELSWITCHOBJ:-'tag=v5.18.2'}
|
||||
KERNELSWITCHOBJ=${KERNELSWITCHOBJ:-'tag=v5.18.3'}
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ case $BRANCH in
|
||||
;;
|
||||
edge)
|
||||
KERNEL_VERSION_LEVEL=${KERNEL_VERSION_LEVEL:-5.18}
|
||||
KERNELSWITCHOBJ=${KERNELSWITCHOBJ:-'tag=v5.18.2'}
|
||||
KERNELSWITCHOBJ=${KERNELSWITCHOBJ:-'tag=v5.18.3'}
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
@@ -20,20 +20,20 @@ diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
|
||||
index 69ef31cea582..af26e8051905 100644
|
||||
--- a/include/net/bluetooth/hci.h
|
||||
+++ b/include/net/bluetooth/hci.h
|
||||
@@ -265,6 +265,13 @@ enum {
|
||||
* runtime suspend, because event filtering takes place there.
|
||||
@@ -266,6 +266,13 @@ enum {
|
||||
*/
|
||||
HCI_QUIRK_BROKEN_FILTER_CLEAR_ALL,
|
||||
+
|
||||
|
||||
+ /* When this quirk is set, max_page for local extended features
|
||||
+ * is set to 1, even if controller reports higher number. Some
|
||||
+ * controllers (e.g. RTL8723CS) report more pages, but they
|
||||
+ * don't actually support features declared there.
|
||||
+ */
|
||||
+ HCI_QUIRK_BROKEN_LOCAL_EXT_FTR_MAX_PAGE,
|
||||
};
|
||||
|
||||
/* HCI device flags */
|
||||
+
|
||||
/*
|
||||
* When this quirk is set, disables the use of
|
||||
* HCI_OP_ENHANCED_SETUP_SYNC_CONN command to setup SCO connections.
|
||||
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
|
||||
index 66451661283c..52b358c33344 100644
|
||||
--- a/net/bluetooth/hci_event.c
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
From 8ceed49e8da109562c399f9501ca9b96880312f8 Mon Sep 17 00:00:00 2001
|
||||
From: Ondrej Jirman <megi@xff.cz>
|
||||
Date: Thu, 9 Jun 2022 13:14:06 +0200
|
||||
Subject: [PATCH 533/533] Import pgwipeout's pcie regs/ranges
|
||||
|
||||
This should fix nvme SSDs again. :)
|
||||
|
||||
Signed-off-by: Ondrej Jirman <megi@xff.cz>
|
||||
---
|
||||
arch/arm64/boot/dts/rockchip/rk356x.dtsi | 14 +++++---------
|
||||
1 file changed, 5 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
|
||||
index 90f3803d427c..ba706aaae72d 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
|
||||
@@ -695,9 +695,6 @@ pcie2x1: pcie@fe260000 {
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
bus-range = <0x0 0xf>;
|
||||
- assigned-clocks = <&cru ACLK_PCIE20_MST>, <&cru ACLK_PCIE20_SLV>,
|
||||
- <&cru ACLK_PCIE20_DBI>, <&cru PCLK_PCIE20>,
|
||||
- <&cru CLK_PCIE20_AUX_NDFT>;
|
||||
clocks = <&cru ACLK_PCIE20_MST>, <&cru ACLK_PCIE20_SLV>,
|
||||
<&cru ACLK_PCIE20_DBI>, <&cru PCLK_PCIE20>,
|
||||
<&cru CLK_PCIE20_AUX_NDFT>;
|
||||
@@ -725,11 +722,11 @@ pcie2x1: pcie@fe260000 {
|
||||
phys = <&combphy2 PHY_TYPE_PCIE>;
|
||||
phy-names = "pcie-phy";
|
||||
power-domains = <&power RK3568_PD_PIPE>;
|
||||
- reg = <0x3 0xc0000000 0x0 0x00400000>,
|
||||
- <0x0 0xfe260000 0x0 0x00010000>,
|
||||
- <0x3 0x00000000 0x0 0x01000000>;
|
||||
- ranges = <0x01000000 0x0 0x01000000 0x3 0x01000000 0x0 0x00100000
|
||||
- 0x02000000 0x0 0x02000000 0x3 0x02000000 0x0 0x3e000000>;
|
||||
+ reg = <0x3 0xc0000000 0x0 0x00400000>,
|
||||
+ <0x0 0xfe260000 0x0 0x00010000>,
|
||||
+ <0x3 0x3f000000 0x0 0x01000000>;
|
||||
+ ranges = <0x01000000 0x0 0x3ef00000 0x3 0x3ef00000 0x0 0x00100000
|
||||
+ 0x02000000 0x0 0x00000000 0x3 0x00000000 0x0 0x3ef00000>;
|
||||
reg-names = "dbi", "apb", "config";
|
||||
resets = <&cru SRST_PCIE20_POWERUP>;
|
||||
reset-names = "pipe";
|
||||
@@ -742,7 +739,6 @@ pcie_intc: legacy-interrupt-controller {
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <GIC_SPI 72 IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
-
|
||||
};
|
||||
|
||||
sdmmc0: mmc@fe2b0000 {
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
From f87eeb4faa7318b779f858a674821a3cc13e6e35 Mon Sep 17 00:00:00 2001
|
||||
From: Ondrej Jirman <megi@xff.cz>
|
||||
Date: Fri, 27 May 2022 16:44:42 +0200
|
||||
Subject: [PATCH 519/533] arm64: dts: rk3399-pinephone-pro: Use 4-lane mode for
|
||||
selfie camera
|
||||
|
||||
It works, enable it.
|
||||
|
||||
Signed-off-by: Ondrej Jirman <megi@xff.cz>
|
||||
---
|
||||
arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
|
||||
index ebc6e98b79d3..182e042a15ba 100644
|
||||
--- a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
|
||||
+++ b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
|
||||
@@ -395,7 +395,7 @@ regulator-state-mem {
|
||||
*
|
||||
* GPIO0_A6 must be high when the phone is providing VBUS_TYPEC power.
|
||||
* This keeps the power path boost enabled for all cases when the phone
|
||||
- * runs from the battery.
|
||||
+ * runs from the battery.
|
||||
*
|
||||
* In other words, GPIO0_A6 is used to override the automatic disabling
|
||||
* of Q7 when VBUS_TYPEC has 5V in USB host mode.
|
||||
@@ -941,7 +941,7 @@ ucam: camera@36 {
|
||||
port {
|
||||
ucam_out: endpoint {
|
||||
remote-endpoint = <&mipi_in_ucam>;
|
||||
- data-lanes = <1 2>;
|
||||
+ data-lanes = <1 2 3 4>;
|
||||
//clock-lanes = <0>;
|
||||
};
|
||||
};
|
||||
@@ -1160,7 +1160,7 @@ port@0 {
|
||||
mipi_in_ucam: endpoint@0 {
|
||||
reg = <0>;
|
||||
remote-endpoint = <&ucam_out>;
|
||||
- data-lanes = <1 2>;
|
||||
+ data-lanes = <1 2 3 4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From da83e39c7f6db79ff634b547db3ba586cb6bf9e1 Mon Sep 17 00:00:00 2001
|
||||
From: Ondrej Jirman <megi@xff.cz>
|
||||
Date: Fri, 27 May 2022 03:10:07 +0200
|
||||
Subject: [PATCH 518/533] leds: sgm3140: Add missing timer cleanup and flash
|
||||
gpio control
|
||||
|
||||
strobe = 1 + brightness = 0 before the timeout may mess up the
|
||||
driver state.
|
||||
|
||||
Signed-off-by: Ondrej Jirman <megi@xff.cz>
|
||||
---
|
||||
drivers/leds/flash/leds-sgm3140.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/drivers/leds/flash/leds-sgm3140.c b/drivers/leds/flash/leds-sgm3140.c
|
||||
index d3a30ad94ac4..dd5d327c52a1 100644
|
||||
--- a/drivers/leds/flash/leds-sgm3140.c
|
||||
+++ b/drivers/leds/flash/leds-sgm3140.c
|
||||
@@ -114,8 +114,11 @@ static int sgm3140_brightness_set(struct led_classdev *led_cdev,
|
||||
"failed to enable regulator: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
+ gpiod_set_value_cansleep(priv->flash_gpio, 0);
|
||||
gpiod_set_value_cansleep(priv->enable_gpio, 1);
|
||||
} else {
|
||||
+ del_timer_sync(&priv->powerdown_timer);
|
||||
+ gpiod_set_value_cansleep(priv->flash_gpio, 0);
|
||||
gpiod_set_value_cansleep(priv->enable_gpio, 0);
|
||||
ret = regulator_disable(priv->vin_regulator);
|
||||
if (ret) {
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -18,22 +18,19 @@ diff --git a/drivers/mailbox/mailbox.c b/drivers/mailbox/mailbox.c
|
||||
index 3e7d4b20ab34..82ca7c317700 100644
|
||||
--- a/drivers/mailbox/mailbox.c
|
||||
+++ b/drivers/mailbox/mailbox.c
|
||||
@@ -84,9 +84,11 @@ static void msg_submit(struct mbox_chan *chan)
|
||||
|
||||
/* kick start the timer immediately to avoid delays */
|
||||
@@ -85,7 +85,10 @@ static void msg_submit(struct mbox_chan *chan)
|
||||
if (!err && (chan->txdone_method & TXDONE_BY_POLL)) {
|
||||
- /* but only if not already active */
|
||||
- if (!hrtimer_active(&chan->mbox->poll_hrt))
|
||||
- hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL);
|
||||
/* kick start the timer immediately to avoid delays */
|
||||
spin_lock_irqsave(&chan->mbox->poll_hrt_lock, flags);
|
||||
- hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL);
|
||||
+ if (!timekeeping_suspended) {
|
||||
+ /* but only if not already active */
|
||||
+ if (!hrtimer_active(&chan->mbox->poll_hrt))
|
||||
+ hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL);
|
||||
+ hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL);
|
||||
+ }
|
||||
spin_unlock_irqrestore(&chan->mbox->poll_hrt_lock, flags);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -262,6 +264,24 @@ int mbox_send_message(struct mbox_chan *chan, void *mssg)
|
||||
@@ -268,6 +271,24 @@ int mbox_send_message(struct mbox_chan *chan, void *mssg)
|
||||
|
||||
msg_submit(chan);
|
||||
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
From b4175e2709a7fa7afeb88efadaef4071c2e643b9 Mon Sep 17 00:00:00 2001
|
||||
From: Ondrej Jirman <megi@xff.cz>
|
||||
Date: Thu, 9 Jun 2022 01:04:18 +0200
|
||||
Subject: [PATCH 532/533] media: imx258: Add debug register access
|
||||
|
||||
This is useful during development.
|
||||
|
||||
Signed-off-by: Ondrej Jirman <megi@xff.cz>
|
||||
---
|
||||
drivers/media/i2c/imx258.c | 48 ++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 48 insertions(+)
|
||||
|
||||
diff --git a/drivers/media/i2c/imx258.c b/drivers/media/i2c/imx258.c
|
||||
index 615f395ccdf3..bcfa7f4e69e7 100644
|
||||
--- a/drivers/media/i2c/imx258.c
|
||||
+++ b/drivers/media/i2c/imx258.c
|
||||
@@ -1275,6 +1275,53 @@ static int imx258_identify_module(struct imx258 *imx258)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
+static int imx258_g_register(struct v4l2_subdev *sd,
|
||||
+ struct v4l2_dbg_register *reg)
|
||||
+{
|
||||
+ struct imx258 *imx258 = to_imx258(sd);
|
||||
+ u32 val = 0;
|
||||
+ int ret;
|
||||
+
|
||||
+ if (reg->reg > 0xffff)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ reg->size = 1;
|
||||
+
|
||||
+ mutex_lock(&imx258->mutex);
|
||||
+ ret = imx258_read_reg(imx258, reg->reg, 1, &val);
|
||||
+ mutex_unlock(&imx258->mutex);
|
||||
+ if (ret)
|
||||
+ return -EIO;
|
||||
+
|
||||
+ reg->val = val;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int imx258_s_register(struct v4l2_subdev *sd,
|
||||
+ const struct v4l2_dbg_register *reg)
|
||||
+{
|
||||
+ struct imx258 *imx258 = to_imx258(sd);
|
||||
+ int ret;
|
||||
+
|
||||
+ if (reg->reg > 0xffff || reg->val > 0xff)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ mutex_lock(&imx258->mutex);
|
||||
+ ret = imx258_write_reg(imx258, reg->reg, 1, reg->val);
|
||||
+ mutex_unlock(&imx258->mutex);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+static const struct v4l2_subdev_core_ops imx258_core_ops = {
|
||||
+#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
+ .g_register = imx258_g_register,
|
||||
+ .s_register = imx258_s_register,
|
||||
+#endif
|
||||
+};
|
||||
+
|
||||
static const struct v4l2_subdev_video_ops imx258_video_ops = {
|
||||
.s_stream = imx258_set_stream,
|
||||
};
|
||||
@@ -1287,6 +1334,7 @@ static const struct v4l2_subdev_pad_ops imx258_pad_ops = {
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_ops imx258_subdev_ops = {
|
||||
+ .core = &imx258_core_ops,
|
||||
.video = &imx258_video_ops,
|
||||
.pad = &imx258_pad_ops,
|
||||
};
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
From 3c3580ab6e90b4a47d0896b91c86347dc1271ecd Mon Sep 17 00:00:00 2001
|
||||
From: Ondrej Jirman <megi@xff.cz>
|
||||
Date: Fri, 3 Jun 2022 16:04:04 +0200
|
||||
Subject: [PATCH 521/533] media: ov8858: Add support for digital gain control
|
||||
|
||||
Digital gain control is useful and was missing.
|
||||
|
||||
Signed-off-by: Ondrej Jirman <megi@xff.cz>
|
||||
---
|
||||
drivers/media/i2c/ov8858.c | 28 ++++++++++++++++++++++++++++
|
||||
1 file changed, 28 insertions(+)
|
||||
|
||||
diff --git a/drivers/media/i2c/ov8858.c b/drivers/media/i2c/ov8858.c
|
||||
index 5af4b71aa07b..95dabebecb74 100644
|
||||
--- a/drivers/media/i2c/ov8858.c
|
||||
+++ b/drivers/media/i2c/ov8858.c
|
||||
@@ -64,6 +64,16 @@
|
||||
#define OV8858_GAIN_STEP 1
|
||||
#define OV8858_GAIN_DEFAULT 0x80
|
||||
|
||||
+#define OV8858_REG_DGAIN_H 0x350a
|
||||
+#define OV8858_REG_DGAIN_L 0x350b
|
||||
+#define OV8858_DGAIN_H_MASK 0xff
|
||||
+#define OV8858_DGAIN_H_SHIFT 6
|
||||
+#define OV8858_DGAIN_L_MASK 0x3f
|
||||
+#define OV8858_DGAIN_MIN 0x0
|
||||
+#define OV8858_DGAIN_MAX 0x3fff
|
||||
+#define OV8858_DGAIN_STEP 1
|
||||
+#define OV8858_DGAIN_DEFAULT 0x200
|
||||
+
|
||||
#define OV8858_REG_TEST_PATTERN 0x5e00
|
||||
#define OV8858_TEST_PATTERN_ENABLE 0x80
|
||||
#define OV8858_TEST_PATTERN_DISABLE 0x0
|
||||
@@ -818,6 +828,7 @@ static const struct regval ov8858_global_regs_r2a_2lane[] = {
|
||||
{0x5001, 0x01}, // BLC on
|
||||
{0x5002, 0x08}, // H scale off, WBMATCH off, OTP_DPC
|
||||
{0x5003, 0x20}, // DPC_DBC buffer control enable, WB
|
||||
+ {0x501e, 0x93}, // enable digital gain
|
||||
{0x5046, 0x12}, //
|
||||
{0x5780, 0x3e}, // DPC
|
||||
{0x5781, 0x0f}, //
|
||||
@@ -1231,6 +1242,7 @@ static const struct regval ov8858_global_regs_r2a_4lane[] = {
|
||||
{0x5001, 0x01}, // BLC on
|
||||
{0x5002, 0x08}, // WBMATCH sensor's gain, H scale/WBMATCH/OTP_DPC off
|
||||
{0x5003, 0x20}, // DPC_DBC buffer control enable, WB
|
||||
+ {0x501e, 0x93}, // enable digital gain
|
||||
{0x5046, 0x12}, //
|
||||
{0x5780, 0x3e}, // DPC
|
||||
{0x5781, 0x0f}, //
|
||||
@@ -2335,6 +2347,17 @@ static int ov8858_set_ctrl(struct v4l2_ctrl *ctrl)
|
||||
OV8858_REG_VALUE_08BIT,
|
||||
ctrl->val & OV8858_GAIN_L_MASK);
|
||||
break;
|
||||
+ case V4L2_CID_DIGITAL_GAIN:
|
||||
+ ret = ov8858_write_reg(ov8858->client,
|
||||
+ OV8858_REG_DGAIN_H,
|
||||
+ OV8858_REG_VALUE_08BIT,
|
||||
+ (ctrl->val >> OV8858_DGAIN_H_SHIFT) &
|
||||
+ OV8858_DGAIN_H_MASK);
|
||||
+ ret |= ov8858_write_reg(ov8858->client,
|
||||
+ OV8858_REG_DGAIN_L,
|
||||
+ OV8858_REG_VALUE_08BIT,
|
||||
+ ctrl->val & OV8858_DGAIN_L_MASK);
|
||||
+ break;
|
||||
case V4L2_CID_VBLANK:
|
||||
ret = ov8858_write_reg(ov8858->client,
|
||||
OV8858_REG_VTS,
|
||||
@@ -2406,6 +2429,11 @@ static int ov8858_initialize_controls(struct ov8858 *ov8858)
|
||||
OV8858_GAIN_MAX, OV8858_GAIN_STEP,
|
||||
OV8858_GAIN_DEFAULT);
|
||||
|
||||
+ ov8858->digi_gain = v4l2_ctrl_new_std(handler, &ov8858_ctrl_ops,
|
||||
+ V4L2_CID_DIGITAL_GAIN, OV8858_DGAIN_MIN,
|
||||
+ OV8858_DGAIN_MAX, OV8858_DGAIN_STEP,
|
||||
+ OV8858_DGAIN_DEFAULT);
|
||||
+
|
||||
ov8858->test_pattern = v4l2_ctrl_new_std_menu_items(handler,
|
||||
&ov8858_ctrl_ops, V4L2_CID_TEST_PATTERN,
|
||||
ARRAY_SIZE(ov8858_test_pattern_menu) - 1,
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
From 7e3327366b72fb2ede59b438566472eb0728ddfe Mon Sep 17 00:00:00 2001
|
||||
From: Ondrej Jirman <megi@xff.cz>
|
||||
Date: Fri, 27 May 2022 16:46:13 +0200
|
||||
Subject: [PATCH 520/533] media: ov8858: Increase analog gain range
|
||||
|
||||
Tested to work up to 11 bits and down to 0.
|
||||
|
||||
Signed-off-by: Ondrej Jirman <megi@xff.cz>
|
||||
---
|
||||
drivers/media/i2c/ov8858.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/media/i2c/ov8858.c b/drivers/media/i2c/ov8858.c
|
||||
index 5bf4c195f497..5af4b71aa07b 100644
|
||||
--- a/drivers/media/i2c/ov8858.c
|
||||
+++ b/drivers/media/i2c/ov8858.c
|
||||
@@ -59,8 +59,8 @@
|
||||
#define OV8858_GAIN_H_MASK 0x07
|
||||
#define OV8858_GAIN_H_SHIFT 8
|
||||
#define OV8858_GAIN_L_MASK 0xff
|
||||
-#define OV8858_GAIN_MIN 0x80
|
||||
-#define OV8858_GAIN_MAX 0x400
|
||||
+#define OV8858_GAIN_MIN 0x0
|
||||
+#define OV8858_GAIN_MAX 0x7ff
|
||||
#define OV8858_GAIN_STEP 1
|
||||
#define OV8858_GAIN_DEFAULT 0x80
|
||||
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
From ca1b069c460adc12ec8e589b482b0fae7ed770cf Mon Sep 17 00:00:00 2001
|
||||
From: Ondrej Jirman <megi@xff.cz>
|
||||
Date: Fri, 27 May 2022 03:07:54 +0200
|
||||
Subject: [PATCH 517/533] power: supply: rk818-battery: Speed up battery
|
||||
current readout
|
||||
|
||||
PMIC does averaging, driver does averaging on top of that averaging,
|
||||
and it's just too much averaging, and the speed suffers.
|
||||
|
||||
Signed-off-by: Ondrej Jirman <megi@xff.cz>
|
||||
---
|
||||
drivers/power/supply/rk818_battery.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/power/supply/rk818_battery.c b/drivers/power/supply/rk818_battery.c
|
||||
index e0e5ed0e3d2a..9323666491db 100644
|
||||
--- a/drivers/power/supply/rk818_battery.c
|
||||
+++ b/drivers/power/supply/rk818_battery.c
|
||||
@@ -903,12 +903,12 @@ int rk818_battery_get_property(struct rk818_battery *di,
|
||||
{
|
||||
switch (psp) {
|
||||
case POWER_SUPPLY_PROP_CURRENT_NOW:
|
||||
- val->intval = di->current_avg * 1000;/*uA*/
|
||||
+ val->intval = rk818_bat_get_avg_current(di) * 1000;/*uA*/
|
||||
if (di->pdata->bat_mode == MODE_VIRTUAL)
|
||||
val->intval = VIRTUAL_CURRENT * 1000;
|
||||
break;
|
||||
case POWER_SUPPLY_PROP_VOLTAGE_NOW:
|
||||
- val->intval = di->voltage_avg * 1000;/*uV*/
|
||||
+ val->intval = rk818_bat_get_avg_voltage(di) * 1000;/*uV*/
|
||||
if (di->pdata->bat_mode == MODE_VIRTUAL)
|
||||
val->intval = VIRTUAL_VOLTAGE * 1000;
|
||||
break;
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From bafd3eecaabac850ed27da95409dcf1268db3ced Mon Sep 17 00:00:00 2001
|
||||
From: Po-Hao Huang <phhuang@realtek.com>
|
||||
Date: Fri, 20 May 2022 16:15:23 +0800
|
||||
Subject: [PATCH 527/533] rtw88: fix null vif pointer when hw_scan fails
|
||||
|
||||
Add this check to avoid crash by dereferencing a null pointer. When hwscan
|
||||
fails due to no memory or dma failure, the scan flag in ieee80211_local is
|
||||
cleared. So mac80211 determine that it's not hw_scan then calls
|
||||
sw_scan_complete() with null vif, which is also freed during the fail.
|
||||
|
||||
Signed-off-by: Po-Hao Huang <phhuang@realtek.com>
|
||||
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://lore.kernel.org/r/20220520081523.45987-1-pkshih@realtek.com
|
||||
---
|
||||
drivers/net/wireless/realtek/rtw88/main.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c
|
||||
index 4e03441f2fe7..f0931fdc713f 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/main.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/main.c
|
||||
@@ -1383,9 +1383,12 @@ void rtw_core_scan_start(struct rtw_dev *rtwdev, struct rtw_vif *rtwvif,
|
||||
void rtw_core_scan_complete(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
|
||||
bool hw_scan)
|
||||
{
|
||||
- struct rtw_vif *rtwvif = (struct rtw_vif *)vif->drv_priv;
|
||||
+ struct rtw_vif *rtwvif = vif ? (struct rtw_vif *)vif->drv_priv : NULL;
|
||||
u32 config = 0;
|
||||
|
||||
+ if (!rtwvif)
|
||||
+ return;
|
||||
+
|
||||
clear_bit(RTW_FLAG_SCANNING, rtwdev->flags);
|
||||
clear_bit(RTW_FLAG_DIG_DISABLE, rtwdev->flags);
|
||||
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
From f2a523820ea1be304d576a2cf1872bb495465b10 Mon Sep 17 00:00:00 2001
|
||||
From: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Date: Fri, 20 May 2022 15:17:29 +0800
|
||||
Subject: [PATCH 525/533] rtw89: 8852c: rfk: re-calibrate RX DCK once thermal
|
||||
changes a lot
|
||||
|
||||
RX DCK is receiver DC calibration. To keep good RF performance, do this
|
||||
calibration again if the delta of thermal value from the last calibration
|
||||
is more than 8.
|
||||
|
||||
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://lore.kernel.org/r/20220520071731.38563-5-pkshih@realtek.com
|
||||
---
|
||||
drivers/net/wireless/realtek/rtw89/core.h | 5 ++++
|
||||
drivers/net/wireless/realtek/rtw89/rtw8852c.c | 1 +
|
||||
.../net/wireless/realtek/rtw89/rtw8852c_rfk.c | 27 +++++++++++++++++++
|
||||
.../net/wireless/realtek/rtw89/rtw8852c_rfk.h | 1 +
|
||||
4 files changed, 34 insertions(+)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h
|
||||
index 46e806650c6c..0b5fcad1b62f 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/core.h
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/core.h
|
||||
@@ -2647,6 +2647,10 @@ struct rtw89_lck_info {
|
||||
u8 thermal[RF_PATH_MAX];
|
||||
};
|
||||
|
||||
+struct rtw89_rx_dck_info {
|
||||
+ u8 thermal[RF_PATH_MAX];
|
||||
+};
|
||||
+
|
||||
struct rtw89_iqk_info {
|
||||
bool lok_cor_fail[RTW89_IQK_CHS_NR][RTW89_IQK_PATH_NR];
|
||||
bool lok_fin_fail[RTW89_IQK_CHS_NR][RTW89_IQK_PATH_NR];
|
||||
@@ -3126,6 +3130,7 @@ struct rtw89_dev {
|
||||
struct rtw89_dpk_info dpk;
|
||||
struct rtw89_mcc_info mcc;
|
||||
struct rtw89_lck_info lck;
|
||||
+ struct rtw89_rx_dck_info rx_dck;
|
||||
bool is_tssi_mode[RF_PATH_MAX];
|
||||
bool is_bt_iqk_timeout;
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c.c b/drivers/net/wireless/realtek/rtw89/rtw8852c.c
|
||||
index 64840c8d9efe..b697aef2faf2 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/rtw8852c.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852c.c
|
||||
@@ -1861,6 +1861,7 @@ static void rtw8852c_rfk_track(struct rtw89_dev *rtwdev)
|
||||
{
|
||||
rtw8852c_dpk_track(rtwdev);
|
||||
rtw8852c_lck_track(rtwdev);
|
||||
+ rtw8852c_rx_dck_track(rtwdev);
|
||||
}
|
||||
|
||||
static u32 rtw8852c_bb_cal_txpwr_ref(struct rtw89_dev *rtwdev,
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
|
||||
index dfb9caba9bc4..4186d825d19b 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c
|
||||
@@ -3864,6 +3864,7 @@ void rtw8852c_iqk(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx)
|
||||
|
||||
void rtw8852c_rx_dck(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy, bool is_afe)
|
||||
{
|
||||
+ struct rtw89_rx_dck_info *rx_dck = &rtwdev->rx_dck;
|
||||
u8 path, kpath;
|
||||
u32 rf_reg5;
|
||||
|
||||
@@ -3883,6 +3884,7 @@ void rtw8852c_rx_dck(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy, bool is_a
|
||||
rtw89_write_rf(rtwdev, path, RR_RSV1, RR_RSV1_RST, 0x0);
|
||||
rtw89_write_rf(rtwdev, path, RR_MOD, RR_MOD_MASK, RR_MOD_V_RX);
|
||||
_set_rx_dck(rtwdev, phy, path, is_afe);
|
||||
+ rx_dck->thermal[path] = ewma_thermal_read(&rtwdev->phystat.avg_thermal[path]);
|
||||
rtw89_write_rf(rtwdev, path, RR_RSV1, RFREG_MASK, rf_reg5);
|
||||
|
||||
if (rtwdev->is_tssi_mode[path])
|
||||
@@ -3891,6 +3893,31 @@ void rtw8852c_rx_dck(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy, bool is_a
|
||||
}
|
||||
}
|
||||
|
||||
+#define RTW8852C_RX_DCK_TH 8
|
||||
+
|
||||
+void rtw8852c_rx_dck_track(struct rtw89_dev *rtwdev)
|
||||
+{
|
||||
+ struct rtw89_rx_dck_info *rx_dck = &rtwdev->rx_dck;
|
||||
+ u8 cur_thermal;
|
||||
+ int delta;
|
||||
+ int path;
|
||||
+
|
||||
+ for (path = 0; path < RF_PATH_NUM_8852C; path++) {
|
||||
+ cur_thermal =
|
||||
+ ewma_thermal_read(&rtwdev->phystat.avg_thermal[path]);
|
||||
+ delta = abs((int)cur_thermal - rx_dck->thermal[path]);
|
||||
+
|
||||
+ rtw89_debug(rtwdev, RTW89_DBG_RFK_TRACK,
|
||||
+ "[RX_DCK] path=%d current thermal=0x%x delta=0x%x\n",
|
||||
+ path, cur_thermal, delta);
|
||||
+
|
||||
+ if (delta >= RTW8852C_RX_DCK_TH) {
|
||||
+ rtw8852c_rx_dck(rtwdev, RTW89_PHY_0, false);
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
void rtw8852c_dpk(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx)
|
||||
{
|
||||
u32 tx_en;
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h
|
||||
index c32756f0c01a..5118a49da8d3 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.h
|
||||
@@ -12,6 +12,7 @@ void rtw8852c_rck(struct rtw89_dev *rtwdev);
|
||||
void rtw8852c_dack(struct rtw89_dev *rtwdev);
|
||||
void rtw8852c_iqk(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx);
|
||||
void rtw8852c_rx_dck(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy_idx, bool is_afe);
|
||||
+void rtw8852c_rx_dck_track(struct rtw89_dev *rtwdev);
|
||||
void rtw8852c_dpk(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy);
|
||||
void rtw8852c_dpk_track(struct rtw89_dev *rtwdev);
|
||||
void rtw8852c_tssi(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy);
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -0,0 +1,146 @@
|
||||
From 2075698fe87a34c5cffa18a6738f5696b65027c9 Mon Sep 17 00:00:00 2001
|
||||
From: Po Hao Huang <phhuang@realtek.com>
|
||||
Date: Fri, 20 May 2022 15:17:26 +0800
|
||||
Subject: [PATCH 522/533] rtw89: fix channel inconsistency during hw_scan
|
||||
|
||||
Previously channel maintained by driver could be different from the
|
||||
ones hardware actually is. Restore these variables back to prevent
|
||||
unexpected behavior.
|
||||
|
||||
Signed-off-by: Po Hao Huang <phhuang@realtek.com>
|
||||
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://lore.kernel.org/r/20220520071731.38563-2-pkshih@realtek.com
|
||||
---
|
||||
drivers/net/wireless/realtek/rtw89/core.c | 2 +-
|
||||
drivers/net/wireless/realtek/rtw89/fw.c | 20 ++++++++++++++-----
|
||||
drivers/net/wireless/realtek/rtw89/fw.h | 5 +----
|
||||
drivers/net/wireless/realtek/rtw89/mac.c | 15 ++++++++------
|
||||
drivers/net/wireless/realtek/rtw89/mac80211.c | 2 +-
|
||||
5 files changed, 27 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c
|
||||
index c23ecf4675f3..7c12ac10945b 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/core.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/core.c
|
||||
@@ -1608,7 +1608,7 @@ static void rtw89_core_update_rx_status(struct rtw89_dev *rtwdev,
|
||||
|
||||
if (rtwdev->scanning &&
|
||||
RTW89_CHK_FW_FEATURE(SCAN_OFFLOAD, &rtwdev->fw)) {
|
||||
- u8 chan = hal->current_channel;
|
||||
+ u8 chan = hal->current_primary_channel;
|
||||
u8 band = hal->current_band_type;
|
||||
enum nl80211_band nl_band;
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c
|
||||
index 168d853e2c1d..04f6da04781b 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/fw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/fw.c
|
||||
@@ -2343,6 +2343,9 @@ void rtw89_hw_scan_complete(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif,
|
||||
rtwvif->scan_req = NULL;
|
||||
rtwvif->scan_ies = NULL;
|
||||
rtwdev->scan_info.scanning_vif = NULL;
|
||||
+
|
||||
+ if (rtwvif->net_type != RTW89_NET_TYPE_NO_LINK)
|
||||
+ rtw89_store_op_chan(rtwdev, false);
|
||||
}
|
||||
|
||||
void rtw89_hw_scan_abort(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif)
|
||||
@@ -2374,15 +2377,22 @@ int rtw89_hw_scan_offload(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif,
|
||||
return ret;
|
||||
}
|
||||
|
||||
-void rtw89_store_op_chan(struct rtw89_dev *rtwdev)
|
||||
+void rtw89_store_op_chan(struct rtw89_dev *rtwdev, bool backup)
|
||||
{
|
||||
struct rtw89_hw_scan_info *scan_info = &rtwdev->scan_info;
|
||||
struct rtw89_hal *hal = &rtwdev->hal;
|
||||
|
||||
- scan_info->op_pri_ch = hal->current_primary_channel;
|
||||
- scan_info->op_chan = hal->current_channel;
|
||||
- scan_info->op_bw = hal->current_band_width;
|
||||
- scan_info->op_band = hal->current_band_type;
|
||||
+ if (backup) {
|
||||
+ scan_info->op_pri_ch = hal->current_primary_channel;
|
||||
+ scan_info->op_chan = hal->current_channel;
|
||||
+ scan_info->op_bw = hal->current_band_width;
|
||||
+ scan_info->op_band = hal->current_band_type;
|
||||
+ } else {
|
||||
+ hal->current_primary_channel = scan_info->op_pri_ch;
|
||||
+ hal->current_channel = scan_info->op_chan;
|
||||
+ hal->current_band_width = scan_info->op_bw;
|
||||
+ hal->current_band_type = scan_info->op_band;
|
||||
+ }
|
||||
}
|
||||
|
||||
#define H2C_FW_CPU_EXCEPTION_LEN 4
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/fw.h b/drivers/net/wireless/realtek/rtw89/fw.h
|
||||
index 95a55c4213db..e75ad22aa85d 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/fw.h
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/fw.h
|
||||
@@ -2633,17 +2633,14 @@ int rtw89_fw_msg_reg(struct rtw89_dev *rtwdev,
|
||||
struct rtw89_mac_c2h_info *c2h_info);
|
||||
int rtw89_fw_h2c_fw_log(struct rtw89_dev *rtwdev, bool enable);
|
||||
void rtw89_fw_st_dbg_dump(struct rtw89_dev *rtwdev);
|
||||
-void rtw89_store_op_chan(struct rtw89_dev *rtwdev);
|
||||
+void rtw89_store_op_chan(struct rtw89_dev *rtwdev, bool backup);
|
||||
void rtw89_hw_scan_start(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif,
|
||||
struct ieee80211_scan_request *req);
|
||||
void rtw89_hw_scan_complete(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif,
|
||||
bool aborted);
|
||||
int rtw89_hw_scan_offload(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif,
|
||||
bool enable);
|
||||
-void rtw89_hw_scan_status_report(struct rtw89_dev *rtwdev, struct sk_buff *skb);
|
||||
-void rtw89_hw_scan_chan_switch(struct rtw89_dev *rtwdev, struct sk_buff *skb);
|
||||
void rtw89_hw_scan_abort(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif);
|
||||
-void rtw89_store_op_chan(struct rtw89_dev *rtwdev);
|
||||
int rtw89_fw_h2c_trigger_cpu_exception(struct rtw89_dev *rtwdev);
|
||||
|
||||
#endif
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c
|
||||
index facd0abb50bd..f5f63f9746f2 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/mac.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/mac.c
|
||||
@@ -3681,17 +3681,20 @@ rtw89_mac_c2h_scanofld_rsp(struct rtw89_dev *rtwdev, struct sk_buff *c2h,
|
||||
rtw89_hw_scan_complete(rtwdev, vif, false);
|
||||
break;
|
||||
case RTW89_SCAN_ENTER_CH_NOTIFY:
|
||||
- if (rtw89_is_op_chan(rtwdev, band, chan))
|
||||
+ hal->prev_band_type = hal->current_band_type;
|
||||
+ hal->current_band_type = band;
|
||||
+ hal->prev_primary_channel = hal->current_primary_channel;
|
||||
+ hal->current_primary_channel = chan;
|
||||
+ hal->current_channel = chan;
|
||||
+ hal->current_band_width = RTW89_CHANNEL_WIDTH_20;
|
||||
+ if (rtw89_is_op_chan(rtwdev, band, chan)) {
|
||||
+ rtw89_store_op_chan(rtwdev, false);
|
||||
ieee80211_wake_queues(rtwdev->hw);
|
||||
+ }
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
-
|
||||
- hal->prev_band_type = hal->current_band_type;
|
||||
- hal->prev_primary_channel = hal->current_channel;
|
||||
- hal->current_channel = chan;
|
||||
- hal->current_band_type = band;
|
||||
}
|
||||
|
||||
static void
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/mac80211.c b/drivers/net/wireless/realtek/rtw89/mac80211.c
|
||||
index f24e4a208376..6d0c62c545a7 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/mac80211.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/mac80211.c
|
||||
@@ -350,7 +350,7 @@ static void rtw89_ops_bss_info_changed(struct ieee80211_hw *hw,
|
||||
rtw89_phy_set_bss_color(rtwdev, vif);
|
||||
rtw89_chip_cfg_txpwr_ul_tb_offset(rtwdev, vif);
|
||||
rtw89_mac_port_update(rtwdev, rtwvif);
|
||||
- rtw89_store_op_chan(rtwdev);
|
||||
+ rtw89_store_op_chan(rtwdev, true);
|
||||
} else {
|
||||
/* Abort ongoing scan if cancel_scan isn't issued
|
||||
* when disconnected by peer
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
From 8487193008b94e728a5f79a0977cf26fb20ded41 Mon Sep 17 00:00:00 2001
|
||||
From: Po Hao Huang <phhuang@realtek.com>
|
||||
Date: Fri, 20 May 2022 15:17:27 +0800
|
||||
Subject: [PATCH 523/533] rtw89: fix null vif pointer when hw_scan fails
|
||||
|
||||
Add this check to avoid crash by dereferencing a null pointer. When hwscan
|
||||
fails due to no memory or dma failure, the scan flag in ieee80211_local is
|
||||
cleared. So mac80211 determine that it's not hw_scan then calls
|
||||
sw_scan_complete() with null vif, which is also freed during the fail.
|
||||
|
||||
Signed-off-by: Po Hao Huang <phhuang@realtek.com>
|
||||
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://lore.kernel.org/r/20220520071731.38563-3-pkshih@realtek.com
|
||||
---
|
||||
drivers/net/wireless/realtek/rtw89/core.c | 5 ++++-
|
||||
drivers/net/wireless/realtek/rtw89/fw.c | 4 ++--
|
||||
2 files changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c
|
||||
index 7c12ac10945b..631dcdff4d0d 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/core.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/core.c
|
||||
@@ -2875,7 +2875,10 @@ void rtw89_core_scan_start(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
|
||||
void rtw89_core_scan_complete(struct rtw89_dev *rtwdev,
|
||||
struct ieee80211_vif *vif, bool hw_scan)
|
||||
{
|
||||
- struct rtw89_vif *rtwvif = (struct rtw89_vif *)vif->drv_priv;
|
||||
+ struct rtw89_vif *rtwvif = vif ? (struct rtw89_vif *)vif->drv_priv : NULL;
|
||||
+
|
||||
+ if (!rtwvif)
|
||||
+ return;
|
||||
|
||||
ether_addr_copy(rtwvif->mac_addr, vif->addr);
|
||||
rtw89_fw_h2c_cam(rtwdev, rtwvif, NULL, NULL);
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c
|
||||
index 04f6da04781b..ab991e644a85 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/fw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/fw.c
|
||||
@@ -2261,7 +2261,7 @@ static int rtw89_hw_scan_add_chan_list(struct rtw89_dev *rtwdev,
|
||||
list_add_tail(&ch_info->list, &chan_list);
|
||||
off_chan_time += ch_info->period;
|
||||
}
|
||||
- rtw89_fw_h2c_scan_list_offload(rtwdev, list_len, &chan_list);
|
||||
+ ret = rtw89_fw_h2c_scan_list_offload(rtwdev, list_len, &chan_list);
|
||||
|
||||
out:
|
||||
list_for_each_entry_safe(ch_info, tmp, &chan_list, list) {
|
||||
@@ -2372,7 +2372,7 @@ int rtw89_hw_scan_offload(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif,
|
||||
if (ret)
|
||||
goto out;
|
||||
}
|
||||
- rtw89_fw_h2c_scan_offload(rtwdev, &opt, rtwvif);
|
||||
+ ret = rtw89_fw_h2c_scan_offload(rtwdev, &opt, rtwvif);
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
From d6bdfee6210a0a509ad7677eaafac391b1ef9f9a Mon Sep 17 00:00:00 2001
|
||||
From: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Date: Fri, 20 May 2022 15:17:28 +0800
|
||||
Subject: [PATCH 524/533] rtw89: pci: handle hardware watchdog timeout
|
||||
interrupt status
|
||||
|
||||
This watchdog timeout status bit indicates hardware gets wrong, so run SER
|
||||
L2 flow that calls mac80211 to restart hardware.
|
||||
|
||||
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://lore.kernel.org/r/20220520071731.38563-4-pkshih@realtek.com
|
||||
---
|
||||
drivers/net/wireless/realtek/rtw89/mac.h | 1 +
|
||||
drivers/net/wireless/realtek/rtw89/pci.c | 9 ++++++---
|
||||
drivers/net/wireless/realtek/rtw89/pci.h | 1 +
|
||||
3 files changed, 8 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/mac.h b/drivers/net/wireless/realtek/rtw89/mac.h
|
||||
index 9f511c8d8a37..f66619354734 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/mac.h
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/mac.h
|
||||
@@ -666,6 +666,7 @@ enum mac_ax_err_info {
|
||||
MAC_AX_ERR_L2_ERR_APB_BBRF_TO_RX4281 = 0x2360,
|
||||
MAC_AX_ERR_L2_ERR_APB_BBRF_TO_OTHERS = 0x2370,
|
||||
MAC_AX_ERR_L2_RESET_DONE = 0x2400,
|
||||
+ MAC_AX_ERR_L2_ERR_WDT_TIMEOUT_INT = 0x2599,
|
||||
MAC_AX_ERR_CPU_EXCEPTION = 0x3000,
|
||||
MAC_AX_ERR_ASSERTION = 0x4000,
|
||||
MAC_AX_GET_ERR_MAX,
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/pci.c b/drivers/net/wireless/realtek/rtw89/pci.c
|
||||
index 0ef7821b2e0f..25872dfb4da1 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/pci.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/pci.c
|
||||
@@ -738,6 +738,9 @@ static irqreturn_t rtw89_pci_interrupt_threadfn(int irq, void *dev)
|
||||
if (unlikely(isrs.halt_c2h_isrs & B_AX_HALT_C2H_INT_EN))
|
||||
rtw89_ser_notify(rtwdev, rtw89_mac_get_err_status(rtwdev));
|
||||
|
||||
+ if (unlikely(isrs.halt_c2h_isrs & B_AX_WDT_TIMEOUT_INT_EN))
|
||||
+ rtw89_ser_notify(rtwdev, MAC_AX_ERR_L2_ERR_WDT_TIMEOUT_INT);
|
||||
+
|
||||
if (unlikely(rtwpci->under_recovery))
|
||||
goto enable_intr;
|
||||
|
||||
@@ -3126,7 +3129,7 @@ static void rtw89_pci_recovery_intr_mask_v1(struct rtw89_dev *rtwdev)
|
||||
struct rtw89_pci *rtwpci = (struct rtw89_pci *)rtwdev->priv;
|
||||
|
||||
rtwpci->ind_intrs = B_AX_HS0ISR_IND_INT_EN;
|
||||
- rtwpci->halt_c2h_intrs = B_AX_HALT_C2H_INT_EN;
|
||||
+ rtwpci->halt_c2h_intrs = B_AX_HALT_C2H_INT_EN | B_AX_WDT_TIMEOUT_INT_EN;
|
||||
rtwpci->intrs[0] = 0;
|
||||
rtwpci->intrs[1] = 0;
|
||||
}
|
||||
@@ -3138,7 +3141,7 @@ static void rtw89_pci_default_intr_mask_v1(struct rtw89_dev *rtwdev)
|
||||
rtwpci->ind_intrs = B_AX_HCI_AXIDMA_INT_EN |
|
||||
B_AX_HS1ISR_IND_INT_EN |
|
||||
B_AX_HS0ISR_IND_INT_EN;
|
||||
- rtwpci->halt_c2h_intrs = B_AX_HALT_C2H_INT_EN;
|
||||
+ rtwpci->halt_c2h_intrs = B_AX_HALT_C2H_INT_EN | B_AX_WDT_TIMEOUT_INT_EN;
|
||||
rtwpci->intrs[0] = B_AX_TXDMA_STUCK_INT_EN |
|
||||
B_AX_RXDMA_INT_EN |
|
||||
B_AX_RXP1DMA_INT_EN |
|
||||
@@ -3155,7 +3158,7 @@ static void rtw89_pci_low_power_intr_mask_v1(struct rtw89_dev *rtwdev)
|
||||
|
||||
rtwpci->ind_intrs = B_AX_HS1ISR_IND_INT_EN |
|
||||
B_AX_HS0ISR_IND_INT_EN;
|
||||
- rtwpci->halt_c2h_intrs = B_AX_HALT_C2H_INT_EN;
|
||||
+ rtwpci->halt_c2h_intrs = B_AX_HALT_C2H_INT_EN | B_AX_WDT_TIMEOUT_INT_EN;
|
||||
rtwpci->intrs[0] = 0;
|
||||
rtwpci->intrs[1] = B_AX_GPIO18_INT_EN;
|
||||
}
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/pci.h b/drivers/net/wireless/realtek/rtw89/pci.h
|
||||
index bb585ed19190..a118647213e3 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/pci.h
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/pci.h
|
||||
@@ -94,6 +94,7 @@
|
||||
|
||||
/* Interrupts */
|
||||
#define R_AX_HIMR0 0x01A0
|
||||
+#define B_AX_WDT_TIMEOUT_INT_EN BIT(22)
|
||||
#define B_AX_HALT_C2H_INT_EN BIT(21)
|
||||
#define R_AX_HISR0 0x01A4
|
||||
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -0,0 +1,260 @@
|
||||
From 9bdb1c3de58e2e94ff8cda1350749612978f65d1 Mon Sep 17 00:00:00 2001
|
||||
From: Zong-Zhe Yang <kevin_yang@realtek.com>
|
||||
Date: Fri, 20 May 2022 15:17:30 +0800
|
||||
Subject: [PATCH 526/533] rtw89: sar: adjust and support SAR on 6GHz band
|
||||
|
||||
Since SAR is more expected to follow U-NII bands to plan subbands,
|
||||
division of 6GHz band is quite different from defined enum of subbands
|
||||
which is used by PHY in most cases. It's hard and painful if we want to
|
||||
keep using the same enum on SAR. So, we introduce another enum for SAR
|
||||
subbands and adjust SAR flow to use it.
|
||||
|
||||
Besides, since 6GHz SAR subbands won't be divided with edge alignment,
|
||||
some cases will span two SAR subbands. For these cases, we describe them
|
||||
within an array of rtw89_sar_span and take the smaller one between SAR
|
||||
settings of the two subbands.
|
||||
|
||||
Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
|
||||
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://lore.kernel.org/r/20220520071731.38563-6-pkshih@realtek.com
|
||||
---
|
||||
drivers/net/wireless/realtek/rtw89/core.h | 19 ++-
|
||||
drivers/net/wireless/realtek/rtw89/debug.h | 1 +
|
||||
drivers/net/wireless/realtek/rtw89/sar.c | 140 ++++++++++++++++++---
|
||||
3 files changed, 140 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h
|
||||
index 0b5fcad1b62f..71e66c7ac858 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/core.h
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/core.h
|
||||
@@ -2551,9 +2551,24 @@ enum rtw89_sar_sources {
|
||||
RTW89_SAR_SOURCE_NR,
|
||||
};
|
||||
|
||||
+enum rtw89_sar_subband {
|
||||
+ RTW89_SAR_2GHZ_SUBBAND,
|
||||
+ RTW89_SAR_5GHZ_SUBBAND_1_2, /* U-NII-1 and U-NII-2 */
|
||||
+ RTW89_SAR_5GHZ_SUBBAND_2_E, /* U-NII-2-Extended */
|
||||
+ RTW89_SAR_5GHZ_SUBBAND_3, /* U-NII-3 */
|
||||
+ RTW89_SAR_6GHZ_SUBBAND_5_L, /* U-NII-5 lower part */
|
||||
+ RTW89_SAR_6GHZ_SUBBAND_5_H, /* U-NII-5 higher part */
|
||||
+ RTW89_SAR_6GHZ_SUBBAND_6, /* U-NII-6 */
|
||||
+ RTW89_SAR_6GHZ_SUBBAND_7_L, /* U-NII-7 lower part */
|
||||
+ RTW89_SAR_6GHZ_SUBBAND_7_H, /* U-NII-7 higher part */
|
||||
+ RTW89_SAR_6GHZ_SUBBAND_8, /* U-NII-8 */
|
||||
+
|
||||
+ RTW89_SAR_SUBBAND_NR,
|
||||
+};
|
||||
+
|
||||
struct rtw89_sar_cfg_common {
|
||||
- bool set[RTW89_SUBBAND_NR];
|
||||
- s32 cfg[RTW89_SUBBAND_NR];
|
||||
+ bool set[RTW89_SAR_SUBBAND_NR];
|
||||
+ s32 cfg[RTW89_SAR_SUBBAND_NR];
|
||||
};
|
||||
|
||||
struct rtw89_sar_info {
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/debug.h b/drivers/net/wireless/realtek/rtw89/debug.h
|
||||
index de72155ad1fe..561b04faf703 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/debug.h
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/debug.h
|
||||
@@ -24,6 +24,7 @@ enum rtw89_debug_mask {
|
||||
RTW89_DBG_BTC = BIT(13),
|
||||
RTW89_DBG_BF = BIT(14),
|
||||
RTW89_DBG_HW_SCAN = BIT(15),
|
||||
+ RTW89_DBG_SAR = BIT(16),
|
||||
};
|
||||
|
||||
enum rtw89_debug_mac_reg_sel {
|
||||
diff --git a/drivers/net/wireless/realtek/rtw89/sar.c b/drivers/net/wireless/realtek/rtw89/sar.c
|
||||
index 097c87899cea..eb2d3ec28775 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw89/sar.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw89/sar.c
|
||||
@@ -5,15 +5,122 @@
|
||||
#include "debug.h"
|
||||
#include "sar.h"
|
||||
|
||||
+static enum rtw89_sar_subband rtw89_sar_get_subband(struct rtw89_dev *rtwdev,
|
||||
+ u32 center_freq)
|
||||
+{
|
||||
+ switch (center_freq) {
|
||||
+ default:
|
||||
+ rtw89_debug(rtwdev, RTW89_DBG_SAR,
|
||||
+ "center freq: %u to SAR subband is unhandled\n",
|
||||
+ center_freq);
|
||||
+ fallthrough;
|
||||
+ case 2412 ... 2484:
|
||||
+ return RTW89_SAR_2GHZ_SUBBAND;
|
||||
+ case 5180 ... 5320:
|
||||
+ return RTW89_SAR_5GHZ_SUBBAND_1_2;
|
||||
+ case 5500 ... 5720:
|
||||
+ return RTW89_SAR_5GHZ_SUBBAND_2_E;
|
||||
+ case 5745 ... 5825:
|
||||
+ return RTW89_SAR_5GHZ_SUBBAND_3;
|
||||
+ case 5955 ... 6155:
|
||||
+ return RTW89_SAR_6GHZ_SUBBAND_5_L;
|
||||
+ case 6175 ... 6415:
|
||||
+ return RTW89_SAR_6GHZ_SUBBAND_5_H;
|
||||
+ case 6435 ... 6515:
|
||||
+ return RTW89_SAR_6GHZ_SUBBAND_6;
|
||||
+ case 6535 ... 6695:
|
||||
+ return RTW89_SAR_6GHZ_SUBBAND_7_L;
|
||||
+ case 6715 ... 6855:
|
||||
+ return RTW89_SAR_6GHZ_SUBBAND_7_H;
|
||||
+
|
||||
+ /* freq 6875 (ch 185, 20MHz) spans RTW89_SAR_6GHZ_SUBBAND_7_H
|
||||
+ * and RTW89_SAR_6GHZ_SUBBAND_8, so directly describe it with
|
||||
+ * struct rtw89_sar_span in the following.
|
||||
+ */
|
||||
+
|
||||
+ case 6895 ... 7115:
|
||||
+ return RTW89_SAR_6GHZ_SUBBAND_8;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+struct rtw89_sar_span {
|
||||
+ enum rtw89_sar_subband subband_low;
|
||||
+ enum rtw89_sar_subband subband_high;
|
||||
+};
|
||||
+
|
||||
+#define RTW89_SAR_SPAN_VALID(span) ((span)->subband_high)
|
||||
+
|
||||
+#define RTW89_SAR_6GHZ_SPAN_HEAD 6145
|
||||
+#define RTW89_SAR_6GHZ_SPAN_IDX(center_freq) \
|
||||
+ ((((int)(center_freq) - RTW89_SAR_6GHZ_SPAN_HEAD) / 5) / 2)
|
||||
+
|
||||
+#define RTW89_DECL_SAR_6GHZ_SPAN(center_freq, subband_l, subband_h) \
|
||||
+ [RTW89_SAR_6GHZ_SPAN_IDX(center_freq)] = { \
|
||||
+ .subband_low = RTW89_SAR_6GHZ_ ## subband_l, \
|
||||
+ .subband_high = RTW89_SAR_6GHZ_ ## subband_h, \
|
||||
+ }
|
||||
+
|
||||
+/* Since 6GHz SAR subbands are not edge aligned, some cases span two SAR
|
||||
+ * subbands. In the following, we describe each of them with rtw89_sar_span.
|
||||
+ */
|
||||
+static const struct rtw89_sar_span rtw89_sar_overlapping_6ghz[] = {
|
||||
+ RTW89_DECL_SAR_6GHZ_SPAN(6145, SUBBAND_5_L, SUBBAND_5_H),
|
||||
+ RTW89_DECL_SAR_6GHZ_SPAN(6165, SUBBAND_5_L, SUBBAND_5_H),
|
||||
+ RTW89_DECL_SAR_6GHZ_SPAN(6185, SUBBAND_5_L, SUBBAND_5_H),
|
||||
+ RTW89_DECL_SAR_6GHZ_SPAN(6505, SUBBAND_6, SUBBAND_7_L),
|
||||
+ RTW89_DECL_SAR_6GHZ_SPAN(6525, SUBBAND_6, SUBBAND_7_L),
|
||||
+ RTW89_DECL_SAR_6GHZ_SPAN(6545, SUBBAND_6, SUBBAND_7_L),
|
||||
+ RTW89_DECL_SAR_6GHZ_SPAN(6665, SUBBAND_7_L, SUBBAND_7_H),
|
||||
+ RTW89_DECL_SAR_6GHZ_SPAN(6705, SUBBAND_7_L, SUBBAND_7_H),
|
||||
+ RTW89_DECL_SAR_6GHZ_SPAN(6825, SUBBAND_7_H, SUBBAND_8),
|
||||
+ RTW89_DECL_SAR_6GHZ_SPAN(6865, SUBBAND_7_H, SUBBAND_8),
|
||||
+ RTW89_DECL_SAR_6GHZ_SPAN(6875, SUBBAND_7_H, SUBBAND_8),
|
||||
+ RTW89_DECL_SAR_6GHZ_SPAN(6885, SUBBAND_7_H, SUBBAND_8),
|
||||
+};
|
||||
+
|
||||
static int rtw89_query_sar_config_common(struct rtw89_dev *rtwdev, s32 *cfg)
|
||||
{
|
||||
struct rtw89_sar_cfg_common *rtwsar = &rtwdev->sar.cfg_common;
|
||||
- enum rtw89_subband subband = rtwdev->hal.current_subband;
|
||||
+ struct rtw89_hal *hal = &rtwdev->hal;
|
||||
+ enum rtw89_band band = hal->current_band_type;
|
||||
+ u32 center_freq = hal->current_freq;
|
||||
+ const struct rtw89_sar_span *span = NULL;
|
||||
+ enum rtw89_sar_subband subband_l, subband_h;
|
||||
+ int idx;
|
||||
+
|
||||
+ if (band == RTW89_BAND_6G) {
|
||||
+ idx = RTW89_SAR_6GHZ_SPAN_IDX(center_freq);
|
||||
+ /* To decrease size of rtw89_sar_overlapping_6ghz[],
|
||||
+ * RTW89_SAR_6GHZ_SPAN_IDX() truncates the leading NULLs
|
||||
+ * to make first span as index 0 of the table. So, if center
|
||||
+ * frequency is less than the first one, it will get netative.
|
||||
+ */
|
||||
+ if (idx >= 0 && idx < ARRAY_SIZE(rtw89_sar_overlapping_6ghz))
|
||||
+ span = &rtw89_sar_overlapping_6ghz[idx];
|
||||
+ }
|
||||
+
|
||||
+ if (span && RTW89_SAR_SPAN_VALID(span)) {
|
||||
+ subband_l = span->subband_low;
|
||||
+ subband_h = span->subband_high;
|
||||
+ } else {
|
||||
+ subband_l = rtw89_sar_get_subband(rtwdev, center_freq);
|
||||
+ subband_h = subband_l;
|
||||
+ }
|
||||
+
|
||||
+ rtw89_debug(rtwdev, RTW89_DBG_SAR,
|
||||
+ "for {band %u, center_freq %u}, SAR subband: {%u, %u}\n",
|
||||
+ band, center_freq, subband_l, subband_h);
|
||||
|
||||
- if (!rtwsar->set[subband])
|
||||
+ if (!rtwsar->set[subband_l] && !rtwsar->set[subband_h])
|
||||
return -ENODATA;
|
||||
|
||||
- *cfg = rtwsar->cfg[subband];
|
||||
+ if (!rtwsar->set[subband_l])
|
||||
+ *cfg = rtwsar->cfg[subband_h];
|
||||
+ else if (!rtwsar->set[subband_h])
|
||||
+ *cfg = rtwsar->cfg[subband_l];
|
||||
+ else
|
||||
+ *cfg = min(rtwsar->cfg[subband_l], rtwsar->cfg[subband_h]);
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -128,21 +235,20 @@ static int rtw89_apply_sar_common(struct rtw89_dev *rtwdev,
|
||||
return ret;
|
||||
}
|
||||
|
||||
-static const u8 rtw89_common_sar_subband_map[] = {
|
||||
- RTW89_CH_2G,
|
||||
- RTW89_CH_5G_BAND_1,
|
||||
- RTW89_CH_5G_BAND_3,
|
||||
- RTW89_CH_5G_BAND_4,
|
||||
-};
|
||||
-
|
||||
static const struct cfg80211_sar_freq_ranges rtw89_common_sar_freq_ranges[] = {
|
||||
{ .start_freq = 2412, .end_freq = 2484, },
|
||||
{ .start_freq = 5180, .end_freq = 5320, },
|
||||
{ .start_freq = 5500, .end_freq = 5720, },
|
||||
{ .start_freq = 5745, .end_freq = 5825, },
|
||||
+ { .start_freq = 5955, .end_freq = 6155, },
|
||||
+ { .start_freq = 6175, .end_freq = 6415, },
|
||||
+ { .start_freq = 6435, .end_freq = 6515, },
|
||||
+ { .start_freq = 6535, .end_freq = 6695, },
|
||||
+ { .start_freq = 6715, .end_freq = 6875, },
|
||||
+ { .start_freq = 6875, .end_freq = 7115, },
|
||||
};
|
||||
|
||||
-static_assert(ARRAY_SIZE(rtw89_common_sar_subband_map) ==
|
||||
+static_assert(RTW89_SAR_SUBBAND_NR ==
|
||||
ARRAY_SIZE(rtw89_common_sar_freq_ranges));
|
||||
|
||||
const struct cfg80211_sar_capa rtw89_sar_capa = {
|
||||
@@ -159,7 +265,6 @@ int rtw89_ops_set_sar_specs(struct ieee80211_hw *hw,
|
||||
u8 fct;
|
||||
u32 freq_start;
|
||||
u32 freq_end;
|
||||
- u32 band;
|
||||
s32 power;
|
||||
u32 i, idx;
|
||||
|
||||
@@ -175,15 +280,14 @@ int rtw89_ops_set_sar_specs(struct ieee80211_hw *hw,
|
||||
|
||||
freq_start = rtw89_common_sar_freq_ranges[idx].start_freq;
|
||||
freq_end = rtw89_common_sar_freq_ranges[idx].end_freq;
|
||||
- band = rtw89_common_sar_subband_map[idx];
|
||||
power = sar->sub_specs[i].power;
|
||||
|
||||
- rtw89_info(rtwdev, "On freq %u to %u, ", freq_start, freq_end);
|
||||
- rtw89_info(rtwdev, "set SAR power limit %d (unit: 1/%lu dBm)\n",
|
||||
- power, BIT(fct));
|
||||
+ rtw89_debug(rtwdev, RTW89_DBG_SAR,
|
||||
+ "On freq %u to %u, set SAR limit %d (unit: 1/%lu dBm)\n",
|
||||
+ freq_start, freq_end, power, BIT(fct));
|
||||
|
||||
- sar_common.set[band] = true;
|
||||
- sar_common.cfg[band] = power;
|
||||
+ sar_common.set[idx] = true;
|
||||
+ sar_common.cfg[idx] = power;
|
||||
}
|
||||
|
||||
return rtw89_apply_sar_common(rtwdev, &sar_common);
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
From e219f56c5c82560ec99889d8b8b6f544c70fbfc7 Mon Sep 17 00:00:00 2001
|
||||
From: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Date: Tue, 24 May 2022 10:36:20 -0500
|
||||
Subject: [PATCH 530/533] wifi: rtw88: Fix Sparse warning for rtw8723d_hw_spec
|
||||
|
||||
Sparse lists the following:
|
||||
|
||||
CHECK drivers/net/wireless/realtek/rtw88/rtw8723d.c
|
||||
drivers/net/wireless/realtek/rtw88/rtw8723d.c:2704:22: warning: symbol 'rtw8723d_hw_spec' was not declared. Should it be static?
|
||||
|
||||
The warning arises because the external declaration for rtw8723d_hw_spec
|
||||
occurs in rtw8723de.h, which is not included in rtw8723d.h. That line is
|
||||
moved, and the now empty file rtw8723de.h is deleted.
|
||||
|
||||
Symbol 'rtw8723d_hw_spec' can be made constant.
|
||||
|
||||
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://lore.kernel.org/r/20220524153621.19027-4-Larry.Finger@lwfinger.net
|
||||
---
|
||||
drivers/net/wireless/realtek/rtw88/rtw8723d.c | 2 +-
|
||||
drivers/net/wireless/realtek/rtw88/rtw8723d.h | 2 ++
|
||||
drivers/net/wireless/realtek/rtw88/rtw8723de.c | 2 +-
|
||||
drivers/net/wireless/realtek/rtw88/rtw8723de.h | 10 ----------
|
||||
4 files changed, 4 insertions(+), 12 deletions(-)
|
||||
delete mode 100644 drivers/net/wireless/realtek/rtw88/rtw8723de.h
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723d.c b/drivers/net/wireless/realtek/rtw88/rtw8723d.c
|
||||
index 93cce44df531..993bd6b1d723 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8723d.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.c
|
||||
@@ -2701,7 +2701,7 @@ static const struct rtw_reg_domain coex_info_hw_regs_8723d[] = {
|
||||
{0x953, BIT(1), RTW_REG_DOMAIN_MAC8},
|
||||
};
|
||||
|
||||
-struct rtw_chip_info rtw8723d_hw_spec = {
|
||||
+const struct rtw_chip_info rtw8723d_hw_spec = {
|
||||
.ops = &rtw8723d_ops,
|
||||
.id = RTW_CHIP_TYPE_8723D,
|
||||
.fw_name = "rtw88/rtw8723d_fw.bin",
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723d.h b/drivers/net/wireless/realtek/rtw88/rtw8723d.h
|
||||
index 41d35174a542..4641f6e047b4 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8723d.h
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.h
|
||||
@@ -72,6 +72,8 @@ struct rtw8723d_efuse {
|
||||
struct rtw8723de_efuse e;
|
||||
};
|
||||
|
||||
+extern const struct rtw_chip_info rtw8723d_hw_spec;
|
||||
+
|
||||
/* phy status page0 */
|
||||
#define GET_PHY_STAT_P0_PWDB(phy_stat) \
|
||||
le32_get_bits(*((__le32 *)(phy_stat) + 0x00), GENMASK(15, 8))
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723de.c b/drivers/net/wireless/realtek/rtw88/rtw8723de.c
|
||||
index 2dd689441e8d..abbaafa32851 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8723de.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723de.c
|
||||
@@ -5,7 +5,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/pci.h>
|
||||
#include "pci.h"
|
||||
-#include "rtw8723de.h"
|
||||
+#include "rtw8723d.h"
|
||||
|
||||
static const struct pci_device_id rtw_8723de_id_table[] = {
|
||||
{
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723de.h b/drivers/net/wireless/realtek/rtw88/rtw8723de.h
|
||||
deleted file mode 100644
|
||||
index 2b4894846a07..000000000000
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8723de.h
|
||||
+++ /dev/null
|
||||
@@ -1,10 +0,0 @@
|
||||
-/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
|
||||
-/* Copyright(c) 2018-2019 Realtek Corporation
|
||||
- */
|
||||
-
|
||||
-#ifndef __RTW_8723DE_H_
|
||||
-#define __RTW_8723DE_H_
|
||||
-
|
||||
-extern struct rtw_chip_info rtw8723d_hw_spec;
|
||||
-
|
||||
-#endif
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
From 4b0b473a2d36d607e447dde90107a4e23b577958 Mon Sep 17 00:00:00 2001
|
||||
From: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Date: Tue, 24 May 2022 10:37:16 -0500
|
||||
Subject: [PATCH 531/533] wifi: rtw88: Fix Sparse warning for rtw8821c_hw_spec
|
||||
|
||||
Sparse lists the following:
|
||||
|
||||
CHECK drivers/net/wireless/realtek/rtw88/rtw8821c.c
|
||||
drivers/net/wireless/realtek/rtw88/rtw8821c.c:1880:22: warning: symbol 'rtw8821c_hw_spec' was not declared. Should it be static?
|
||||
|
||||
The warning arises because the external declaration for rtw8821c_hw_spec
|
||||
occurs in rtw8821ce.h, which is not included in rtw8821c.h. That line is
|
||||
moved, and the now empty file rtw8821ce.h is deleted.
|
||||
|
||||
Symbol 'rtw8821c_hw_spec' can be made constant.
|
||||
|
||||
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://lore.kernel.org/r/20220524153716.20450-1-Larry.Finger@lwfinger.net
|
||||
---
|
||||
drivers/net/wireless/realtek/rtw88/rtw8821c.c | 2 +-
|
||||
drivers/net/wireless/realtek/rtw88/rtw8821c.h | 2 ++
|
||||
drivers/net/wireless/realtek/rtw88/rtw8821ce.c | 2 +-
|
||||
drivers/net/wireless/realtek/rtw88/rtw8821ce.h | 10 ----------
|
||||
4 files changed, 4 insertions(+), 12 deletions(-)
|
||||
delete mode 100644 drivers/net/wireless/realtek/rtw88/rtw8821ce.h
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821c.c b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
|
||||
index ffee39ea5df6..42841f5d502c 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
|
||||
@@ -1877,7 +1877,7 @@ static const struct rtw_reg_domain coex_info_hw_regs_8821c[] = {
|
||||
{0x60A, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
|
||||
};
|
||||
|
||||
-struct rtw_chip_info rtw8821c_hw_spec = {
|
||||
+const struct rtw_chip_info rtw8821c_hw_spec = {
|
||||
.ops = &rtw8821c_ops,
|
||||
.id = RTW_CHIP_TYPE_8821C,
|
||||
.fw_name = "rtw88/rtw8821c_fw.bin",
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821c.h b/drivers/net/wireless/realtek/rtw88/rtw8821c.h
|
||||
index d9fbddd7b0f3..2698801fc35d 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.h
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.h
|
||||
@@ -84,6 +84,8 @@ _rtw_write32s_mask(struct rtw_dev *rtwdev, u32 addr, u32 mask, u32 data)
|
||||
rtw_write32_mask(rtwdev, addr + 0x200, mask, data);
|
||||
}
|
||||
|
||||
+extern const struct rtw_chip_info rtw8821c_hw_spec;
|
||||
+
|
||||
#define rtw_write32s_mask(rtwdev, addr, mask, data) \
|
||||
do { \
|
||||
BUILD_BUG_ON((addr) < 0xC00 || (addr) >= 0xD00); \
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821ce.c b/drivers/net/wireless/realtek/rtw88/rtw8821ce.c
|
||||
index 56d22f9de904..f3d971feda04 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8821ce.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821ce.c
|
||||
@@ -5,7 +5,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/pci.h>
|
||||
#include "pci.h"
|
||||
-#include "rtw8821ce.h"
|
||||
+#include "rtw8821c.h"
|
||||
|
||||
static const struct pci_device_id rtw_8821ce_id_table[] = {
|
||||
{
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821ce.h b/drivers/net/wireless/realtek/rtw88/rtw8821ce.h
|
||||
deleted file mode 100644
|
||||
index 54142acca534..000000000000
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8821ce.h
|
||||
+++ /dev/null
|
||||
@@ -1,10 +0,0 @@
|
||||
-/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
|
||||
-/* Copyright(c) 2018-2019 Realtek Corporation
|
||||
- */
|
||||
-
|
||||
-#ifndef __RTW_8821CE_H_
|
||||
-#define __RTW_8821CE_H_
|
||||
-
|
||||
-extern struct rtw_chip_info rtw8821c_hw_spec;
|
||||
-
|
||||
-#endif
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
From fb978627fc0416048179dea30c98a40bd791f4dc Mon Sep 17 00:00:00 2001
|
||||
From: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Date: Tue, 24 May 2022 10:36:19 -0500
|
||||
Subject: [PATCH 529/533] wifi: rtw88: Fix Sparse warning for rtw8822c_hw_spec
|
||||
|
||||
Sparse reports the following:
|
||||
|
||||
CHECK drivers/net/wireless/realtek/rtw88/rtw8822c.c
|
||||
drivers/net/wireless/realtek/rtw88/rtw8822c.c:5313:22: warning: symbol 'rtw8822c_hw_spec' was not declared. Should it be static?
|
||||
|
||||
The warning arises because the external declaration for rtw8822c_hw_spec
|
||||
occurs in rtw8822ce.h, which is not included in rtw8822c.h. That line is
|
||||
moved, and the now empty file rtw8822ce.h is deleted.
|
||||
|
||||
Symbol 'rtw8822c_hw_spec' can be made constant.
|
||||
|
||||
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://lore.kernel.org/r/20220524153621.19027-3-Larry.Finger@lwfinger.net
|
||||
---
|
||||
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2 +-
|
||||
drivers/net/wireless/realtek/rtw88/rtw8822c.h | 2 ++
|
||||
drivers/net/wireless/realtek/rtw88/rtw8822ce.c | 2 +-
|
||||
drivers/net/wireless/realtek/rtw88/rtw8822ce.h | 10 ----------
|
||||
4 files changed, 4 insertions(+), 12 deletions(-)
|
||||
delete mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822ce.h
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.c b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
|
||||
index c043b5c520b9..09f9e4adcf34 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
|
||||
@@ -5310,7 +5310,7 @@ static const struct rtw_reg_domain coex_info_hw_regs_8822c[] = {
|
||||
{0xc50, MASKBYTE0, RTW_REG_DOMAIN_MAC8},
|
||||
};
|
||||
|
||||
-struct rtw_chip_info rtw8822c_hw_spec = {
|
||||
+const struct rtw_chip_info rtw8822c_hw_spec = {
|
||||
.ops = &rtw8822c_ops,
|
||||
.id = RTW_CHIP_TYPE_8822C,
|
||||
.fw_name = "rtw88/rtw8822c_fw.bin",
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.h b/drivers/net/wireless/realtek/rtw88/rtw8822c.h
|
||||
index 8201955e1f21..479d5d769c52 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.h
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.h
|
||||
@@ -118,6 +118,8 @@ enum rtw8822c_dpk_one_shot_action {
|
||||
void rtw8822c_parse_tbl_dpk(struct rtw_dev *rtwdev,
|
||||
const struct rtw_table *tbl);
|
||||
|
||||
+extern const struct rtw_chip_info rtw8822c_hw_spec;
|
||||
+
|
||||
#define RTW_DECL_TABLE_DPK(name) \
|
||||
const struct rtw_table name ## _tbl = { \
|
||||
.data = name, \
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822ce.c b/drivers/net/wireless/realtek/rtw88/rtw8822ce.c
|
||||
index 3845b1333dc3..e26c6bc82936 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8822ce.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822ce.c
|
||||
@@ -5,7 +5,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/pci.h>
|
||||
#include "pci.h"
|
||||
-#include "rtw8822ce.h"
|
||||
+#include "rtw8822c.h"
|
||||
|
||||
static const struct pci_device_id rtw_8822ce_id_table[] = {
|
||||
{
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822ce.h b/drivers/net/wireless/realtek/rtw88/rtw8822ce.h
|
||||
deleted file mode 100644
|
||||
index fee32d7a4504..000000000000
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8822ce.h
|
||||
+++ /dev/null
|
||||
@@ -1,10 +0,0 @@
|
||||
-/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
|
||||
-/* Copyright(c) 2018-2019 Realtek Corporation
|
||||
- */
|
||||
-
|
||||
-#ifndef __RTW_8822CE_H_
|
||||
-#define __RTW_8822CE_H_
|
||||
-
|
||||
-extern struct rtw_chip_info rtw8822c_hw_spec;
|
||||
-
|
||||
-#endif
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
From cbafda0636916a0ee8b4b2180c883f1df3a7014c Mon Sep 17 00:00:00 2001
|
||||
From: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Date: Tue, 24 May 2022 10:36:18 -0500
|
||||
Subject: [PATCH 528/533] wifi: rtw88: Fix sparse warning for rtw8822b_hw_spec
|
||||
|
||||
Sparse lists the following for rtw88:
|
||||
|
||||
CHECK drivers/net/wireless/realtek/rtw88/rtw8822b.c
|
||||
drivers/net/wireless/realtek/rtw88/rtw8822b.c:2500:22: warning: symbol 'rtw8822b_hw_spec' was not declared. Should it be static?
|
||||
|
||||
The warning arises because the external declaration for rtw8822b_hw_spec
|
||||
occurs in rtw8822be.h, which is not included in rtw8822b.h. That line is
|
||||
moved, and the now empty file rtw8822be.h is deleted.
|
||||
|
||||
Symbol 'rtw8822b_hw_spec' can be made constant.
|
||||
|
||||
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Cc: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://lore.kernel.org/r/20220524153621.19027-2-Larry.Finger@lwfinger.net
|
||||
---
|
||||
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 2 +-
|
||||
drivers/net/wireless/realtek/rtw88/rtw8822b.h | 2 ++
|
||||
drivers/net/wireless/realtek/rtw88/rtw8822be.c | 2 +-
|
||||
drivers/net/wireless/realtek/rtw88/rtw8822be.h | 10 ----------
|
||||
4 files changed, 4 insertions(+), 12 deletions(-)
|
||||
delete mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822be.h
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822b.c b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
|
||||
index dccd722b8e62..321848870561 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
|
||||
@@ -2497,7 +2497,7 @@ static struct rtw_hw_reg_offset rtw8822b_edcca_th[] = {
|
||||
[EDCCA_TH_H2L_IDX] = {{.addr = 0x8a4, .mask = MASKBYTE1}, .offset = 0},
|
||||
};
|
||||
|
||||
-struct rtw_chip_info rtw8822b_hw_spec = {
|
||||
+const struct rtw_chip_info rtw8822b_hw_spec = {
|
||||
.ops = &rtw8822b_ops,
|
||||
.id = RTW_CHIP_TYPE_8822B,
|
||||
.fw_name = "rtw88/rtw8822b_fw.bin",
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822b.h b/drivers/net/wireless/realtek/rtw88/rtw8822b.h
|
||||
index 3fff8b881854..01d3644e0c94 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.h
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.h
|
||||
@@ -187,4 +187,6 @@ _rtw_write32s_mask(struct rtw_dev *rtwdev, u32 addr, u32 mask, u32 data)
|
||||
#define REG_ANTWT 0x1904
|
||||
#define REG_IQKFAILMSK 0x1bf0
|
||||
|
||||
+extern const struct rtw_chip_info rtw8822b_hw_spec;
|
||||
+
|
||||
#endif
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822be.c b/drivers/net/wireless/realtek/rtw88/rtw8822be.c
|
||||
index 62ee7e62cac0..4994950776cd 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8822be.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822be.c
|
||||
@@ -5,7 +5,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/pci.h>
|
||||
#include "pci.h"
|
||||
-#include "rtw8822be.h"
|
||||
+#include "rtw8822b.h"
|
||||
|
||||
static const struct pci_device_id rtw_8822be_id_table[] = {
|
||||
{
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822be.h b/drivers/net/wireless/realtek/rtw88/rtw8822be.h
|
||||
deleted file mode 100644
|
||||
index 6668460d664d..000000000000
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8822be.h
|
||||
+++ /dev/null
|
||||
@@ -1,10 +0,0 @@
|
||||
-/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
|
||||
-/* Copyright(c) 2018-2019 Realtek Corporation
|
||||
- */
|
||||
-
|
||||
-#ifndef __RTW_8822BE_H_
|
||||
-#define __RTW_8822BE_H_
|
||||
-
|
||||
-extern struct rtw_chip_info rtw8822b_hw_spec;
|
||||
-
|
||||
-#endif
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@@ -390,11 +390,11 @@
|
||||
patches.megous/input-pinephone-keyboard-Allow-disabling-the-keyboard-input.patch
|
||||
patches.megous/rtw88-change-idle-mode-condition-during-hw_scan.patch
|
||||
patches.megous/rtw88-add-ieee80211-sta_rc_update-ops.patch
|
||||
patches.megous/rtw88-fix-incorrect-frequency-reported.patch
|
||||
- patches.megous/rtw88-fix-incorrect-frequency-reported.patch
|
||||
patches.megous/rtw88-Add-update-beacon-flow-for-AP-mode.patch
|
||||
patches.megous/rtw88-8821c-Enable-TX-report-for-management-frames.patch
|
||||
patches.megous/rtw88-do-PHY-calibration-while-starting-AP.patch
|
||||
patches.megous/rtw88-8821c-fix-debugfs-rssi-value.patch
|
||||
- patches.megous/rtw88-8821c-fix-debugfs-rssi-value.patch
|
||||
patches.megous/rtw88-8821ce-add-support-for-device-ID-0xb821.patch
|
||||
patches.megous/rtw88-8821ce-Disable-PCIe-ASPM-L1-for-8821CE-using-chip-ID.patch
|
||||
patches.megous/rtw88-fix-uninitialized-tim_offset-warning.patch
|
||||
@@ -405,7 +405,7 @@
|
||||
patches.megous/rtw88-fix-hw-scan-may-cause-disconnect-issue.patch
|
||||
patches.megous/rtw88-remove-a-copy-of-the-NAPI_POLL_WEIGHT-define.patch
|
||||
patches.megous/rtw88-adjust-adaptivity-option-to-1.patch
|
||||
patches.megous/rtw89-ser-fix-CAM-leaks-occurring-in-L2-reset.patch
|
||||
- patches.megous/rtw89-ser-fix-CAM-leaks-occurring-in-L2-reset.patch
|
||||
patches.megous/rtw89-mac-move-table-of-mem-base-addr-to-common.patch
|
||||
patches.megous/rtw89-mac-correct-decision-on-error-status-by-scenario.patch
|
||||
patches.megous/rtw89-ser-control-hci-interrupts-on-off-by-state.patch
|
||||
@@ -445,7 +445,7 @@
|
||||
patches.megous/rtw89-change-idle-mode-condition-during-hw_scan.patch
|
||||
patches.megous/rtw89-packet-offload-handler-to-avoid-warning.patch
|
||||
patches.megous/rtw89-coex-Add-case-for-scan-offload.patch
|
||||
patches.megous/rtw89-fix-misconfiguration-on-hw_scan-channel-time.patch
|
||||
- patches.megous/rtw89-fix-misconfiguration-on-hw_scan-channel-time.patch
|
||||
patches.megous/rtw89-ser-fix-unannotated-fall-through.patch
|
||||
patches.megous/rtw89-ser-configure-D-MAC-interrupt-mask.patch
|
||||
patches.megous/rtw89-ser-configure-C-MAC-interrupt-mask.patch
|
||||
@@ -510,7 +510,7 @@
|
||||
patches.megous/rtw89-add-debug-entry-to-dump-BSSID-CAM.patch
|
||||
patches.megous/rtw89-add-ieee80211-sta_rc_update-ops.patch
|
||||
patches.megous/rtw89-8852c-set-TX-antenna-path.patch
|
||||
patches.megous/rtw89-cfo-check-mac_id-to-avoid-out-of-bounds.patch
|
||||
- patches.megous/rtw89-cfo-check-mac_id-to-avoid-out-of-bounds.patch
|
||||
patches.megous/rtw89-8852c-update-txpwr-tables-to-HALRF_027_00_052.patch
|
||||
patches.megous/rtw89-convert-rtw89_band-to-nl80211_band-precisely.patch
|
||||
patches.megous/rtw89-pci-only-mask-out-INT-indicator-register-for-disable-inte.patch
|
||||
@@ -522,6 +522,24 @@
|
||||
patches.megous/iio-af8133j-Add-runtime-power-management.patch
|
||||
patches.megous/rtw88-add-a-work-to-correct-atomic-scheduling-warning-of-set_ti.patch
|
||||
# tag: orange-pi-5.18-20220526-2012
|
||||
patches.megous/power-supply-rk818-battery-Speed-up-battery-current-readout.patch
|
||||
patches.megous/leds-sgm3140-Add-missing-timer-cleanup-and-flash-gpio-control.patch
|
||||
patches.megous/arm64-dts-rk3399-pinephone-pro-Use-4-lane-mode-for-selfie-camer.patch
|
||||
patches.megous/media-ov8858-Increase-analog-gain-range.patch
|
||||
patches.megous/media-ov8858-Add-support-for-digital-gain-control.patch
|
||||
patches.megous/rtw89-fix-channel-inconsistency-during-hw_scan.patch
|
||||
patches.megous/rtw89-fix-null-vif-pointer-when-hw_scan-fails.patch
|
||||
patches.megous/rtw89-pci-handle-hardware-watchdog-timeout-interrupt-status.patch
|
||||
patches.megous/rtw89-8852c-rfk-re-calibrate-RX-DCK-once-thermal-changes-a-lot.patch
|
||||
patches.megous/rtw89-sar-adjust-and-support-SAR-on-6GHz-band.patch
|
||||
patches.megous/rtw88-fix-null-vif-pointer-when-hw_scan-fails.patch
|
||||
patches.megous/wifi-rtw88-Fix-sparse-warning-for-rtw8822b_hw_spec.patch
|
||||
patches.megous/wifi-rtw88-Fix-Sparse-warning-for-rtw8822c_hw_spec.patch
|
||||
patches.megous/wifi-rtw88-Fix-Sparse-warning-for-rtw8723d_hw_spec.patch
|
||||
patches.megous/wifi-rtw88-Fix-Sparse-warning-for-rtw8821c_hw_spec.patch
|
||||
patches.megous/media-imx258-Add-debug-register-access.patch
|
||||
patches.megous/Import-pgwipeout-s-pcie-regs-ranges.patch
|
||||
# tag: orange-pi-5.18-20220609-1318
|
||||
|
||||
############################################################################
|
||||
#
|
||||
|
||||
@@ -390,11 +390,11 @@
|
||||
patches.megous/input-pinephone-keyboard-Allow-disabling-the-keyboard-input.patch
|
||||
patches.megous/rtw88-change-idle-mode-condition-during-hw_scan.patch
|
||||
patches.megous/rtw88-add-ieee80211-sta_rc_update-ops.patch
|
||||
patches.megous/rtw88-fix-incorrect-frequency-reported.patch
|
||||
- patches.megous/rtw88-fix-incorrect-frequency-reported.patch
|
||||
patches.megous/rtw88-Add-update-beacon-flow-for-AP-mode.patch
|
||||
patches.megous/rtw88-8821c-Enable-TX-report-for-management-frames.patch
|
||||
patches.megous/rtw88-do-PHY-calibration-while-starting-AP.patch
|
||||
patches.megous/rtw88-8821c-fix-debugfs-rssi-value.patch
|
||||
- patches.megous/rtw88-8821c-fix-debugfs-rssi-value.patch
|
||||
patches.megous/rtw88-8821ce-add-support-for-device-ID-0xb821.patch
|
||||
patches.megous/rtw88-8821ce-Disable-PCIe-ASPM-L1-for-8821CE-using-chip-ID.patch
|
||||
patches.megous/rtw88-fix-uninitialized-tim_offset-warning.patch
|
||||
@@ -405,7 +405,7 @@
|
||||
patches.megous/rtw88-fix-hw-scan-may-cause-disconnect-issue.patch
|
||||
patches.megous/rtw88-remove-a-copy-of-the-NAPI_POLL_WEIGHT-define.patch
|
||||
patches.megous/rtw88-adjust-adaptivity-option-to-1.patch
|
||||
patches.megous/rtw89-ser-fix-CAM-leaks-occurring-in-L2-reset.patch
|
||||
- patches.megous/rtw89-ser-fix-CAM-leaks-occurring-in-L2-reset.patch
|
||||
patches.megous/rtw89-mac-move-table-of-mem-base-addr-to-common.patch
|
||||
patches.megous/rtw89-mac-correct-decision-on-error-status-by-scenario.patch
|
||||
patches.megous/rtw89-ser-control-hci-interrupts-on-off-by-state.patch
|
||||
@@ -445,7 +445,7 @@
|
||||
patches.megous/rtw89-change-idle-mode-condition-during-hw_scan.patch
|
||||
patches.megous/rtw89-packet-offload-handler-to-avoid-warning.patch
|
||||
patches.megous/rtw89-coex-Add-case-for-scan-offload.patch
|
||||
patches.megous/rtw89-fix-misconfiguration-on-hw_scan-channel-time.patch
|
||||
- patches.megous/rtw89-fix-misconfiguration-on-hw_scan-channel-time.patch
|
||||
patches.megous/rtw89-ser-fix-unannotated-fall-through.patch
|
||||
patches.megous/rtw89-ser-configure-D-MAC-interrupt-mask.patch
|
||||
patches.megous/rtw89-ser-configure-C-MAC-interrupt-mask.patch
|
||||
@@ -510,7 +510,7 @@
|
||||
patches.megous/rtw89-add-debug-entry-to-dump-BSSID-CAM.patch
|
||||
patches.megous/rtw89-add-ieee80211-sta_rc_update-ops.patch
|
||||
patches.megous/rtw89-8852c-set-TX-antenna-path.patch
|
||||
patches.megous/rtw89-cfo-check-mac_id-to-avoid-out-of-bounds.patch
|
||||
- patches.megous/rtw89-cfo-check-mac_id-to-avoid-out-of-bounds.patch
|
||||
patches.megous/rtw89-8852c-update-txpwr-tables-to-HALRF_027_00_052.patch
|
||||
patches.megous/rtw89-convert-rtw89_band-to-nl80211_band-precisely.patch
|
||||
patches.megous/rtw89-pci-only-mask-out-INT-indicator-register-for-disable-inte.patch
|
||||
@@ -522,3 +522,21 @@
|
||||
patches.megous/iio-af8133j-Add-runtime-power-management.patch
|
||||
patches.megous/rtw88-add-a-work-to-correct-atomic-scheduling-warning-of-set_ti.patch
|
||||
# tag: orange-pi-5.18-20220526-2012
|
||||
patches.megous/power-supply-rk818-battery-Speed-up-battery-current-readout.patch
|
||||
patches.megous/leds-sgm3140-Add-missing-timer-cleanup-and-flash-gpio-control.patch
|
||||
patches.megous/arm64-dts-rk3399-pinephone-pro-Use-4-lane-mode-for-selfie-camer.patch
|
||||
patches.megous/media-ov8858-Increase-analog-gain-range.patch
|
||||
patches.megous/media-ov8858-Add-support-for-digital-gain-control.patch
|
||||
patches.megous/rtw89-fix-channel-inconsistency-during-hw_scan.patch
|
||||
patches.megous/rtw89-fix-null-vif-pointer-when-hw_scan-fails.patch
|
||||
patches.megous/rtw89-pci-handle-hardware-watchdog-timeout-interrupt-status.patch
|
||||
patches.megous/rtw89-8852c-rfk-re-calibrate-RX-DCK-once-thermal-changes-a-lot.patch
|
||||
patches.megous/rtw89-sar-adjust-and-support-SAR-on-6GHz-band.patch
|
||||
patches.megous/rtw88-fix-null-vif-pointer-when-hw_scan-fails.patch
|
||||
patches.megous/wifi-rtw88-Fix-sparse-warning-for-rtw8822b_hw_spec.patch
|
||||
patches.megous/wifi-rtw88-Fix-Sparse-warning-for-rtw8822c_hw_spec.patch
|
||||
patches.megous/wifi-rtw88-Fix-Sparse-warning-for-rtw8723d_hw_spec.patch
|
||||
patches.megous/wifi-rtw88-Fix-Sparse-warning-for-rtw8821c_hw_spec.patch
|
||||
patches.megous/media-imx258-Add-debug-register-access.patch
|
||||
patches.megous/Import-pgwipeout-s-pcie-regs-ranges.patch
|
||||
# tag: orange-pi-5.18-20220609-1318
|
||||
|
||||
Reference in New Issue
Block a user