minor ARM fixes

This commit is contained in:
Peter Robinson 2017-07-17 10:16:19 +01:00
parent 2e4edabdad
commit c9fb62f512
30 changed files with 299 additions and 22 deletions

224
arm-thermal-fixes.patch Normal file
View File

@ -0,0 +1,224 @@
From 0fe4d2181cc4cb3eba303c0e03f878d2558d0f3a Mon Sep 17 00:00:00 2001
From: Stefan Wahren <stefan.wahren@i2se.com>
Date: Fri, 31 Mar 2017 20:03:04 +0000
Subject: [PATCH] ARM: dts: bcm283x: Add CPU thermal zone with 1
trip point
As suggested by Eduardo Valentin this adds the thermal zone for
the bcm2835 SoC with its single thermal sensor. We start with
the criticial trip point and leave the cooling devices empty
since we don't have any at the moment. Since the coefficients
could vary depending on the SoC we need to define them separate.
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Acked-by: Eduardo Valentin <edubezval@gmail.com>
---
arch/arm/boot/dts/bcm2835.dtsi | 4 ++++
arch/arm/boot/dts/bcm2836.dtsi | 4 ++++
arch/arm/boot/dts/bcm283x.dtsi | 21 +++++++++++++++++++++
3 files changed, 29 insertions(+)
diff --git a/arch/arm/boot/dts/bcm2835.dtsi b/arch/arm/boot/dts/bcm2835.dtsi
index 0890d97e674d..659b6e9513b1 100644
--- a/arch/arm/boot/dts/bcm2835.dtsi
+++ b/arch/arm/boot/dts/bcm2835.dtsi
@@ -24,6 +24,10 @@
};
};
+&cpu_thermal {
+ coefficients = <(-538) 407000>;
+};
+
/* enable thermal sensor with the correct compatible property set */
&thermal {
compatible = "brcm,bcm2835-thermal";
diff --git a/arch/arm/boot/dts/bcm2836.dtsi b/arch/arm/boot/dts/bcm2836.dtsi
index 519a44f5d25a..da3deeb42592 100644
--- a/arch/arm/boot/dts/bcm2836.dtsi
+++ b/arch/arm/boot/dts/bcm2836.dtsi
@@ -77,6 +77,10 @@
interrupts = <8>;
};
+&cpu_thermal {
+ coefficients = <(-538) 407000>;
+};
+
/* enable thermal sensor with the correct compatible property set */
&thermal {
compatible = "brcm,bcm2836-thermal";
diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
index 561f27d8d922..86a5db53da8f 100644
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
@@ -19,6 +19,26 @@
bootargs = "earlyprintk console=ttyAMA0";
};
+ thermal-zones {
+ cpu_thermal: cpu-thermal {
+ polling-delay-passive = <0>;
+ polling-delay = <1000>;
+
+ thermal-sensors = <&thermal>;
+
+ trips {
+ cpu-crit {
+ temperature = <80000>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+ };
+
+ cooling-maps {
+ };
+ };
+ };
+
soc {
compatible = "simple-bus";
#address-cells = <1>;
@@ -430,6 +450,7 @@
compatible = "brcm,bcm2835-thermal";
reg = <0x7e212000 0x8>;
clocks = <&clocks BCM2835_CLOCK_TSENS>;
+ #thermal-sensor-cells = <0>;
status = "disabled";
};
--
2.13.3
From 4ae6f954b96c1fea86c6f21ae8fc413f5fc3444e Mon Sep 17 00:00:00 2001
From: Stefan Wahren <stefan.wahren@i2se.com>
Date: Fri, 31 Mar 2017 20:03:05 +0000
Subject: [PATCH] ARM64: dts: bcm2837: Define CPU thermal coefficients
This defines the bcm2837 SoC specific thermal coefficients in
order to initialize the thermal driver correctly.
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Acked-by: Eduardo Valentin <edubezval@gmail.com>
---
arch/arm64/boot/dts/broadcom/bcm2837.dtsi | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi
index 19f2fe620a21..2d5de6f0f78d 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi
+++ b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi
@@ -75,6 +75,10 @@
interrupts = <8>;
};
+&cpu_thermal {
+ coefficients = <(-538) 412000>;
+};
+
/* enable thermal sensor with the correct compatible property set */
&thermal {
compatible = "brcm,bcm2837-thermal";
--
2.13.3
From 1fe3854a83b580727c9464b37b62ba77ead1d6f6 Mon Sep 17 00:00:00 2001
From: Dan Carpenter <dan.carpenter@oracle.com>
Date: Wed, 14 Jun 2017 12:13:27 +0300
Subject: [PATCH] thermal: bcm2835: fix an error code in probe()
This causes a static checker because we're passing a valid pointer to
PTR_ERR(). "err" is already the correct error code, so we can just
delete this line.
Fixes: bcb7dd9ef206 ("thermal: bcm2835: add thermal driver for bcm2835 SoC")
Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
---
drivers/thermal/broadcom/bcm2835_thermal.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/thermal/broadcom/bcm2835_thermal.c b/drivers/thermal/broadcom/bcm2835_thermal.c
index 0ecf80890c84..e6863c841662 100644
--- a/drivers/thermal/broadcom/bcm2835_thermal.c
+++ b/drivers/thermal/broadcom/bcm2835_thermal.c
@@ -245,7 +245,6 @@ static int bcm2835_thermal_probe(struct platform_device *pdev)
*/
err = tz->ops->get_trip_temp(tz, 0, &trip_temp);
if (err < 0) {
- err = PTR_ERR(tz);
dev_err(&pdev->dev,
"Not able to read trip_temp: %d\n",
err);
--
2.13.3
From e3bdc8d7623d5875403ad40443e7b049ae200fcd Mon Sep 17 00:00:00 2001
From: Arvind Yadav <arvind.yadav.cs@gmail.com>
Date: Tue, 6 Jun 2017 15:12:37 +0530
Subject: [PATCH] thermal: imx: Handle return value of clk_prepare_enable
clk_prepare_enable() can fail here and we must check its return value.
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
---
drivers/thermal/imx_thermal.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
index f7ec39f46ee4..4798b4b1fd77 100644
--- a/drivers/thermal/imx_thermal.c
+++ b/drivers/thermal/imx_thermal.c
@@ -660,8 +660,11 @@ static int imx_thermal_resume(struct device *dev)
{
struct imx_thermal_data *data = dev_get_drvdata(dev);
struct regmap *map = data->tempmon;
+ int ret;
- clk_prepare_enable(data->thermal_clk);
+ ret = clk_prepare_enable(data->thermal_clk);
+ if (ret)
+ return ret;
/* Enabled thermal sensor after resume */
regmap_write(map, TEMPSENSE0 + REG_CLR, TEMPSENSE0_POWER_DOWN);
regmap_write(map, TEMPSENSE0 + REG_SET, TEMPSENSE0_MEASURE_TEMP);
--
2.13.3
From 919054fdfc8adf58c5512fe9872eb53ea0f5525d Mon Sep 17 00:00:00 2001
From: Arvind Yadav <arvind.yadav.cs@gmail.com>
Date: Tue, 6 Jun 2017 15:04:46 +0530
Subject: [PATCH] thermal: hisilicon: Handle return value of clk_prepare_enable
clk_prepare_enable() can fail here and we must check its return value.
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
---
drivers/thermal/hisi_thermal.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/thermal/hisi_thermal.c b/drivers/thermal/hisi_thermal.c
index f6429666a1cf..9c3ce341eb97 100644
--- a/drivers/thermal/hisi_thermal.c
+++ b/drivers/thermal/hisi_thermal.c
@@ -397,8 +397,11 @@ static int hisi_thermal_suspend(struct device *dev)
static int hisi_thermal_resume(struct device *dev)
{
struct hisi_thermal_data *data = dev_get_drvdata(dev);
+ int ret;
- clk_prepare_enable(data->clk);
+ ret = clk_prepare_enable(data->clk);
+ if (ret)
+ return ret;
data->irq_enabled = true;
hisi_thermal_enable_bind_irq_sensor(data);
--
2.13.3

View File

@ -1 +0,0 @@
# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set

View File

@ -1 +1 @@
# CONFIG_PL310_ERRATA_588369 is not set
CONFIG_PL310_ERRATA_588369=y

View File

@ -1 +1 @@
# CONFIG_PL310_ERRATA_727915 is not set
CONFIG_PL310_ERRATA_727915=y

View File

@ -1 +0,0 @@
CONFIG_COMMON_CLK_SI570=m

View File

@ -1 +0,0 @@
CONFIG_PL310_ERRATA_588369=y

View File

@ -1 +0,0 @@
CONFIG_PL310_ERRATA_727915=y

View File

@ -1 +0,0 @@
# CONFIG_COMMON_CLK_SI570 is not set

View File

@ -1 +0,0 @@
# CONFIG_COMMON_CLK_SI570 is not set

View File

@ -4208,6 +4208,7 @@ CONFIG_RADIO_TERRATEC=m
CONFIG_RADIO_TRUST=m
CONFIG_RADIO_TYPHOON=m
CONFIG_RADIO_WL1273=m
CONFIG_RADIO_WL128X=m
CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
@ -5544,7 +5545,7 @@ CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
CONFIG_TI_SCI_PROTOCOL=m
# CONFIG_TI_ST is not set
CONFIG_TI_ST=m
# CONFIG_TI_SYSCON_RESET is not set
# CONFIG_TI_TLC4541 is not set
# CONFIG_TLAN is not set

View File

@ -4186,6 +4186,7 @@ CONFIG_RADIO_TERRATEC=m
CONFIG_RADIO_TRUST=m
CONFIG_RADIO_TYPHOON=m
CONFIG_RADIO_WL1273=m
CONFIG_RADIO_WL128X=m
CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
@ -5521,7 +5522,7 @@ CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
CONFIG_TI_SCI_PROTOCOL=m
# CONFIG_TI_ST is not set
CONFIG_TI_ST=m
# CONFIG_TI_SYSCON_RESET is not set
# CONFIG_TI_TLC4541 is not set
# CONFIG_TLAN is not set

View File

@ -927,7 +927,7 @@ CONFIG_COMMON_CLK_S2MPS11=m
CONFIG_COMMON_CLK_SCPI=m
# CONFIG_COMMON_CLK_SI514 is not set
CONFIG_COMMON_CLK_SI5351=m
CONFIG_COMMON_CLK_SI570=m
# CONFIG_COMMON_CLK_SI570 is not set
CONFIG_COMMON_CLK_TI_ADPLL=m
# CONFIG_COMMON_CLK_VC5 is not set
CONFIG_COMMON_CLK_VERSATILE=y
@ -1307,7 +1307,7 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
CONFIG_DRM_DUMB_VGA_DAC=m
# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
CONFIG_DRM_DW_HDMI=m
CONFIG_DRM_ETNAVIV=m

View File

@ -1256,7 +1256,7 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
CONFIG_DRM_DUMB_VGA_DAC=m
# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
CONFIG_DRM_DW_HDMI=m
CONFIG_DRM_EXYNOS5433_DECON=y
@ -4093,8 +4093,8 @@ CONFIG_PINMUX=y
CONFIG_PJ4B_ERRATA_4742=y
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_TEST_KEY is not set
# CONFIG_PL310_ERRATA_588369 is not set
# CONFIG_PL310_ERRATA_727915 is not set
CONFIG_PL310_ERRATA_588369=y
CONFIG_PL310_ERRATA_727915=y
CONFIG_PL310_ERRATA_753970=y
CONFIG_PL310_ERRATA_769419=y
CONFIG_PL320_MBOX=y
@ -4261,6 +4261,7 @@ CONFIG_RADIO_TERRATEC=m
CONFIG_RADIO_TRUST=m
CONFIG_RADIO_TYPHOON=m
CONFIG_RADIO_WL1273=m
CONFIG_RADIO_WL128X=m
CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
@ -5649,7 +5650,7 @@ CONFIG_TIPC=m
CONFIG_TIPC_MEDIA_UDP=y
CONFIG_TI_SCI_PROTOCOL=m
CONFIG_TI_SOC_THERMAL=m
# CONFIG_TI_ST is not set
CONFIG_TI_ST=m
CONFIG_TI_SYSCON_RESET=m
CONFIG_TI_THERMAL=y
# CONFIG_TI_TLC4541 is not set

View File

@ -1246,7 +1246,7 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
CONFIG_DRM_DUMB_VGA_DAC=m
# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
CONFIG_DRM_DW_HDMI=m
CONFIG_DRM_EXYNOS5433_DECON=y
@ -4072,8 +4072,8 @@ CONFIG_PINMUX=y
CONFIG_PJ4B_ERRATA_4742=y
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_TEST_KEY is not set
# CONFIG_PL310_ERRATA_588369 is not set
# CONFIG_PL310_ERRATA_727915 is not set
CONFIG_PL310_ERRATA_588369=y
CONFIG_PL310_ERRATA_727915=y
CONFIG_PL310_ERRATA_753970=y
CONFIG_PL310_ERRATA_769419=y
CONFIG_PL320_MBOX=y
@ -4239,6 +4239,7 @@ CONFIG_RADIO_TERRATEC=m
CONFIG_RADIO_TRUST=m
CONFIG_RADIO_TYPHOON=m
CONFIG_RADIO_WL1273=m
CONFIG_RADIO_WL128X=m
CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
@ -5626,7 +5627,7 @@ CONFIG_TIPC=m
CONFIG_TIPC_MEDIA_UDP=y
CONFIG_TI_SCI_PROTOCOL=m
CONFIG_TI_SOC_THERMAL=m
# CONFIG_TI_ST is not set
CONFIG_TI_ST=m
CONFIG_TI_SYSCON_RESET=m
CONFIG_TI_THERMAL=y
# CONFIG_TI_TLC4541 is not set

View File

@ -926,7 +926,7 @@ CONFIG_COMMON_CLK_S2MPS11=m
CONFIG_COMMON_CLK_SCPI=m
# CONFIG_COMMON_CLK_SI514 is not set
CONFIG_COMMON_CLK_SI5351=m
CONFIG_COMMON_CLK_SI570=m
# CONFIG_COMMON_CLK_SI570 is not set
CONFIG_COMMON_CLK_TI_ADPLL=m
# CONFIG_COMMON_CLK_VC5 is not set
CONFIG_COMMON_CLK_VERSATILE=y
@ -1297,7 +1297,7 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
CONFIG_DRM_DUMB_VGA_DAC=m
# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
CONFIG_DRM_DW_HDMI=m
CONFIG_DRM_ETNAVIV=m

View File

@ -751,6 +751,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set

View File

@ -750,6 +750,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set

View File

@ -708,6 +708,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set

View File

@ -707,6 +707,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set

View File

@ -708,6 +708,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set

View File

@ -707,6 +707,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set

View File

@ -705,6 +705,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set

View File

@ -704,6 +704,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set

View File

@ -775,6 +775,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set

View File

@ -774,6 +774,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set

View File

@ -611,6 +611,10 @@ Patch315: bcm283x-vc4-fix-vblank.patch
# https://patchwork.kernel.org/patch/9821157/
Patch316: qcom-msm89xx-fixes.patch
Patch317: arm-thermal-fixes.patch
# https://patchwork.kernel.org/patch/9802555/
Patch318: pinctrl-bcm2835-Avoid-warning-from-__irq_do_set_handler.patch
# 400 - IBM (ppc/s390x) patches
# 500 - Temp fixes/CVEs etc
@ -2217,6 +2221,7 @@ fi
%changelog
* Sun Jul 16 2017 Peter Robinson <pbrobinson@fedoraproject.org> 4.12.2-1
- Linux v4.12.2
- Minor ARM fixes
* Wed Jul 12 2017 Justin M. Forbes <jforbes@fedoraproject.org> - 4.12.1-1
- Linux v4.12.1

View File

@ -0,0 +1,40 @@
From patchwork Wed Jun 21 18:20:04 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: pinctrl: bcm2835: Avoid warning from __irq_do_set_handler
From: Stefan Wahren <stefan.wahren@i2se.com>
X-Patchwork-Id: 9802555
Message-Id: <1498069204-28154-1-git-send-email-stefan.wahren@i2se.com>
To: Linus Walleij <linus.walleij@linaro.org>, Eric Anholt <eric@anholt.net>
Cc: Stefan Wahren <stefan.wahren@i2se.com>, linux-gpio@vger.kernel.org,
Phil Elwell <phil@raspberrypi.org>, linux-rpi-kernel@lists.infradead.org,
linux-arm-kernel@lists.infradead.org
Date: Wed, 21 Jun 2017 20:20:04 +0200
We get a warning during boot with enabled EARLY_PRINTK that
we try to set a irq_chip without data. This is caused by ignoring
the return value of irq_of_parse_and_map(). So avoid calling
gpiochip_set_chained_irqchip() in error case.
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Fixes: 85ae9e512f43 ("pinctrl: bcm2835: switch to GPIOLIB_IRQCHIP")
---
drivers/pinctrl/bcm/pinctrl-bcm2835.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
index 1eb7a1a..2308831 100644
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
@@ -1048,6 +1048,10 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev)
for (i = 0; i < BCM2835_NUM_IRQS; i++) {
pc->irq[i] = irq_of_parse_and_map(np, i);
pc->irq_group[i] = i;
+
+ if (pc->irq[i] == 0)
+ continue;
+
/*
* Use the same handler for all groups: this is necessary
* since we use one gpiochip to cover all lines - the