From: Greg Kroah-Hartman Date: Fri, 27 Mar 2026 10:10:24 +0000 (+0100) Subject: drop some broken hwmon patches X-Git-Tag: v6.6.131~66 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=045b105dfdc90f520aa2b54e4867a9412d9610bf;p=thirdparty%2Fkernel%2Fstable-queue.git drop some broken hwmon patches --- diff --git a/queue-5.10/hwmon-axi-fan-control-make-use-of-dev_err_probe.patch b/queue-5.10/hwmon-axi-fan-control-make-use-of-dev_err_probe.patch deleted file mode 100644 index 7fddb91ce8..0000000000 --- a/queue-5.10/hwmon-axi-fan-control-make-use-of-dev_err_probe.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 8342080b3f972f0d33b4bc7086ccd19be1715f4a Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 14 Feb 2024 15:36:45 +0100 -Subject: hwmon: (axi-fan-control) Make use of dev_err_probe() - -From: Nuno Sa - -[ Upstream commit ec823656c1e0e5f49e92ed86cee9fb26585da18e ] - -Use dev_err_probe() to slightly simplify printing errors during probe. -No functional changes intended. - -Signed-off-by: Nuno Sa -Link: https://lore.kernel.org/r/20240214-axi-fan-control-no-of-v1-3-43ca656fe2e3@analog.com -Signed-off-by: Guenter Roeck -Stable-dep-of: 813bbc4d33d2 ("hwmon: axi-fan: don't use driver_override as IRQ name") -Signed-off-by: Sasha Levin ---- - drivers/hwmon/axi-fan-control.c | 40 +++++++++++++++------------------ - 1 file changed, 18 insertions(+), 22 deletions(-) - -diff --git a/drivers/hwmon/axi-fan-control.c b/drivers/hwmon/axi-fan-control.c -index cb46615555720..4ea86778d49da 100644 ---- a/drivers/hwmon/axi-fan-control.c -+++ b/drivers/hwmon/axi-fan-control.c -@@ -465,10 +465,9 @@ static int axi_fan_control_probe(struct platform_device *pdev) - return PTR_ERR(ctl->base); - - clk = devm_clk_get_enabled(&pdev->dev, NULL); -- if (IS_ERR(clk)) { -- dev_err(&pdev->dev, "clk_get failed with %ld\n", PTR_ERR(clk)); -- return PTR_ERR(clk); -- } -+ if (IS_ERR(clk)) -+ return dev_err_probe(&pdev->dev, PTR_ERR(clk), -+ "clk_get failed\n"); - - ctl->clk_rate = clk_get_rate(clk); - if (!ctl->clk_rate) -@@ -476,22 +475,20 @@ static int axi_fan_control_probe(struct platform_device *pdev) - - version = axi_ioread(ADI_AXI_REG_VERSION, ctl); - if (ADI_AXI_PCORE_VER_MAJOR(version) != -- ADI_AXI_PCORE_VER_MAJOR((*id))) { -- dev_err(&pdev->dev, "Major version mismatch. Expected %d.%.2d.%c, Reported %d.%.2d.%c\n", -- ADI_AXI_PCORE_VER_MAJOR(*id), -- ADI_AXI_PCORE_VER_MINOR(*id), -- ADI_AXI_PCORE_VER_PATCH(*id), -- ADI_AXI_PCORE_VER_MAJOR(version), -- ADI_AXI_PCORE_VER_MINOR(version), -- ADI_AXI_PCORE_VER_PATCH(version)); -- return -ENODEV; -- } -+ ADI_AXI_PCORE_VER_MAJOR((*id))) -+ return dev_err_probe(&pdev->dev, -ENODEV, -+ "Major version mismatch. Expected %d.%.2d.%c, Reported %d.%.2d.%c\n", -+ ADI_AXI_PCORE_VER_MAJOR(*id), -+ ADI_AXI_PCORE_VER_MINOR(*id), -+ ADI_AXI_PCORE_VER_PATCH(*id), -+ ADI_AXI_PCORE_VER_MAJOR(version), -+ ADI_AXI_PCORE_VER_MINOR(version), -+ ADI_AXI_PCORE_VER_PATCH(version)); - - ret = axi_fan_control_init(ctl, &pdev->dev); -- if (ret) { -- dev_err(&pdev->dev, "Failed to initialize device\n"); -- return ret; -- } -+ if (ret) -+ return dev_err_probe(&pdev->dev, ret, -+ "Failed to initialize device\n"); - - ctl->hdev = devm_hwmon_device_register_with_info(&pdev->dev, - name, -@@ -510,10 +507,9 @@ static int axi_fan_control_probe(struct platform_device *pdev) - axi_fan_control_irq_handler, - IRQF_ONESHOT | IRQF_TRIGGER_HIGH, - pdev->driver_override, ctl); -- if (ret) { -- dev_err(&pdev->dev, "failed to request an irq, %d", ret); -- return ret; -- } -+ if (ret) -+ return dev_err_probe(&pdev->dev, ret, -+ "failed to request an irq\n"); - - return 0; - } --- -2.51.0 - diff --git a/queue-5.10/hwmon-axi-fan-control-use-device-firmware-agnostic-a.patch b/queue-5.10/hwmon-axi-fan-control-use-device-firmware-agnostic-a.patch deleted file mode 100644 index 7a205900fd..0000000000 --- a/queue-5.10/hwmon-axi-fan-control-use-device-firmware-agnostic-a.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 10fe75f492d9515aedfcf9d4186d824e77530114 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 14 Feb 2024 15:36:43 +0100 -Subject: hwmon: (axi-fan-control) Use device firmware agnostic API - -From: Nuno Sa - -[ Upstream commit 1b5239f70fcd2d7fe86f0f5473006c2896db07a8 ] - -Don't directly use OF and use device property APIs. In addition, this -makes the probe() code neater and also allow us to move the -of_device_id table to it's natural place. - -While at it, make sure to explicitly include mod_devicetable.h for the -of_device_id table. - -Signed-off-by: Nuno Sa -Link: https://lore.kernel.org/r/20240214-axi-fan-control-no-of-v1-1-43ca656fe2e3@analog.com -Signed-off-by: Guenter Roeck -Stable-dep-of: 813bbc4d33d2 ("hwmon: axi-fan: don't use driver_override as IRQ name") -Signed-off-by: Sasha Levin ---- - drivers/hwmon/axi-fan-control.c | 39 +++++++++++++++++---------------- - 1 file changed, 20 insertions(+), 19 deletions(-) - -diff --git a/drivers/hwmon/axi-fan-control.c b/drivers/hwmon/axi-fan-control.c -index 6cfc063c133f4..cb46615555720 100644 ---- a/drivers/hwmon/axi-fan-control.c -+++ b/drivers/hwmon/axi-fan-control.c -@@ -13,8 +13,9 @@ - #include - #include - #include --#include -+#include - #include -+#include - - /* register map */ - #define ADI_REG_RSTN 0x0080 -@@ -367,12 +368,12 @@ static irqreturn_t axi_fan_control_irq_handler(int irq, void *data) - } - - static int axi_fan_control_init(struct axi_fan_control_data *ctl, -- const struct device_node *np) -+ const struct device *dev) - { - int ret; - - /* get fan pulses per revolution */ -- ret = of_property_read_u32(np, "pulses-per-revolution", &ctl->ppr); -+ ret = device_property_read_u32(dev, "pulses-per-revolution", &ctl->ppr); - if (ret) - return ret; - -@@ -442,25 +443,16 @@ static struct attribute *axi_fan_control_attrs[] = { - }; - ATTRIBUTE_GROUPS(axi_fan_control); - --static const u32 version_1_0_0 = ADI_AXI_PCORE_VER(1, 0, 'a'); -- --static const struct of_device_id axi_fan_control_of_match[] = { -- { .compatible = "adi,axi-fan-control-1.00.a", -- .data = (void *)&version_1_0_0}, -- {}, --}; --MODULE_DEVICE_TABLE(of, axi_fan_control_of_match); -- - static int axi_fan_control_probe(struct platform_device *pdev) - { - struct axi_fan_control_data *ctl; - struct clk *clk; -- const struct of_device_id *id; -+ const unsigned int *id; - const char *name = "axi_fan_control"; - u32 version; - int ret; - -- id = of_match_node(axi_fan_control_of_match, pdev->dev.of_node); -+ id = device_get_match_data(&pdev->dev); - if (!id) - return -EINVAL; - -@@ -484,18 +476,18 @@ static int axi_fan_control_probe(struct platform_device *pdev) - - version = axi_ioread(ADI_AXI_REG_VERSION, ctl); - if (ADI_AXI_PCORE_VER_MAJOR(version) != -- ADI_AXI_PCORE_VER_MAJOR((*(u32 *)id->data))) { -+ ADI_AXI_PCORE_VER_MAJOR((*id))) { - dev_err(&pdev->dev, "Major version mismatch. Expected %d.%.2d.%c, Reported %d.%.2d.%c\n", -- ADI_AXI_PCORE_VER_MAJOR((*(u32 *)id->data)), -- ADI_AXI_PCORE_VER_MINOR((*(u32 *)id->data)), -- ADI_AXI_PCORE_VER_PATCH((*(u32 *)id->data)), -+ ADI_AXI_PCORE_VER_MAJOR(*id), -+ ADI_AXI_PCORE_VER_MINOR(*id), -+ ADI_AXI_PCORE_VER_PATCH(*id), - ADI_AXI_PCORE_VER_MAJOR(version), - ADI_AXI_PCORE_VER_MINOR(version), - ADI_AXI_PCORE_VER_PATCH(version)); - return -ENODEV; - } - -- ret = axi_fan_control_init(ctl, pdev->dev.of_node); -+ ret = axi_fan_control_init(ctl, &pdev->dev); - if (ret) { - dev_err(&pdev->dev, "Failed to initialize device\n"); - return ret; -@@ -526,6 +518,15 @@ static int axi_fan_control_probe(struct platform_device *pdev) - return 0; - } - -+static const u32 version_1_0_0 = ADI_AXI_PCORE_VER(1, 0, 'a'); -+ -+static const struct of_device_id axi_fan_control_of_match[] = { -+ { .compatible = "adi,axi-fan-control-1.00.a", -+ .data = (void *)&version_1_0_0}, -+ {}, -+}; -+MODULE_DEVICE_TABLE(of, axi_fan_control_of_match); -+ - static struct platform_driver axi_fan_control_driver = { - .driver = { - .name = "axi_fan_control_driver", --- -2.51.0 - diff --git a/queue-5.10/hwmon-axi-fan-don-t-use-driver_override-as-irq-name.patch b/queue-5.10/hwmon-axi-fan-don-t-use-driver_override-as-irq-name.patch deleted file mode 100644 index d17dc78e6d..0000000000 --- a/queue-5.10/hwmon-axi-fan-don-t-use-driver_override-as-irq-name.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 2e1878ac518d58b2384a3ee12efbf2f8548cd7b4 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 3 Mar 2026 12:53:20 +0100 -Subject: hwmon: axi-fan: don't use driver_override as IRQ name -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Danilo Krummrich - -[ Upstream commit 813bbc4d33d2ca5b0da63e70ae13b60874f20d37 ] - -Do not use driver_override as IRQ name, as it is not guaranteed to point -to a valid string; use NULL instead (which makes the devm IRQ helpers -use dev_name()). - -Fixes: 8412b410fa5e ("hwmon: Support ADI Fan Control IP") -Reviewed-by: Nuno Sá -Acked-by: Guenter Roeck -Reviewed-by: Greg Kroah-Hartman -Link: https://patch.msgid.link/20260303115720.48783-4-dakr@kernel.org -Signed-off-by: Danilo Krummrich -Signed-off-by: Sasha Levin ---- - drivers/hwmon/axi-fan-control.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/hwmon/axi-fan-control.c b/drivers/hwmon/axi-fan-control.c -index 4ea86778d49da..5593be1664be7 100644 ---- a/drivers/hwmon/axi-fan-control.c -+++ b/drivers/hwmon/axi-fan-control.c -@@ -506,7 +506,7 @@ static int axi_fan_control_probe(struct platform_device *pdev) - ret = devm_request_threaded_irq(&pdev->dev, ctl->irq, NULL, - axi_fan_control_irq_handler, - IRQF_ONESHOT | IRQF_TRIGGER_HIGH, -- pdev->driver_override, ctl); -+ NULL, ctl); - if (ret) - return dev_err_probe(&pdev->dev, ret, - "failed to request an irq\n"); --- -2.51.0 - diff --git a/queue-5.10/hwmon-make-use-of-devm_clk_get_enabled.patch b/queue-5.10/hwmon-make-use-of-devm_clk_get_enabled.patch deleted file mode 100644 index 7ae9240a6c..0000000000 --- a/queue-5.10/hwmon-make-use-of-devm_clk_get_enabled.patch +++ /dev/null @@ -1,133 +0,0 @@ -From 2729af35760cfd5f38d89ee802a333a7b1560fbd Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 8 Aug 2022 08:06:40 +0200 -Subject: hwmon: Make use of devm_clk_get_enabled() -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Uwe Kleine-König - -[ Upstream commit 0dee25ebc7d315d9ee785ea5f457ae980979ea89 ] - -Several drivers manually register a devm handler to disable their clk. -Convert them to devm_clk_get_enabled(). - -Acked-by: Guenter Roeck -Reviewed-by: Nuno Sá -Acked-by: Jonathan Cameron -Signed-off-by: Uwe Kleine-König -Signed-off-by: Guenter Roeck -Stable-dep-of: 813bbc4d33d2 ("hwmon: axi-fan: don't use driver_override as IRQ name") -Signed-off-by: Sasha Levin ---- - drivers/hwmon/axi-fan-control.c | 2 +- - drivers/hwmon/ltc2947-core.c | 17 +---------------- - drivers/hwmon/mr75203.c | 26 +------------------------- - 3 files changed, 3 insertions(+), 42 deletions(-) - -diff --git a/drivers/hwmon/axi-fan-control.c b/drivers/hwmon/axi-fan-control.c -index 4b8250f2bb421..6cfc063c133f4 100644 ---- a/drivers/hwmon/axi-fan-control.c -+++ b/drivers/hwmon/axi-fan-control.c -@@ -472,7 +472,7 @@ static int axi_fan_control_probe(struct platform_device *pdev) - if (IS_ERR(ctl->base)) - return PTR_ERR(ctl->base); - -- clk = devm_clk_get(&pdev->dev, NULL); -+ clk = devm_clk_get_enabled(&pdev->dev, NULL); - if (IS_ERR(clk)) { - dev_err(&pdev->dev, "clk_get failed with %ld\n", PTR_ERR(clk)); - return PTR_ERR(clk); -diff --git a/drivers/hwmon/ltc2947-core.c b/drivers/hwmon/ltc2947-core.c -index e918490f3ff75..f752701818192 100644 ---- a/drivers/hwmon/ltc2947-core.c -+++ b/drivers/hwmon/ltc2947-core.c -@@ -956,13 +956,6 @@ static struct attribute *ltc2947_attrs[] = { - }; - ATTRIBUTE_GROUPS(ltc2947); - --static void ltc2947_clk_disable(void *data) --{ -- struct clk *extclk = data; -- -- clk_disable_unprepare(extclk); --} -- - static int ltc2947_setup(struct ltc2947_data *st) - { - int ret; -@@ -989,7 +982,7 @@ static int ltc2947_setup(struct ltc2947_data *st) - return ret; - - /* check external clock presence */ -- extclk = devm_clk_get_optional(st->dev, NULL); -+ extclk = devm_clk_get_optional_enabled(st->dev, NULL); - if (IS_ERR(extclk)) - return dev_err_probe(st->dev, PTR_ERR(extclk), - "Failed to get external clock\n"); -@@ -1007,14 +1000,6 @@ static int ltc2947_setup(struct ltc2947_data *st) - return -EINVAL; - } - -- ret = clk_prepare_enable(extclk); -- if (ret) -- return ret; -- -- ret = devm_add_action_or_reset(st->dev, ltc2947_clk_disable, -- extclk); -- if (ret) -- return ret; - /* as in table 1 of the datasheet */ - if (rate_hz >= LTC2947_CLK_MIN && rate_hz <= 1000000) - pre = 0; -diff --git a/drivers/hwmon/mr75203.c b/drivers/hwmon/mr75203.c -index 19ec9fb912020..cb4cdb26385bc 100644 ---- a/drivers/hwmon/mr75203.c -+++ b/drivers/hwmon/mr75203.c -@@ -487,24 +487,6 @@ static int pvt_get_regmap(struct platform_device *pdev, char *reg_name, - return 0; - } - --static void pvt_clk_disable(void *data) --{ -- struct pvt_device *pvt = data; -- -- clk_disable_unprepare(pvt->clk); --} -- --static int pvt_clk_enable(struct device *dev, struct pvt_device *pvt) --{ -- int ret; -- -- ret = clk_prepare_enable(pvt->clk); -- if (ret) -- return ret; -- -- return devm_add_action_or_reset(dev, pvt_clk_disable, pvt); --} -- - static void pvt_reset_control_assert(void *data) - { - struct pvt_device *pvt = data; -@@ -541,16 +523,10 @@ static int mr75203_probe(struct platform_device *pdev) - if (ret) - return ret; - -- pvt->clk = devm_clk_get(dev, NULL); -+ pvt->clk = devm_clk_get_enabled(dev, NULL); - if (IS_ERR(pvt->clk)) - return dev_err_probe(dev, PTR_ERR(pvt->clk), "failed to get clock\n"); - -- ret = pvt_clk_enable(dev, pvt); -- if (ret) { -- dev_err(dev, "failed to enable clock\n"); -- return ret; -- } -- - pvt->rst = devm_reset_control_get_optional_exclusive(dev, NULL); - if (IS_ERR(pvt->rst)) - return dev_err_probe(dev, PTR_ERR(pvt->rst), --- -2.51.0 - diff --git a/queue-5.10/hwmon-mr75203-skip-reset-control-deassert-for-socs-t.patch b/queue-5.10/hwmon-mr75203-skip-reset-control-deassert-for-socs-t.patch deleted file mode 100644 index 85050973c6..0000000000 --- a/queue-5.10/hwmon-mr75203-skip-reset-control-deassert-for-socs-t.patch +++ /dev/null @@ -1,54 +0,0 @@ -From c6c2193ad57da00489f65f0109027deda72f4ba4 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 8 Sep 2022 15:24:37 +0000 -Subject: hwmon: (mr75203) skip reset-control deassert for SOCs that don't - support it - -From: Eliav Farber - -[ Upstream commit 493372f5d3df9905087a2ce9f8b5a2dca5af889f ] - -Don't fail the probe function and don't deassert the reset controller if -a "reset" property doesn't exist in the device tree. - -Change is done for SOCs that don't support a reset controller. - -Signed-off-by: Eliav Farber -Reviewed-by: Andy Shevchenko -Link: https://lore.kernel.org/r/20220908152449.35457-10-farbere@amazon.com -Signed-off-by: Guenter Roeck -Stable-dep-of: 813bbc4d33d2 ("hwmon: axi-fan: don't use driver_override as IRQ name") -Signed-off-by: Sasha Levin ---- - drivers/hwmon/mr75203.c | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git a/drivers/hwmon/mr75203.c b/drivers/hwmon/mr75203.c -index 41e3d3b54baff..19ec9fb912020 100644 ---- a/drivers/hwmon/mr75203.c -+++ b/drivers/hwmon/mr75203.c -@@ -551,14 +551,17 @@ static int mr75203_probe(struct platform_device *pdev) - return ret; - } - -- pvt->rst = devm_reset_control_get_exclusive(dev, NULL); -+ pvt->rst = devm_reset_control_get_optional_exclusive(dev, NULL); - if (IS_ERR(pvt->rst)) - return dev_err_probe(dev, PTR_ERR(pvt->rst), - "failed to get reset control\n"); - -- ret = pvt_reset_control_deassert(dev, pvt); -- if (ret) -- return dev_err_probe(dev, ret, "cannot deassert reset control\n"); -+ if (pvt->rst) { -+ ret = pvt_reset_control_deassert(dev, pvt); -+ if (ret) -+ return dev_err_probe(dev, ret, -+ "cannot deassert reset control\n"); -+ } - - ret = regmap_read(pvt->c_map, PVT_IP_CONFIG, &val); - if(ret < 0) --- -2.51.0 - diff --git a/queue-5.10/series b/queue-5.10/series index 7481d2871a..038d104989 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -236,11 +236,6 @@ tools-bootconfig-fix-fd-leak-in-load_xbc_file-on-fst.patch netfilter-nft_set_pipapo-split-gc-into-unlink-and-reclaim-phase.patch xen-privcmd-restrict-usage-in-unprivileged-domu.patch xen-privcmd-add-boot-control-for-restricted-usage-in-domu.patch -hwmon-mr75203-skip-reset-control-deassert-for-socs-t.patch -hwmon-make-use-of-devm_clk_get_enabled.patch -hwmon-axi-fan-control-use-device-firmware-agnostic-a.patch -hwmon-axi-fan-control-make-use-of-dev_err_probe.patch -hwmon-axi-fan-don-t-use-driver_override-as-irq-name.patch sh-platform_early-remove-pdev-driver_override-check.patch hid-asus-avoid-memory-leak-in-asus_report_fixup.patch platform-x86-intel-hid-enable-5-button-array-on-thin.patch diff --git a/queue-5.15/hwmon-axi-fan-control-make-use-of-dev_err_probe.patch b/queue-5.15/hwmon-axi-fan-control-make-use-of-dev_err_probe.patch deleted file mode 100644 index 2f9d03ba21..0000000000 --- a/queue-5.15/hwmon-axi-fan-control-make-use-of-dev_err_probe.patch +++ /dev/null @@ -1,91 +0,0 @@ -From f699df3cc124ad390c4c8cb4b08ad7314c9806b3 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 14 Feb 2024 15:36:45 +0100 -Subject: hwmon: (axi-fan-control) Make use of dev_err_probe() - -From: Nuno Sa - -[ Upstream commit ec823656c1e0e5f49e92ed86cee9fb26585da18e ] - -Use dev_err_probe() to slightly simplify printing errors during probe. -No functional changes intended. - -Signed-off-by: Nuno Sa -Link: https://lore.kernel.org/r/20240214-axi-fan-control-no-of-v1-3-43ca656fe2e3@analog.com -Signed-off-by: Guenter Roeck -Stable-dep-of: 813bbc4d33d2 ("hwmon: axi-fan: don't use driver_override as IRQ name") -Signed-off-by: Sasha Levin ---- - drivers/hwmon/axi-fan-control.c | 40 +++++++++++++++------------------ - 1 file changed, 18 insertions(+), 22 deletions(-) - -diff --git a/drivers/hwmon/axi-fan-control.c b/drivers/hwmon/axi-fan-control.c -index 49ef395eab7ad..61f24ef470728 100644 ---- a/drivers/hwmon/axi-fan-control.c -+++ b/drivers/hwmon/axi-fan-control.c -@@ -465,10 +465,9 @@ static int axi_fan_control_probe(struct platform_device *pdev) - return PTR_ERR(ctl->base); - - clk = devm_clk_get_enabled(&pdev->dev, NULL); -- if (IS_ERR(clk)) { -- dev_err(&pdev->dev, "clk_get failed with %ld\n", PTR_ERR(clk)); -- return PTR_ERR(clk); -- } -+ if (IS_ERR(clk)) -+ return dev_err_probe(&pdev->dev, PTR_ERR(clk), -+ "clk_get failed\n"); - - ctl->clk_rate = clk_get_rate(clk); - if (!ctl->clk_rate) -@@ -476,22 +475,20 @@ static int axi_fan_control_probe(struct platform_device *pdev) - - version = axi_ioread(ADI_AXI_REG_VERSION, ctl); - if (ADI_AXI_PCORE_VER_MAJOR(version) != -- ADI_AXI_PCORE_VER_MAJOR((*id))) { -- dev_err(&pdev->dev, "Major version mismatch. Expected %d.%.2d.%c, Reported %d.%.2d.%c\n", -- ADI_AXI_PCORE_VER_MAJOR(*id), -- ADI_AXI_PCORE_VER_MINOR(*id), -- ADI_AXI_PCORE_VER_PATCH(*id), -- ADI_AXI_PCORE_VER_MAJOR(version), -- ADI_AXI_PCORE_VER_MINOR(version), -- ADI_AXI_PCORE_VER_PATCH(version)); -- return -ENODEV; -- } -+ ADI_AXI_PCORE_VER_MAJOR((*id))) -+ return dev_err_probe(&pdev->dev, -ENODEV, -+ "Major version mismatch. Expected %d.%.2d.%c, Reported %d.%.2d.%c\n", -+ ADI_AXI_PCORE_VER_MAJOR(*id), -+ ADI_AXI_PCORE_VER_MINOR(*id), -+ ADI_AXI_PCORE_VER_PATCH(*id), -+ ADI_AXI_PCORE_VER_MAJOR(version), -+ ADI_AXI_PCORE_VER_MINOR(version), -+ ADI_AXI_PCORE_VER_PATCH(version)); - - ret = axi_fan_control_init(ctl, &pdev->dev); -- if (ret) { -- dev_err(&pdev->dev, "Failed to initialize device\n"); -- return ret; -- } -+ if (ret) -+ return dev_err_probe(&pdev->dev, ret, -+ "Failed to initialize device\n"); - - ctl->hdev = devm_hwmon_device_register_with_info(&pdev->dev, - name, -@@ -510,10 +507,9 @@ static int axi_fan_control_probe(struct platform_device *pdev) - axi_fan_control_irq_handler, - IRQF_ONESHOT | IRQF_TRIGGER_HIGH, - pdev->driver_override, ctl); -- if (ret) { -- dev_err(&pdev->dev, "failed to request an irq, %d", ret); -- return ret; -- } -+ if (ret) -+ return dev_err_probe(&pdev->dev, ret, -+ "failed to request an irq\n"); - - return 0; - } --- -2.51.0 - diff --git a/queue-5.15/hwmon-axi-fan-control-use-device-firmware-agnostic-a.patch b/queue-5.15/hwmon-axi-fan-control-use-device-firmware-agnostic-a.patch deleted file mode 100644 index c045a97cdd..0000000000 --- a/queue-5.15/hwmon-axi-fan-control-use-device-firmware-agnostic-a.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 50f8eeb34216ce58cbbe31107f9b73fed952609d Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 14 Feb 2024 15:36:43 +0100 -Subject: hwmon: (axi-fan-control) Use device firmware agnostic API - -From: Nuno Sa - -[ Upstream commit 1b5239f70fcd2d7fe86f0f5473006c2896db07a8 ] - -Don't directly use OF and use device property APIs. In addition, this -makes the probe() code neater and also allow us to move the -of_device_id table to it's natural place. - -While at it, make sure to explicitly include mod_devicetable.h for the -of_device_id table. - -Signed-off-by: Nuno Sa -Link: https://lore.kernel.org/r/20240214-axi-fan-control-no-of-v1-1-43ca656fe2e3@analog.com -Signed-off-by: Guenter Roeck -Stable-dep-of: 813bbc4d33d2 ("hwmon: axi-fan: don't use driver_override as IRQ name") -Signed-off-by: Sasha Levin ---- - drivers/hwmon/axi-fan-control.c | 39 +++++++++++++++++---------------- - 1 file changed, 20 insertions(+), 19 deletions(-) - -diff --git a/drivers/hwmon/axi-fan-control.c b/drivers/hwmon/axi-fan-control.c -index 8ed141f0d4a6b..49ef395eab7ad 100644 ---- a/drivers/hwmon/axi-fan-control.c -+++ b/drivers/hwmon/axi-fan-control.c -@@ -13,8 +13,9 @@ - #include - #include - #include --#include -+#include - #include -+#include - - /* register map */ - #define ADI_REG_RSTN 0x0080 -@@ -367,12 +368,12 @@ static irqreturn_t axi_fan_control_irq_handler(int irq, void *data) - } - - static int axi_fan_control_init(struct axi_fan_control_data *ctl, -- const struct device_node *np) -+ const struct device *dev) - { - int ret; - - /* get fan pulses per revolution */ -- ret = of_property_read_u32(np, "pulses-per-revolution", &ctl->ppr); -+ ret = device_property_read_u32(dev, "pulses-per-revolution", &ctl->ppr); - if (ret) - return ret; - -@@ -442,25 +443,16 @@ static struct attribute *axi_fan_control_attrs[] = { - }; - ATTRIBUTE_GROUPS(axi_fan_control); - --static const u32 version_1_0_0 = ADI_AXI_PCORE_VER(1, 0, 'a'); -- --static const struct of_device_id axi_fan_control_of_match[] = { -- { .compatible = "adi,axi-fan-control-1.00.a", -- .data = (void *)&version_1_0_0}, -- {}, --}; --MODULE_DEVICE_TABLE(of, axi_fan_control_of_match); -- - static int axi_fan_control_probe(struct platform_device *pdev) - { - struct axi_fan_control_data *ctl; - struct clk *clk; -- const struct of_device_id *id; -+ const unsigned int *id; - const char *name = "axi_fan_control"; - u32 version; - int ret; - -- id = of_match_node(axi_fan_control_of_match, pdev->dev.of_node); -+ id = device_get_match_data(&pdev->dev); - if (!id) - return -EINVAL; - -@@ -484,18 +476,18 @@ static int axi_fan_control_probe(struct platform_device *pdev) - - version = axi_ioread(ADI_AXI_REG_VERSION, ctl); - if (ADI_AXI_PCORE_VER_MAJOR(version) != -- ADI_AXI_PCORE_VER_MAJOR((*(u32 *)id->data))) { -+ ADI_AXI_PCORE_VER_MAJOR((*id))) { - dev_err(&pdev->dev, "Major version mismatch. Expected %d.%.2d.%c, Reported %d.%.2d.%c\n", -- ADI_AXI_PCORE_VER_MAJOR((*(u32 *)id->data)), -- ADI_AXI_PCORE_VER_MINOR((*(u32 *)id->data)), -- ADI_AXI_PCORE_VER_PATCH((*(u32 *)id->data)), -+ ADI_AXI_PCORE_VER_MAJOR(*id), -+ ADI_AXI_PCORE_VER_MINOR(*id), -+ ADI_AXI_PCORE_VER_PATCH(*id), - ADI_AXI_PCORE_VER_MAJOR(version), - ADI_AXI_PCORE_VER_MINOR(version), - ADI_AXI_PCORE_VER_PATCH(version)); - return -ENODEV; - } - -- ret = axi_fan_control_init(ctl, pdev->dev.of_node); -+ ret = axi_fan_control_init(ctl, &pdev->dev); - if (ret) { - dev_err(&pdev->dev, "Failed to initialize device\n"); - return ret; -@@ -526,6 +518,15 @@ static int axi_fan_control_probe(struct platform_device *pdev) - return 0; - } - -+static const u32 version_1_0_0 = ADI_AXI_PCORE_VER(1, 0, 'a'); -+ -+static const struct of_device_id axi_fan_control_of_match[] = { -+ { .compatible = "adi,axi-fan-control-1.00.a", -+ .data = (void *)&version_1_0_0}, -+ {}, -+}; -+MODULE_DEVICE_TABLE(of, axi_fan_control_of_match); -+ - static struct platform_driver axi_fan_control_driver = { - .driver = { - .name = "axi_fan_control_driver", --- -2.51.0 - diff --git a/queue-5.15/hwmon-axi-fan-don-t-use-driver_override-as-irq-name.patch b/queue-5.15/hwmon-axi-fan-don-t-use-driver_override-as-irq-name.patch deleted file mode 100644 index ec793cb1c3..0000000000 --- a/queue-5.15/hwmon-axi-fan-don-t-use-driver_override-as-irq-name.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 10da045f0b20ab7427f4bcee70ba7648196feb22 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 3 Mar 2026 12:53:20 +0100 -Subject: hwmon: axi-fan: don't use driver_override as IRQ name -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Danilo Krummrich - -[ Upstream commit 813bbc4d33d2ca5b0da63e70ae13b60874f20d37 ] - -Do not use driver_override as IRQ name, as it is not guaranteed to point -to a valid string; use NULL instead (which makes the devm IRQ helpers -use dev_name()). - -Fixes: 8412b410fa5e ("hwmon: Support ADI Fan Control IP") -Reviewed-by: Nuno Sá -Acked-by: Guenter Roeck -Reviewed-by: Greg Kroah-Hartman -Link: https://patch.msgid.link/20260303115720.48783-4-dakr@kernel.org -Signed-off-by: Danilo Krummrich -Signed-off-by: Sasha Levin ---- - drivers/hwmon/axi-fan-control.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/hwmon/axi-fan-control.c b/drivers/hwmon/axi-fan-control.c -index 61f24ef470728..ef51d05b4eb61 100644 ---- a/drivers/hwmon/axi-fan-control.c -+++ b/drivers/hwmon/axi-fan-control.c -@@ -506,7 +506,7 @@ static int axi_fan_control_probe(struct platform_device *pdev) - ret = devm_request_threaded_irq(&pdev->dev, ctl->irq, NULL, - axi_fan_control_irq_handler, - IRQF_ONESHOT | IRQF_TRIGGER_HIGH, -- pdev->driver_override, ctl); -+ NULL, ctl); - if (ret) - return dev_err_probe(&pdev->dev, ret, - "failed to request an irq\n"); --- -2.51.0 - diff --git a/queue-5.15/hwmon-make-use-of-devm_clk_get_enabled.patch b/queue-5.15/hwmon-make-use-of-devm_clk_get_enabled.patch deleted file mode 100644 index b6e362c56e..0000000000 --- a/queue-5.15/hwmon-make-use-of-devm_clk_get_enabled.patch +++ /dev/null @@ -1,158 +0,0 @@ -From 705f03a3e0f866fd4fe28453e8b0386389331f9f Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 8 Aug 2022 08:06:40 +0200 -Subject: hwmon: Make use of devm_clk_get_enabled() -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Uwe Kleine-König - -[ Upstream commit 0dee25ebc7d315d9ee785ea5f457ae980979ea89 ] - -Several drivers manually register a devm handler to disable their clk. -Convert them to devm_clk_get_enabled(). - -Acked-by: Guenter Roeck -Reviewed-by: Nuno Sá -Acked-by: Jonathan Cameron -Signed-off-by: Uwe Kleine-König -Signed-off-by: Guenter Roeck -Stable-dep-of: 813bbc4d33d2 ("hwmon: axi-fan: don't use driver_override as IRQ name") -Signed-off-by: Sasha Levin ---- - drivers/hwmon/axi-fan-control.c | 15 +-------------- - drivers/hwmon/ltc2947-core.c | 17 +---------------- - drivers/hwmon/mr75203.c | 26 +------------------------- - 3 files changed, 3 insertions(+), 55 deletions(-) - -diff --git a/drivers/hwmon/axi-fan-control.c b/drivers/hwmon/axi-fan-control.c -index 7af18018a32ff..8ed141f0d4a6b 100644 ---- a/drivers/hwmon/axi-fan-control.c -+++ b/drivers/hwmon/axi-fan-control.c -@@ -393,11 +393,6 @@ static int axi_fan_control_init(struct axi_fan_control_data *ctl, - return ret; - } - --static void axi_fan_control_clk_disable(void *clk) --{ -- clk_disable_unprepare(clk); --} -- - static const struct hwmon_channel_info *axi_fan_control_info[] = { - HWMON_CHANNEL_INFO(pwm, HWMON_PWM_INPUT), - HWMON_CHANNEL_INFO(fan, HWMON_F_INPUT | HWMON_F_FAULT | HWMON_F_LABEL), -@@ -477,20 +472,12 @@ static int axi_fan_control_probe(struct platform_device *pdev) - if (IS_ERR(ctl->base)) - return PTR_ERR(ctl->base); - -- clk = devm_clk_get(&pdev->dev, NULL); -+ clk = devm_clk_get_enabled(&pdev->dev, NULL); - if (IS_ERR(clk)) { - dev_err(&pdev->dev, "clk_get failed with %ld\n", PTR_ERR(clk)); - return PTR_ERR(clk); - } - -- ret = clk_prepare_enable(clk); -- if (ret) -- return ret; -- -- ret = devm_add_action_or_reset(&pdev->dev, axi_fan_control_clk_disable, clk); -- if (ret) -- return ret; -- - ctl->clk_rate = clk_get_rate(clk); - if (!ctl->clk_rate) - return -EINVAL; -diff --git a/drivers/hwmon/ltc2947-core.c b/drivers/hwmon/ltc2947-core.c -index e918490f3ff75..f752701818192 100644 ---- a/drivers/hwmon/ltc2947-core.c -+++ b/drivers/hwmon/ltc2947-core.c -@@ -956,13 +956,6 @@ static struct attribute *ltc2947_attrs[] = { - }; - ATTRIBUTE_GROUPS(ltc2947); - --static void ltc2947_clk_disable(void *data) --{ -- struct clk *extclk = data; -- -- clk_disable_unprepare(extclk); --} -- - static int ltc2947_setup(struct ltc2947_data *st) - { - int ret; -@@ -989,7 +982,7 @@ static int ltc2947_setup(struct ltc2947_data *st) - return ret; - - /* check external clock presence */ -- extclk = devm_clk_get_optional(st->dev, NULL); -+ extclk = devm_clk_get_optional_enabled(st->dev, NULL); - if (IS_ERR(extclk)) - return dev_err_probe(st->dev, PTR_ERR(extclk), - "Failed to get external clock\n"); -@@ -1007,14 +1000,6 @@ static int ltc2947_setup(struct ltc2947_data *st) - return -EINVAL; - } - -- ret = clk_prepare_enable(extclk); -- if (ret) -- return ret; -- -- ret = devm_add_action_or_reset(st->dev, ltc2947_clk_disable, -- extclk); -- if (ret) -- return ret; - /* as in table 1 of the datasheet */ - if (rate_hz >= LTC2947_CLK_MIN && rate_hz <= 1000000) - pre = 0; -diff --git a/drivers/hwmon/mr75203.c b/drivers/hwmon/mr75203.c -index 15ae3f4336340..71087741e27e2 100644 ---- a/drivers/hwmon/mr75203.c -+++ b/drivers/hwmon/mr75203.c -@@ -487,24 +487,6 @@ static int pvt_get_regmap(struct platform_device *pdev, char *reg_name, - return 0; - } - --static void pvt_clk_disable(void *data) --{ -- struct pvt_device *pvt = data; -- -- clk_disable_unprepare(pvt->clk); --} -- --static int pvt_clk_enable(struct device *dev, struct pvt_device *pvt) --{ -- int ret; -- -- ret = clk_prepare_enable(pvt->clk); -- if (ret) -- return ret; -- -- return devm_add_action_or_reset(dev, pvt_clk_disable, pvt); --} -- - static void pvt_reset_control_assert(void *data) - { - struct pvt_device *pvt = data; -@@ -541,16 +523,10 @@ static int mr75203_probe(struct platform_device *pdev) - if (ret) - return ret; - -- pvt->clk = devm_clk_get(dev, NULL); -+ pvt->clk = devm_clk_get_enabled(dev, NULL); - if (IS_ERR(pvt->clk)) - return dev_err_probe(dev, PTR_ERR(pvt->clk), "failed to get clock\n"); - -- ret = pvt_clk_enable(dev, pvt); -- if (ret) { -- dev_err(dev, "failed to enable clock\n"); -- return ret; -- } -- - pvt->rst = devm_reset_control_get_optional_exclusive(dev, NULL); - if (IS_ERR(pvt->rst)) - return dev_err_probe(dev, PTR_ERR(pvt->rst), --- -2.51.0 - diff --git a/queue-5.15/hwmon-mr75203-skip-reset-control-deassert-for-socs-t.patch b/queue-5.15/hwmon-mr75203-skip-reset-control-deassert-for-socs-t.patch deleted file mode 100644 index 68e6d716b6..0000000000 --- a/queue-5.15/hwmon-mr75203-skip-reset-control-deassert-for-socs-t.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 228b6e37686c3fa3421136d4a7b3f5b237885501 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 8 Sep 2022 15:24:37 +0000 -Subject: hwmon: (mr75203) skip reset-control deassert for SOCs that don't - support it - -From: Eliav Farber - -[ Upstream commit 493372f5d3df9905087a2ce9f8b5a2dca5af889f ] - -Don't fail the probe function and don't deassert the reset controller if -a "reset" property doesn't exist in the device tree. - -Change is done for SOCs that don't support a reset controller. - -Signed-off-by: Eliav Farber -Reviewed-by: Andy Shevchenko -Link: https://lore.kernel.org/r/20220908152449.35457-10-farbere@amazon.com -Signed-off-by: Guenter Roeck -Stable-dep-of: 813bbc4d33d2 ("hwmon: axi-fan: don't use driver_override as IRQ name") -Signed-off-by: Sasha Levin ---- - drivers/hwmon/mr75203.c | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git a/drivers/hwmon/mr75203.c b/drivers/hwmon/mr75203.c -index 05da83841536f..15ae3f4336340 100644 ---- a/drivers/hwmon/mr75203.c -+++ b/drivers/hwmon/mr75203.c -@@ -551,14 +551,17 @@ static int mr75203_probe(struct platform_device *pdev) - return ret; - } - -- pvt->rst = devm_reset_control_get_exclusive(dev, NULL); -+ pvt->rst = devm_reset_control_get_optional_exclusive(dev, NULL); - if (IS_ERR(pvt->rst)) - return dev_err_probe(dev, PTR_ERR(pvt->rst), - "failed to get reset control\n"); - -- ret = pvt_reset_control_deassert(dev, pvt); -- if (ret) -- return dev_err_probe(dev, ret, "cannot deassert reset control\n"); -+ if (pvt->rst) { -+ ret = pvt_reset_control_deassert(dev, pvt); -+ if (ret) -+ return dev_err_probe(dev, ret, -+ "cannot deassert reset control\n"); -+ } - - ret = regmap_read(pvt->c_map, PVT_IP_CONFIG, &val); - if(ret < 0) --- -2.51.0 - diff --git a/queue-5.15/series b/queue-5.15/series index 96d95df3f6..2129a358dd 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -292,11 +292,6 @@ netfilter-nf_tables-de-constify-set-commit-ops-function-argument.patch netfilter-nft_set_pipapo-split-gc-into-unlink-and-reclaim-phase.patch xen-privcmd-restrict-usage-in-unprivileged-domu.patch xen-privcmd-add-boot-control-for-restricted-usage-in-domu.patch -hwmon-mr75203-skip-reset-control-deassert-for-socs-t.patch -hwmon-make-use-of-devm_clk_get_enabled.patch -hwmon-axi-fan-control-use-device-firmware-agnostic-a.patch -hwmon-axi-fan-control-make-use-of-dev_err_probe.patch -hwmon-axi-fan-don-t-use-driver_override-as-irq-name.patch sh-platform_early-remove-pdev-driver_override-check.patch bpf-release-module-btf-idr-before-module-unload.patch hid-asus-avoid-memory-leak-in-asus_report_fixup.patch diff --git a/queue-6.1/hwmon-axi-fan-control-make-use-of-dev_err_probe.patch b/queue-6.1/hwmon-axi-fan-control-make-use-of-dev_err_probe.patch deleted file mode 100644 index b7e0b77c2e..0000000000 --- a/queue-6.1/hwmon-axi-fan-control-make-use-of-dev_err_probe.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 06e89dd919312e41b7a842d3b66eb7bb3cc67d8f Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 14 Feb 2024 15:36:45 +0100 -Subject: hwmon: (axi-fan-control) Make use of dev_err_probe() - -From: Nuno Sa - -[ Upstream commit ec823656c1e0e5f49e92ed86cee9fb26585da18e ] - -Use dev_err_probe() to slightly simplify printing errors during probe. -No functional changes intended. - -Signed-off-by: Nuno Sa -Link: https://lore.kernel.org/r/20240214-axi-fan-control-no-of-v1-3-43ca656fe2e3@analog.com -Signed-off-by: Guenter Roeck -Stable-dep-of: 813bbc4d33d2 ("hwmon: axi-fan: don't use driver_override as IRQ name") -Signed-off-by: Sasha Levin ---- - drivers/hwmon/axi-fan-control.c | 40 +++++++++++++++------------------ - 1 file changed, 18 insertions(+), 22 deletions(-) - -diff --git a/drivers/hwmon/axi-fan-control.c b/drivers/hwmon/axi-fan-control.c -index b847d91dd5bab..15a3455577dd7 100644 ---- a/drivers/hwmon/axi-fan-control.c -+++ b/drivers/hwmon/axi-fan-control.c -@@ -466,10 +466,9 @@ static int axi_fan_control_probe(struct platform_device *pdev) - return PTR_ERR(ctl->base); - - clk = devm_clk_get_enabled(&pdev->dev, NULL); -- if (IS_ERR(clk)) { -- dev_err(&pdev->dev, "clk_get failed with %ld\n", PTR_ERR(clk)); -- return PTR_ERR(clk); -- } -+ if (IS_ERR(clk)) -+ return dev_err_probe(&pdev->dev, PTR_ERR(clk), -+ "clk_get failed\n"); - - ctl->clk_rate = clk_get_rate(clk); - if (!ctl->clk_rate) -@@ -477,22 +476,20 @@ static int axi_fan_control_probe(struct platform_device *pdev) - - version = axi_ioread(ADI_AXI_REG_VERSION, ctl); - if (ADI_AXI_PCORE_VER_MAJOR(version) != -- ADI_AXI_PCORE_VER_MAJOR((*id))) { -- dev_err(&pdev->dev, "Major version mismatch. Expected %d.%.2d.%c, Reported %d.%.2d.%c\n", -- ADI_AXI_PCORE_VER_MAJOR(*id), -- ADI_AXI_PCORE_VER_MINOR(*id), -- ADI_AXI_PCORE_VER_PATCH(*id), -- ADI_AXI_PCORE_VER_MAJOR(version), -- ADI_AXI_PCORE_VER_MINOR(version), -- ADI_AXI_PCORE_VER_PATCH(version)); -- return -ENODEV; -- } -+ ADI_AXI_PCORE_VER_MAJOR((*id))) -+ return dev_err_probe(&pdev->dev, -ENODEV, -+ "Major version mismatch. Expected %d.%.2d.%c, Reported %d.%.2d.%c\n", -+ ADI_AXI_PCORE_VER_MAJOR(*id), -+ ADI_AXI_PCORE_VER_MINOR(*id), -+ ADI_AXI_PCORE_VER_PATCH(*id), -+ ADI_AXI_PCORE_VER_MAJOR(version), -+ ADI_AXI_PCORE_VER_MINOR(version), -+ ADI_AXI_PCORE_VER_PATCH(version)); - - ret = axi_fan_control_init(ctl, &pdev->dev); -- if (ret) { -- dev_err(&pdev->dev, "Failed to initialize device\n"); -- return ret; -- } -+ if (ret) -+ return dev_err_probe(&pdev->dev, ret, -+ "Failed to initialize device\n"); - - ctl->hdev = devm_hwmon_device_register_with_info(&pdev->dev, - name, -@@ -511,10 +508,9 @@ static int axi_fan_control_probe(struct platform_device *pdev) - axi_fan_control_irq_handler, - IRQF_ONESHOT | IRQF_TRIGGER_HIGH, - pdev->driver_override, ctl); -- if (ret) { -- dev_err(&pdev->dev, "failed to request an irq, %d", ret); -- return ret; -- } -+ if (ret) -+ return dev_err_probe(&pdev->dev, ret, -+ "failed to request an irq\n"); - - return 0; - } --- -2.51.0 - diff --git a/queue-6.1/hwmon-axi-fan-control-use-device-firmware-agnostic-a.patch b/queue-6.1/hwmon-axi-fan-control-use-device-firmware-agnostic-a.patch deleted file mode 100644 index 2c3dcd42c9..0000000000 --- a/queue-6.1/hwmon-axi-fan-control-use-device-firmware-agnostic-a.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 5f193643c6b952c12096ca8987b45975cc392adb Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 14 Feb 2024 15:36:43 +0100 -Subject: hwmon: (axi-fan-control) Use device firmware agnostic API - -From: Nuno Sa - -[ Upstream commit 1b5239f70fcd2d7fe86f0f5473006c2896db07a8 ] - -Don't directly use OF and use device property APIs. In addition, this -makes the probe() code neater and also allow us to move the -of_device_id table to it's natural place. - -While at it, make sure to explicitly include mod_devicetable.h for the -of_device_id table. - -Signed-off-by: Nuno Sa -Link: https://lore.kernel.org/r/20240214-axi-fan-control-no-of-v1-1-43ca656fe2e3@analog.com -Signed-off-by: Guenter Roeck -Stable-dep-of: 813bbc4d33d2 ("hwmon: axi-fan: don't use driver_override as IRQ name") -Signed-off-by: Sasha Levin ---- - drivers/hwmon/axi-fan-control.c | 39 +++++++++++++++++---------------- - 1 file changed, 20 insertions(+), 19 deletions(-) - -diff --git a/drivers/hwmon/axi-fan-control.c b/drivers/hwmon/axi-fan-control.c -index 25abf28084c96..b847d91dd5bab 100644 ---- a/drivers/hwmon/axi-fan-control.c -+++ b/drivers/hwmon/axi-fan-control.c -@@ -13,8 +13,9 @@ - #include - #include - #include --#include -+#include - #include -+#include - - /* register map */ - #define ADI_REG_RSTN 0x0080 -@@ -368,12 +369,12 @@ static irqreturn_t axi_fan_control_irq_handler(int irq, void *data) - } - - static int axi_fan_control_init(struct axi_fan_control_data *ctl, -- const struct device_node *np) -+ const struct device *dev) - { - int ret; - - /* get fan pulses per revolution */ -- ret = of_property_read_u32(np, "pulses-per-revolution", &ctl->ppr); -+ ret = device_property_read_u32(dev, "pulses-per-revolution", &ctl->ppr); - if (ret) - return ret; - -@@ -443,25 +444,16 @@ static struct attribute *axi_fan_control_attrs[] = { - }; - ATTRIBUTE_GROUPS(axi_fan_control); - --static const u32 version_1_0_0 = ADI_AXI_PCORE_VER(1, 0, 'a'); -- --static const struct of_device_id axi_fan_control_of_match[] = { -- { .compatible = "adi,axi-fan-control-1.00.a", -- .data = (void *)&version_1_0_0}, -- {}, --}; --MODULE_DEVICE_TABLE(of, axi_fan_control_of_match); -- - static int axi_fan_control_probe(struct platform_device *pdev) - { - struct axi_fan_control_data *ctl; - struct clk *clk; -- const struct of_device_id *id; -+ const unsigned int *id; - const char *name = "axi_fan_control"; - u32 version; - int ret; - -- id = of_match_node(axi_fan_control_of_match, pdev->dev.of_node); -+ id = device_get_match_data(&pdev->dev); - if (!id) - return -EINVAL; - -@@ -485,18 +477,18 @@ static int axi_fan_control_probe(struct platform_device *pdev) - - version = axi_ioread(ADI_AXI_REG_VERSION, ctl); - if (ADI_AXI_PCORE_VER_MAJOR(version) != -- ADI_AXI_PCORE_VER_MAJOR((*(u32 *)id->data))) { -+ ADI_AXI_PCORE_VER_MAJOR((*id))) { - dev_err(&pdev->dev, "Major version mismatch. Expected %d.%.2d.%c, Reported %d.%.2d.%c\n", -- ADI_AXI_PCORE_VER_MAJOR((*(u32 *)id->data)), -- ADI_AXI_PCORE_VER_MINOR((*(u32 *)id->data)), -- ADI_AXI_PCORE_VER_PATCH((*(u32 *)id->data)), -+ ADI_AXI_PCORE_VER_MAJOR(*id), -+ ADI_AXI_PCORE_VER_MINOR(*id), -+ ADI_AXI_PCORE_VER_PATCH(*id), - ADI_AXI_PCORE_VER_MAJOR(version), - ADI_AXI_PCORE_VER_MINOR(version), - ADI_AXI_PCORE_VER_PATCH(version)); - return -ENODEV; - } - -- ret = axi_fan_control_init(ctl, pdev->dev.of_node); -+ ret = axi_fan_control_init(ctl, &pdev->dev); - if (ret) { - dev_err(&pdev->dev, "Failed to initialize device\n"); - return ret; -@@ -527,6 +519,15 @@ static int axi_fan_control_probe(struct platform_device *pdev) - return 0; - } - -+static const u32 version_1_0_0 = ADI_AXI_PCORE_VER(1, 0, 'a'); -+ -+static const struct of_device_id axi_fan_control_of_match[] = { -+ { .compatible = "adi,axi-fan-control-1.00.a", -+ .data = (void *)&version_1_0_0}, -+ {}, -+}; -+MODULE_DEVICE_TABLE(of, axi_fan_control_of_match); -+ - static struct platform_driver axi_fan_control_driver = { - .driver = { - .name = "axi_fan_control_driver", --- -2.51.0 - diff --git a/queue-6.1/hwmon-axi-fan-don-t-use-driver_override-as-irq-name.patch b/queue-6.1/hwmon-axi-fan-don-t-use-driver_override-as-irq-name.patch deleted file mode 100644 index b5a5bae90b..0000000000 --- a/queue-6.1/hwmon-axi-fan-don-t-use-driver_override-as-irq-name.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 2307a2ff1de9fcb8b368d53fab2a9c8a2970528b Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 3 Mar 2026 12:53:20 +0100 -Subject: hwmon: axi-fan: don't use driver_override as IRQ name -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Danilo Krummrich - -[ Upstream commit 813bbc4d33d2ca5b0da63e70ae13b60874f20d37 ] - -Do not use driver_override as IRQ name, as it is not guaranteed to point -to a valid string; use NULL instead (which makes the devm IRQ helpers -use dev_name()). - -Fixes: 8412b410fa5e ("hwmon: Support ADI Fan Control IP") -Reviewed-by: Nuno Sá -Acked-by: Guenter Roeck -Reviewed-by: Greg Kroah-Hartman -Link: https://patch.msgid.link/20260303115720.48783-4-dakr@kernel.org -Signed-off-by: Danilo Krummrich -Signed-off-by: Sasha Levin ---- - drivers/hwmon/axi-fan-control.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/hwmon/axi-fan-control.c b/drivers/hwmon/axi-fan-control.c -index 15a3455577dd7..ce20f54ce2a09 100644 ---- a/drivers/hwmon/axi-fan-control.c -+++ b/drivers/hwmon/axi-fan-control.c -@@ -507,7 +507,7 @@ static int axi_fan_control_probe(struct platform_device *pdev) - ret = devm_request_threaded_irq(&pdev->dev, ctl->irq, NULL, - axi_fan_control_irq_handler, - IRQF_ONESHOT | IRQF_TRIGGER_HIGH, -- pdev->driver_override, ctl); -+ NULL, ctl); - if (ret) - return dev_err_probe(&pdev->dev, ret, - "failed to request an irq\n"); --- -2.51.0 - diff --git a/queue-6.1/series b/queue-6.1/series index dd48da9c07..5cc87b85ce 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -1,6 +1,3 @@ -hwmon-axi-fan-control-use-device-firmware-agnostic-a.patch -hwmon-axi-fan-control-make-use-of-dev_err_probe.patch -hwmon-axi-fan-don-t-use-driver_override-as-irq-name.patch sh-platform_early-remove-pdev-driver_override-check.patch bpf-release-module-btf-idr-before-module-unload.patch hid-asus-avoid-memory-leak-in-asus_report_fixup.patch