mirror of
https://git.openwrt.org/openwrt/openwrt.git/
synced 2025-10-06 03:02:55 +02:00
kernel: bump 6.12 to 6.12.45
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.45 Removed upstreamed: generic/backport-6.12/626-v6.17-net-ipv4-fix-regression-in-local-broadcast-routes.patch[1] mediatek/patches-6.12/051-v6.17-thermal-drivers-mediatek-lvts_thermal-Change-lvts-co.patch[2] mediatek/patches-6.12/052-v6.17-thermal-drivers-mediatek-lvts_thermal-Add-lvts-comma.patch[3] mediatek/patches-6.12/053-v6.17-thermal-drivers-mediatek-lvts_thermal-Add-mt7988-lvt.patch[4] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.45&id=81ff76c1b08827bc81779400a3640f102a9a9ade 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.45&id=d1f4b09d9bb991c0fe039511520c6e59f1b42ec1 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.45&id=739229eb4d5cd009d81ad8946fdd4bb5ec790c2e 4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.45&id=9a7141d4808dcb833f87154af88560c785306cd2 Build system: x86/64 Build-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64-glibc Run-tested: flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, x86/64-glibc Signed-off-by: John Audia <therealgraysky@proton.me> Link: https://github.com/openwrt/openwrt/pull/19956 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
committed by
Hauke Mehrtens
parent
c55a411af2
commit
44f70be996
@@ -32,7 +32,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
#define USB_VENDOR_ID_BELKIN 0x050d
|
||||
#define USB_DEVICE_ID_FLIP_KVM 0x3201
|
||||
|
||||
@@ -1463,6 +1466,9 @@
|
||||
@@ -1466,6 +1469,9 @@
|
||||
#define USB_VENDOR_ID_XIAOMI 0x2717
|
||||
#define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014
|
||||
|
||||
@@ -52,7 +52,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
|
||||
@@ -211,6 +212,7 @@ static const struct hid_device_id hid_qu
|
||||
@@ -213,6 +214,7 @@ static const struct hid_device_id hid_qu
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET },
|
||||
|
@@ -389,7 +389,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
/* IP specific init */
|
||||
err = init(pdev);
|
||||
if (err)
|
||||
@@ -5243,6 +5377,19 @@ static void macb_remove(struct platform_
|
||||
@@ -5240,6 +5374,19 @@ static void macb_remove(struct platform_
|
||||
}
|
||||
}
|
||||
|
||||
@@ -409,7 +409,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
||||
static int __maybe_unused macb_suspend(struct device *dev)
|
||||
{
|
||||
struct net_device *netdev = dev_get_drvdata(dev);
|
||||
@@ -5496,6 +5643,7 @@ static const struct dev_pm_ops macb_pm_o
|
||||
@@ -5493,6 +5640,7 @@ static const struct dev_pm_ops macb_pm_o
|
||||
static struct platform_driver macb_driver = {
|
||||
.probe = macb_probe,
|
||||
.remove_new = macb_remove,
|
||||
|
@@ -59,7 +59,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/drivers/pinctrl/Kconfig
|
||||
+++ b/drivers/pinctrl/Kconfig
|
||||
@@ -587,6 +587,13 @@ config PINCTRL_MLXBF3
|
||||
@@ -588,6 +588,13 @@ config PINCTRL_MLXBF3
|
||||
each pin. This driver can also be built as a module called
|
||||
pinctrl-mlxbf3.
|
||||
|
||||
|
@@ -69,7 +69,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
#ifdef __KERNEL__
|
||||
--- a/net/l2tp/l2tp_ppp.c
|
||||
+++ b/net/l2tp/l2tp_ppp.c
|
||||
@@ -806,6 +806,7 @@ static int pppol2tp_connect(struct socke
|
||||
@@ -796,6 +796,7 @@ static int pppol2tp_connect(struct socke
|
||||
po->chan.private = sk;
|
||||
po->chan.ops = &pppol2tp_chan_ops;
|
||||
po->chan.mtu = pppol2tp_tunnel_mtu(tunnel);
|
||||
|
@@ -1,47 +0,0 @@
|
||||
From 5189446ba995556eaa3755a6e875bc06675b88bd Mon Sep 17 00:00:00 2001
|
||||
From: Oscar Maes <oscmaes92@gmail.com>
|
||||
Date: Wed, 27 Aug 2025 08:23:21 +0200
|
||||
Subject: [PATCH] net: ipv4: fix regression in local-broadcast routes
|
||||
|
||||
Commit 9e30ecf23b1b ("net: ipv4: fix incorrect MTU in broadcast routes")
|
||||
introduced a regression where local-broadcast packets would have their
|
||||
gateway set in __mkroute_output, which was caused by fi = NULL being
|
||||
removed.
|
||||
|
||||
Fix this by resetting the fib_info for local-broadcast packets. This
|
||||
preserves the intended changes for directed-broadcast packets.
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Fixes: 9e30ecf23b1b ("net: ipv4: fix incorrect MTU in broadcast routes")
|
||||
Reported-by: Brett A C Sheffield <bacs@librecast.net>
|
||||
Closes: https://lore.kernel.org/regressions/20250822165231.4353-4-bacs@librecast.net
|
||||
Signed-off-by: Oscar Maes <oscmaes92@gmail.com>
|
||||
Reviewed-by: David Ahern <dsahern@kernel.org>
|
||||
Link: https://patch.msgid.link/20250827062322.4807-1-oscmaes92@gmail.com
|
||||
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
---
|
||||
net/ipv4/route.c | 10 +++++++---
|
||||
1 file changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/net/ipv4/route.c
|
||||
+++ b/net/ipv4/route.c
|
||||
@@ -2532,12 +2532,16 @@ static struct rtable *__mkroute_output(c
|
||||
!netif_is_l3_master(dev_out))
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
- if (ipv4_is_lbcast(fl4->daddr))
|
||||
+ if (ipv4_is_lbcast(fl4->daddr)) {
|
||||
type = RTN_BROADCAST;
|
||||
- else if (ipv4_is_multicast(fl4->daddr))
|
||||
+
|
||||
+ /* reset fi to prevent gateway resolution */
|
||||
+ fi = NULL;
|
||||
+ } else if (ipv4_is_multicast(fl4->daddr)) {
|
||||
type = RTN_MULTICAST;
|
||||
- else if (ipv4_is_zeronet(fl4->daddr))
|
||||
+ } else if (ipv4_is_zeronet(fl4->daddr)) {
|
||||
return ERR_PTR(-EINVAL);
|
||||
+ }
|
||||
|
||||
if (dev_out->flags & IFF_LOOPBACK)
|
||||
flags |= RTCF_LOCAL;
|
@@ -502,7 +502,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
{ }
|
||||
--- a/drivers/net/phy/mscc/mscc_main.c
|
||||
+++ b/drivers/net/phy/mscc/mscc_main.c
|
||||
@@ -2712,7 +2712,7 @@ static struct phy_driver vsc85xx_driver[
|
||||
@@ -2710,7 +2710,7 @@ static struct phy_driver vsc85xx_driver[
|
||||
|
||||
module_phy_driver(vsc85xx_driver);
|
||||
|
||||
|
@@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-6.12 = .44
|
||||
LINUX_KERNEL_HASH-6.12.44 = b650210ed3027b224969d148aa377452a9aad3ae7f2851abedd31adfef16bdae
|
||||
LINUX_VERSION-6.12 = .45
|
||||
LINUX_KERNEL_HASH-6.12.45 = 8f95a8549cfbdfb89c1181a1f55a971f04dfcd629508a2ed70b777ab92f9db3e
|
||||
|
@@ -1,77 +0,0 @@
|
||||
From 4bbb3598b81eaa329df9c03d9a0cd4d1c70e73a4 Mon Sep 17 00:00:00 2001
|
||||
From: Mason Chang <mason-cw.chang@mediatek.com>
|
||||
Date: Mon, 26 May 2025 18:26:57 +0800
|
||||
Subject: [PATCH 1/3] thermal/drivers/mediatek/lvts_thermal: Change lvts
|
||||
commands array to static const
|
||||
|
||||
Change the LVTS commands array to static const in preparation for
|
||||
adding different commands.
|
||||
|
||||
Signed-off-by: Mason Chang <mason-cw.chang@mediatek.com>
|
||||
Link: https://lore.kernel.org/r/20250526102659.30225-2-mason-cw.chang@mediatek.com
|
||||
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
|
||||
(cherry picked from commit c5d5a72c01f7faabe7cc0fd63942c18372101daf)
|
||||
---
|
||||
drivers/thermal/mediatek/lvts_thermal.c | 29 +++++++++++++------------
|
||||
1 file changed, 15 insertions(+), 14 deletions(-)
|
||||
|
||||
--- a/drivers/thermal/mediatek/lvts_thermal.c
|
||||
+++ b/drivers/thermal/mediatek/lvts_thermal.c
|
||||
@@ -92,6 +92,17 @@
|
||||
|
||||
#define LVTS_MINIMUM_THRESHOLD 20000
|
||||
|
||||
+static const u32 default_conn_cmds[] = { 0xC103FFFF, 0xC502FF55 };
|
||||
+/*
|
||||
+ * Write device mask: 0xC1030000
|
||||
+ */
|
||||
+static const u32 default_init_cmds[] = {
|
||||
+ 0xC1030E01, 0xC1030CFC, 0xC1030A8C, 0xC103098D, 0xC10308F1,
|
||||
+ 0xC10307A6, 0xC10306B8, 0xC1030500, 0xC1030420, 0xC1030300,
|
||||
+ 0xC1030030, 0xC10300F6, 0xC1030050, 0xC1030060, 0xC10300AC,
|
||||
+ 0xC10300FC, 0xC103009D, 0xC10300F1, 0xC10300E1
|
||||
+};
|
||||
+
|
||||
static int golden_temp = LVTS_GOLDEN_TEMP_DEFAULT;
|
||||
static int golden_temp_offset;
|
||||
|
||||
@@ -880,7 +891,7 @@ static void lvts_ctrl_monitor_enable(str
|
||||
* each write in the configuration register must be separated by a
|
||||
* delay of 2 us.
|
||||
*/
|
||||
-static void lvts_write_config(struct lvts_ctrl *lvts_ctrl, u32 *cmds, int nr_cmds)
|
||||
+static void lvts_write_config(struct lvts_ctrl *lvts_ctrl, const u32 *cmds, int nr_cmds)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -963,9 +974,9 @@ static int lvts_ctrl_set_enable(struct l
|
||||
|
||||
static int lvts_ctrl_connect(struct device *dev, struct lvts_ctrl *lvts_ctrl)
|
||||
{
|
||||
- u32 id, cmds[] = { 0xC103FFFF, 0xC502FF55 };
|
||||
+ u32 id;
|
||||
|
||||
- lvts_write_config(lvts_ctrl, cmds, ARRAY_SIZE(cmds));
|
||||
+ lvts_write_config(lvts_ctrl, default_conn_cmds, ARRAY_SIZE(default_conn_cmds));
|
||||
|
||||
/*
|
||||
* LVTS_ID : Get ID and status of the thermal controller
|
||||
@@ -984,17 +995,7 @@ static int lvts_ctrl_connect(struct devi
|
||||
|
||||
static int lvts_ctrl_initialize(struct device *dev, struct lvts_ctrl *lvts_ctrl)
|
||||
{
|
||||
- /*
|
||||
- * Write device mask: 0xC1030000
|
||||
- */
|
||||
- u32 cmds[] = {
|
||||
- 0xC1030E01, 0xC1030CFC, 0xC1030A8C, 0xC103098D, 0xC10308F1,
|
||||
- 0xC10307A6, 0xC10306B8, 0xC1030500, 0xC1030420, 0xC1030300,
|
||||
- 0xC1030030, 0xC10300F6, 0xC1030050, 0xC1030060, 0xC10300AC,
|
||||
- 0xC10300FC, 0xC103009D, 0xC10300F1, 0xC10300E1
|
||||
- };
|
||||
-
|
||||
- lvts_write_config(lvts_ctrl, cmds, ARRAY_SIZE(cmds));
|
||||
+ lvts_write_config(lvts_ctrl, default_init_cmds, ARRAY_SIZE(default_init_cmds));
|
||||
|
||||
return 0;
|
||||
}
|
@@ -1,186 +0,0 @@
|
||||
From 75d0dd334963fb3e3a85b8ceadd48071daa8165f Mon Sep 17 00:00:00 2001
|
||||
From: Mason Chang <mason-cw.chang@mediatek.com>
|
||||
Date: Mon, 26 May 2025 18:26:58 +0800
|
||||
Subject: [PATCH 2/3] thermal/drivers/mediatek/lvts_thermal: Add lvts commands
|
||||
and their sizes to driver data
|
||||
|
||||
Add LVTS commands and their sizes to driver data in preparation for
|
||||
adding different commands.
|
||||
|
||||
Signed-off-by: Mason Chang <mason-cw.chang@mediatek.com>
|
||||
Link: https://lore.kernel.org/r/20250526102659.30225-3-mason-cw.chang@mediatek.com
|
||||
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
|
||||
(cherry picked from commit 6203a5e6fd090ed05f6d9b92e33bc7e7679a3dd6)
|
||||
---
|
||||
drivers/thermal/mediatek/lvts_thermal.c | 65 ++++++++++++++++++++-----
|
||||
1 file changed, 52 insertions(+), 13 deletions(-)
|
||||
|
||||
--- a/drivers/thermal/mediatek/lvts_thermal.c
|
||||
+++ b/drivers/thermal/mediatek/lvts_thermal.c
|
||||
@@ -92,17 +92,6 @@
|
||||
|
||||
#define LVTS_MINIMUM_THRESHOLD 20000
|
||||
|
||||
-static const u32 default_conn_cmds[] = { 0xC103FFFF, 0xC502FF55 };
|
||||
-/*
|
||||
- * Write device mask: 0xC1030000
|
||||
- */
|
||||
-static const u32 default_init_cmds[] = {
|
||||
- 0xC1030E01, 0xC1030CFC, 0xC1030A8C, 0xC103098D, 0xC10308F1,
|
||||
- 0xC10307A6, 0xC10306B8, 0xC1030500, 0xC1030420, 0xC1030300,
|
||||
- 0xC1030030, 0xC10300F6, 0xC1030050, 0xC1030060, 0xC10300AC,
|
||||
- 0xC10300FC, 0xC103009D, 0xC10300F1, 0xC10300E1
|
||||
-};
|
||||
-
|
||||
static int golden_temp = LVTS_GOLDEN_TEMP_DEFAULT;
|
||||
static int golden_temp_offset;
|
||||
|
||||
@@ -132,7 +121,11 @@ struct lvts_ctrl_data {
|
||||
|
||||
struct lvts_data {
|
||||
const struct lvts_ctrl_data *lvts_ctrl;
|
||||
+ const u32 *conn_cmd;
|
||||
+ const u32 *init_cmd;
|
||||
int num_lvts_ctrl;
|
||||
+ int num_conn_cmd;
|
||||
+ int num_init_cmd;
|
||||
int temp_factor;
|
||||
int temp_offset;
|
||||
int gt_calib_bit_offset;
|
||||
@@ -974,9 +967,10 @@ static int lvts_ctrl_set_enable(struct l
|
||||
|
||||
static int lvts_ctrl_connect(struct device *dev, struct lvts_ctrl *lvts_ctrl)
|
||||
{
|
||||
+ const struct lvts_data *lvts_data = lvts_ctrl->lvts_data;
|
||||
u32 id;
|
||||
|
||||
- lvts_write_config(lvts_ctrl, default_conn_cmds, ARRAY_SIZE(default_conn_cmds));
|
||||
+ lvts_write_config(lvts_ctrl, lvts_data->conn_cmd, lvts_data->num_conn_cmd);
|
||||
|
||||
/*
|
||||
* LVTS_ID : Get ID and status of the thermal controller
|
||||
@@ -995,7 +989,9 @@ static int lvts_ctrl_connect(struct devi
|
||||
|
||||
static int lvts_ctrl_initialize(struct device *dev, struct lvts_ctrl *lvts_ctrl)
|
||||
{
|
||||
- lvts_write_config(lvts_ctrl, default_init_cmds, ARRAY_SIZE(default_init_cmds));
|
||||
+ const struct lvts_data *lvts_data = lvts_ctrl->lvts_data;
|
||||
+
|
||||
+ lvts_write_config(lvts_ctrl, lvts_data->init_cmd, lvts_data->num_init_cmd);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1424,6 +1420,17 @@ static int lvts_resume(struct device *de
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static const u32 default_conn_cmds[] = { 0xC103FFFF, 0xC502FF55 };
|
||||
+/*
|
||||
+ * Write device mask: 0xC1030000
|
||||
+ */
|
||||
+static const u32 default_init_cmds[] = {
|
||||
+ 0xC1030E01, 0xC1030CFC, 0xC1030A8C, 0xC103098D, 0xC10308F1,
|
||||
+ 0xC10307A6, 0xC10306B8, 0xC1030500, 0xC1030420, 0xC1030300,
|
||||
+ 0xC1030030, 0xC10300F6, 0xC1030050, 0xC1030060, 0xC10300AC,
|
||||
+ 0xC10300FC, 0xC103009D, 0xC10300F1, 0xC10300E1
|
||||
+};
|
||||
+
|
||||
/*
|
||||
* The MT8186 calibration data is stored as packed 3-byte little-endian
|
||||
* values using a weird layout that makes sense only when viewed as a 32-bit
|
||||
@@ -1718,7 +1725,11 @@ static const struct lvts_ctrl_data mt819
|
||||
|
||||
static const struct lvts_data mt7988_lvts_ap_data = {
|
||||
.lvts_ctrl = mt7988_lvts_ap_data_ctrl,
|
||||
+ .conn_cmd = default_conn_cmds,
|
||||
+ .init_cmd = default_init_cmds,
|
||||
.num_lvts_ctrl = ARRAY_SIZE(mt7988_lvts_ap_data_ctrl),
|
||||
+ .num_conn_cmd = ARRAY_SIZE(default_conn_cmds),
|
||||
+ .num_init_cmd = ARRAY_SIZE(default_init_cmds),
|
||||
.temp_factor = LVTS_COEFF_A_MT7988,
|
||||
.temp_offset = LVTS_COEFF_B_MT7988,
|
||||
.gt_calib_bit_offset = 24,
|
||||
@@ -1726,7 +1737,11 @@ static const struct lvts_data mt7988_lvt
|
||||
|
||||
static const struct lvts_data mt8186_lvts_data = {
|
||||
.lvts_ctrl = mt8186_lvts_data_ctrl,
|
||||
+ .conn_cmd = default_conn_cmds,
|
||||
+ .init_cmd = default_init_cmds,
|
||||
.num_lvts_ctrl = ARRAY_SIZE(mt8186_lvts_data_ctrl),
|
||||
+ .num_conn_cmd = ARRAY_SIZE(default_conn_cmds),
|
||||
+ .num_init_cmd = ARRAY_SIZE(default_init_cmds),
|
||||
.temp_factor = LVTS_COEFF_A_MT7988,
|
||||
.temp_offset = LVTS_COEFF_B_MT7988,
|
||||
.gt_calib_bit_offset = 24,
|
||||
@@ -1735,7 +1750,11 @@ static const struct lvts_data mt8186_lvt
|
||||
|
||||
static const struct lvts_data mt8188_lvts_mcu_data = {
|
||||
.lvts_ctrl = mt8188_lvts_mcu_data_ctrl,
|
||||
+ .conn_cmd = default_conn_cmds,
|
||||
+ .init_cmd = default_init_cmds,
|
||||
.num_lvts_ctrl = ARRAY_SIZE(mt8188_lvts_mcu_data_ctrl),
|
||||
+ .num_conn_cmd = ARRAY_SIZE(default_conn_cmds),
|
||||
+ .num_init_cmd = ARRAY_SIZE(default_init_cmds),
|
||||
.temp_factor = LVTS_COEFF_A_MT8195,
|
||||
.temp_offset = LVTS_COEFF_B_MT8195,
|
||||
.gt_calib_bit_offset = 20,
|
||||
@@ -1744,7 +1763,11 @@ static const struct lvts_data mt8188_lvt
|
||||
|
||||
static const struct lvts_data mt8188_lvts_ap_data = {
|
||||
.lvts_ctrl = mt8188_lvts_ap_data_ctrl,
|
||||
+ .conn_cmd = default_conn_cmds,
|
||||
+ .init_cmd = default_init_cmds,
|
||||
.num_lvts_ctrl = ARRAY_SIZE(mt8188_lvts_ap_data_ctrl),
|
||||
+ .num_conn_cmd = ARRAY_SIZE(default_conn_cmds),
|
||||
+ .num_init_cmd = ARRAY_SIZE(default_init_cmds),
|
||||
.temp_factor = LVTS_COEFF_A_MT8195,
|
||||
.temp_offset = LVTS_COEFF_B_MT8195,
|
||||
.gt_calib_bit_offset = 20,
|
||||
@@ -1753,7 +1776,11 @@ static const struct lvts_data mt8188_lvt
|
||||
|
||||
static const struct lvts_data mt8192_lvts_mcu_data = {
|
||||
.lvts_ctrl = mt8192_lvts_mcu_data_ctrl,
|
||||
+ .conn_cmd = default_conn_cmds,
|
||||
+ .init_cmd = default_init_cmds,
|
||||
.num_lvts_ctrl = ARRAY_SIZE(mt8192_lvts_mcu_data_ctrl),
|
||||
+ .num_conn_cmd = ARRAY_SIZE(default_conn_cmds),
|
||||
+ .num_init_cmd = ARRAY_SIZE(default_init_cmds),
|
||||
.temp_factor = LVTS_COEFF_A_MT8195,
|
||||
.temp_offset = LVTS_COEFF_B_MT8195,
|
||||
.gt_calib_bit_offset = 24,
|
||||
@@ -1762,7 +1789,11 @@ static const struct lvts_data mt8192_lvt
|
||||
|
||||
static const struct lvts_data mt8192_lvts_ap_data = {
|
||||
.lvts_ctrl = mt8192_lvts_ap_data_ctrl,
|
||||
+ .conn_cmd = default_conn_cmds,
|
||||
+ .init_cmd = default_init_cmds,
|
||||
.num_lvts_ctrl = ARRAY_SIZE(mt8192_lvts_ap_data_ctrl),
|
||||
+ .num_conn_cmd = ARRAY_SIZE(default_conn_cmds),
|
||||
+ .num_init_cmd = ARRAY_SIZE(default_init_cmds),
|
||||
.temp_factor = LVTS_COEFF_A_MT8195,
|
||||
.temp_offset = LVTS_COEFF_B_MT8195,
|
||||
.gt_calib_bit_offset = 24,
|
||||
@@ -1771,7 +1802,11 @@ static const struct lvts_data mt8192_lvt
|
||||
|
||||
static const struct lvts_data mt8195_lvts_mcu_data = {
|
||||
.lvts_ctrl = mt8195_lvts_mcu_data_ctrl,
|
||||
+ .conn_cmd = default_conn_cmds,
|
||||
+ .init_cmd = default_init_cmds,
|
||||
.num_lvts_ctrl = ARRAY_SIZE(mt8195_lvts_mcu_data_ctrl),
|
||||
+ .num_conn_cmd = ARRAY_SIZE(default_conn_cmds),
|
||||
+ .num_init_cmd = ARRAY_SIZE(default_init_cmds),
|
||||
.temp_factor = LVTS_COEFF_A_MT8195,
|
||||
.temp_offset = LVTS_COEFF_B_MT8195,
|
||||
.gt_calib_bit_offset = 24,
|
||||
@@ -1780,7 +1815,11 @@ static const struct lvts_data mt8195_lvt
|
||||
|
||||
static const struct lvts_data mt8195_lvts_ap_data = {
|
||||
.lvts_ctrl = mt8195_lvts_ap_data_ctrl,
|
||||
+ .conn_cmd = default_conn_cmds,
|
||||
+ .init_cmd = default_init_cmds,
|
||||
.num_lvts_ctrl = ARRAY_SIZE(mt8195_lvts_ap_data_ctrl),
|
||||
+ .num_conn_cmd = ARRAY_SIZE(default_conn_cmds),
|
||||
+ .num_init_cmd = ARRAY_SIZE(default_init_cmds),
|
||||
.temp_factor = LVTS_COEFF_A_MT8195,
|
||||
.temp_offset = LVTS_COEFF_B_MT8195,
|
||||
.gt_calib_bit_offset = 24,
|
@@ -1,57 +0,0 @@
|
||||
From 744e2e82b28cb28f8cd2cc4ee788a5c950b12aa2 Mon Sep 17 00:00:00 2001
|
||||
From: Mason Chang <mason-cw.chang@mediatek.com>
|
||||
Date: Mon, 26 May 2025 18:26:59 +0800
|
||||
Subject: [PATCH 3/3] thermal/drivers/mediatek/lvts_thermal: Add mt7988 lvts
|
||||
commands
|
||||
|
||||
These commands are necessary to avoid severely abnormal and inaccurate
|
||||
temperature readings that are caused by using the default commands.
|
||||
|
||||
Signed-off-by: Mason Chang <mason-cw.chang@mediatek.com>
|
||||
Link: https://lore.kernel.org/r/20250526102659.30225-4-mason-cw.chang@mediatek.com
|
||||
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
|
||||
(cherry picked from commit 685a755089f95b7e205c0202567d9a647f9de096)
|
||||
---
|
||||
drivers/thermal/mediatek/lvts_thermal.c | 16 ++++++++++++----
|
||||
1 file changed, 12 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/drivers/thermal/mediatek/lvts_thermal.c
|
||||
+++ b/drivers/thermal/mediatek/lvts_thermal.c
|
||||
@@ -1421,6 +1421,8 @@ static int lvts_resume(struct device *de
|
||||
}
|
||||
|
||||
static const u32 default_conn_cmds[] = { 0xC103FFFF, 0xC502FF55 };
|
||||
+static const u32 mt7988_conn_cmds[] = { 0xC103FFFF, 0xC502FC55 };
|
||||
+
|
||||
/*
|
||||
* Write device mask: 0xC1030000
|
||||
*/
|
||||
@@ -1431,6 +1433,12 @@ static const u32 default_init_cmds[] = {
|
||||
0xC10300FC, 0xC103009D, 0xC10300F1, 0xC10300E1
|
||||
};
|
||||
|
||||
+static const u32 mt7988_init_cmds[] = {
|
||||
+ 0xC1030300, 0xC1030420, 0xC1030500, 0xC10307A6, 0xC1030CFC,
|
||||
+ 0xC1030A8C, 0xC103098D, 0xC10308F1, 0xC1030B04, 0xC1030E01,
|
||||
+ 0xC10306B8
|
||||
+};
|
||||
+
|
||||
/*
|
||||
* The MT8186 calibration data is stored as packed 3-byte little-endian
|
||||
* values using a weird layout that makes sense only when viewed as a 32-bit
|
||||
@@ -1725,11 +1733,11 @@ static const struct lvts_ctrl_data mt819
|
||||
|
||||
static const struct lvts_data mt7988_lvts_ap_data = {
|
||||
.lvts_ctrl = mt7988_lvts_ap_data_ctrl,
|
||||
- .conn_cmd = default_conn_cmds,
|
||||
- .init_cmd = default_init_cmds,
|
||||
+ .conn_cmd = mt7988_conn_cmds,
|
||||
+ .init_cmd = mt7988_init_cmds,
|
||||
.num_lvts_ctrl = ARRAY_SIZE(mt7988_lvts_ap_data_ctrl),
|
||||
- .num_conn_cmd = ARRAY_SIZE(default_conn_cmds),
|
||||
- .num_init_cmd = ARRAY_SIZE(default_init_cmds),
|
||||
+ .num_conn_cmd = ARRAY_SIZE(mt7988_conn_cmds),
|
||||
+ .num_init_cmd = ARRAY_SIZE(mt7988_init_cmds),
|
||||
.temp_factor = LVTS_COEFF_A_MT7988,
|
||||
.temp_offset = LVTS_COEFF_B_MT7988,
|
||||
.gt_calib_bit_offset = 24,
|
@@ -107,7 +107,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
* @get_rate_matching: Get the supported type of rate matching for a
|
||||
* particular phy interface. This is used by phy consumers to determine
|
||||
* whether to advertise lower-speed modes for that interface. It is
|
||||
@@ -1839,6 +1865,8 @@ int phy_config_aneg(struct phy_device *p
|
||||
@@ -1840,6 +1866,8 @@ int phy_config_aneg(struct phy_device *p
|
||||
int _phy_start_aneg(struct phy_device *phydev);
|
||||
int phy_start_aneg(struct phy_device *phydev);
|
||||
int phy_aneg_done(struct phy_device *phydev);
|
||||
|
@@ -19,7 +19,7 @@ Signed-off-by: Matteo Croce <mcroce@microsoft.com>
|
||||
|
||||
if (priv->dma_cap.host_dma_width <= 32)
|
||||
gfp |= GFP_DMA32;
|
||||
@@ -4789,7 +4789,7 @@ static inline void stmmac_rx_refill(stru
|
||||
@@ -4790,7 +4790,7 @@ static inline void stmmac_rx_refill(stru
|
||||
struct stmmac_rx_queue *rx_q = &priv->dma_conf.rx_queue[queue];
|
||||
int dirty = stmmac_rx_dirty(priv, queue);
|
||||
unsigned int entry = rx_q->dirty_rx;
|
||||
|
Reference in New Issue
Block a user