summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThorsten Leemhuis <fedora@leemhuis.info>2018-05-11 07:32:40 +0200
committerThorsten Leemhuis <fedora@leemhuis.info>2018-05-11 07:32:40 +0200
commitcf0f4cc963bf4cb90aa3b2e6da9625635f51ca81 (patch)
tree8e64921ffe9ffe2c3d5f1d846a9c17d3c446d41b
parent4e77b4ddfa12a299a7db917d0bd0235c7b802f6d (diff)
parent70ef9fe7fb71d8d9aa9ce7cfd6e0e4d812860d46 (diff)
downloadkernel-4.17.0-0.rc4.git3.1.vanilla.knurd.1.fc27.tar.gz
kernel-4.17.0-0.rc4.git3.1.vanilla.knurd.1.fc27.tar.xz
kernel-4.17.0-0.rc4.git3.1.vanilla.knurd.1.fc27.zip
Merge remote-tracking branch 'origin/master' into rawhide-user-thl-vanilla-fedorakernel-4.17.0-0.rc4.git3.1.vanilla.knurd.1.fc28kernel-4.17.0-0.rc4.git3.1.vanilla.knurd.1.fc27
-rw-r--r--ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m400.patch64
-rw-r--r--gitrev2
-rw-r--r--kernel.spec11
-rw-r--r--sources2
4 files changed, 76 insertions, 3 deletions
diff --git a/ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m400.patch b/ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m400.patch
new file mode 100644
index 000000000..3dcfd4969
--- /dev/null
+++ b/ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m400.patch
@@ -0,0 +1,64 @@
+From dbdda4277cf0422a9ccb7ea98d0263c3cdbecdf6 Mon Sep 17 00:00:00 2001
+From: Mark Salter <msalter@redhat.com>
+Date: Tue, 8 May 2018 21:54:39 -0400
+Subject: [PATCH] ACPI / irq: Workaround firmware issue on X-Gene based
+ m400
+
+The ACPI firmware on the xgene-based m400 platorms erroneously
+describes its UART interrupt as ACPI_PRODUCER rather than
+ACPI_CONSUMER. This leads to the UART driver being unable to
+find its interrupt and the kernel unable find a console.
+Work around this by avoiding the producer/consumer check
+for X-Gene UARTs.
+
+Signed-off-by: Mark Salter <msalter@redhat.com>
+---
+ drivers/acpi/irq.c | 17 +++++++++++++++--
+ 1 file changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/acpi/irq.c b/drivers/acpi/irq.c
+index 7c352cba0528..028c1a564cff 100644
+--- a/drivers/acpi/irq.c
++++ b/drivers/acpi/irq.c
+@@ -129,6 +129,7 @@ struct acpi_irq_parse_one_ctx {
+ unsigned int index;
+ unsigned long *res_flags;
+ struct irq_fwspec *fwspec;
++ bool skip_producer_check;
+ };
+
+ /**
+@@ -200,7 +201,8 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares,
+ return AE_CTRL_TERMINATE;
+ case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
+ eirq = &ares->data.extended_irq;
+- if (eirq->producer_consumer == ACPI_PRODUCER)
++ if (!ctx->skip_producer_check &&
++ eirq->producer_consumer == ACPI_PRODUCER)
+ return AE_OK;
+ if (ctx->index >= eirq->interrupt_count) {
+ ctx->index -= eirq->interrupt_count;
+@@ -235,8 +237,19 @@ static acpi_status acpi_irq_parse_one_cb(struct acpi_resource *ares,
+ static int acpi_irq_parse_one(acpi_handle handle, unsigned int index,
+ struct irq_fwspec *fwspec, unsigned long *flags)
+ {
+- struct acpi_irq_parse_one_ctx ctx = { -EINVAL, index, flags, fwspec };
++ struct acpi_irq_parse_one_ctx ctx = { -EINVAL, index, flags, fwspec, false };
+
++ /*
++ * Firmware on arm64-based HPE m400 platform incorrectly marks
++ * its UART interrupt as ACPI_PRODUCER rather than ACPI_CONSUMER.
++ * Don't do the producer/consumer check for that device.
++ */
++ if (IS_ENABLED(CONFIG_ARM64)) {
++ struct acpi_device *adev = acpi_bus_get_acpi_device(handle);
++
++ if (adev && !strcmp(acpi_device_hid(adev), "APMC0D08"))
++ ctx.skip_producer_check = true;
++ }
+ acpi_walk_resources(handle, METHOD_NAME__CRS, acpi_irq_parse_one_cb, &ctx);
+ return ctx.rc;
+ }
+--
+2.17.0
+
diff --git a/gitrev b/gitrev
index a73da3825..19d80f3b5 100644
--- a/gitrev
+++ b/gitrev
@@ -1 +1 @@
-036db8bd96374c66424f270f3370ddaf0adf7506
+008464a9360e31b14677457dcd976fbf9dd58e2e
diff --git a/kernel.spec b/kernel.spec
index 0cdedc7f3..2a52a2d74 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -77,7 +77,7 @@ Summary: The Linux kernel
# The rc snapshot level
%global rcrev 4
# The git snapshot level
-%define gitrev 2
+%define gitrev 3
# Set rpm version accordingly
%define rpmversion 4.%{upstream_sublevel}.0
%endif
@@ -611,6 +611,9 @@ Patch311: arm-dts-Add-am335x-pocketbeagle.patch
# https://www.spinics.net/lists/linux-tegra/msg32920.html
Patch312: arm-tegra-USB-driver-dependency-fix.patch
+# rhbz 1574718
+Patch313: ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m400.patch
+
# https://patchwork.kernel.org/patch/10354521/
# https://patchwork.kernel.org/patch/10354187/
# https://patchwork.kernel.org/patch/10306793/
@@ -1892,6 +1895,12 @@ fi
#
#
%changelog
+* Thu May 10 2018 Justin M. Forbes <jforbes@fedoraproject.org> - 4.17.0-0.rc4.git3.1
+- Linux v4.17-rc4-38-g008464a9360e
+
+* Wed May 09 2018 Jeremy Cline <jeremy@jcline.org>
+- Workaround for m400 uart irq firmware description (rhbz 1574718)
+
* Wed May 09 2018 Justin M. Forbes <jforbes@fedoraproject.org> - 4.17.0-0.rc4.git2.1
- Linux v4.17-rc4-31-g036db8bd9637
diff --git a/sources b/sources
index 3ab14048f..db9569743 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (linux-4.16.tar.xz) = ab47849314b177d0eec9dbf261f33972b0d89fb92fb0650130ffa7abc2f36c0fab2d06317dc1683c51a472a9a631573a9b1e7258d6281a2ee189897827f14662
SHA512 (patch-4.17-rc4.xz) = 110990b1cc0ccb500075acec043810434a33beb23c1e020a9c8034e11af1e61d35273a6c3cb80d4f3ae8bb9da3f3909bff3b89c80af13219baf96f70a45513c8
-SHA512 (patch-4.17-rc4-git2.xz) = d6dbe587460f776f58e82f131525243264dd72c49b30d9b83c38d3d36be7e023886bda6dbc8aa0adc5ee6e2cb5bdcba6df23b548fdd6cdf6a855b58944ba49d0
+SHA512 (patch-4.17-rc4-git3.xz) = 2a032b7ee73813f2239a145c09b7407db197600668f6071ca3e747de110ec64fc17cf388304892d2aaf4e04741e2ec9e39fdd960382bedabcba75507ee182549