[GIT PULL v2] ACPI IORT changes for v4.15
Lorenzo Pieralisi
lorenzo.pieralisi at arm.com
Mon Oct 16 09:11:06 PDT 2017
Hi Catalin, Will,
this is a v2 of a previous PR:
v1 -> v2:
Rebased pull request on top of v4.14-rc3
v1: http://lkml.kernel.org/r/20171013152937.GA13386@red-moon
Here are the ACPI IORT changes I have queued aimed at the v4.15 kernel
release.
Main changes:
- SMMUv3 MSI enablement work based on IORT issue C spec updates
(Hanjun Guo)
- Clean-ups/rework in preparation for PMCG support (Lorenzo Pieralisi)
Patches have a compile time dependency on the ACPICA tree that we handled
through an ACPI_CA_VERSION guard; I will remove it at v4.15-rc1 when
dependencies have settled.
Reference discussion:
http://lkml.kernel.org/r/20171013130445.GA27895@red-moon
I expect no merge conflict with the arm64 tree for-next/core branch.
The content patches will cause a minor conflict when pulled into mainline,
since mainline contains a fix:
commit 37f6b42e9c ("ACPI/IORT: Fix PCI ACS enablement"))
that was merged in v4.14-rc4 and code in this pull request does not
rebase cleanly on top of it; my commit resolution below.
Please consider pulling, thank you.
Lorenzo
-- >8 --
diff --cc drivers/acpi/arm64/iort.c
index de56394,7dc964f..0000000
--- a/drivers/acpi/arm64/iort.c
+++ b/drivers/acpi/arm64/iort.c
@@@ -1215,7 -1326,7 +1357,8 @@@ static void __init iort_init_platform_d
struct acpi_table_iort *iort;
struct fwnode_handle *fwnode;
int i, ret;
+ bool acs_enabled = false;
+ const struct iort_dev_config *ops;
/*
* iort_table and iort both point to the start of IORT table, but
@@@ -1235,12 -1346,8 +1378,11 @@@
return;
}
+ if (!acs_enabled)
+ acs_enabled = iort_enable_acs(iort_node);
+
- if ((iort_node->type == ACPI_IORT_NODE_SMMU) ||
- (iort_node->type == ACPI_IORT_NODE_SMMU_V3)) {
-
+ ops = iort_get_dev_cfg(iort_node);
+ if (ops) {
fwnode = acpi_alloc_fwnode_static();
if (!fwnode)
return;
-- >8 --
The following changes since commit 9e66317d3c92ddaab330c125dfe9d06eee268aff:
Linux 4.14-rc3 (2017-10-01 14:54:54 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/linux.git tags/acpi/iort-for-v4.15
for you to fetch changes up to 65637901a3409f8a7952750e975536bde70fa1f8:
ACPI/IORT: Enable SMMUv3/PMCG IORT MSI domain set-up (2017-10-16 14:30:15 +0100)
----------------------------------------------------------------
ACPI IORT updates for v4.15; patches content is logically split into
the following subseries:
- Code clean-ups (A.Yadav, L.Pieralisi)
- Platform devices inizialization rework in preparation for IORT PMCG
handling (L.Pieralisi)
- Mapping API rework to enable MSIs for IORT components as defined in
IORT specification issue C (H.Guo, L.Pieralisi)
----------------------------------------------------------------
Arvind Yadav (1):
acpi/arm64: pr_err() strings should end with newlines
Hanjun Guo (3):
ACPI/IORT: Look up IORT node through struct fwnode_handle pointer
ACPI/IORT: Enable special index ITS group mappings for IORT nodes
ACPI/IORT: Add SMMUv3 specific special index mapping handling
Lorenzo Pieralisi (4):
ACPI/IORT: Remove leftover ACPI_IORT_SMMU_V3_PXM_VALID guard
ACPI/IORT: Improve functions return type/storage class specifier indentation
ACPI/IORT: Make platform devices initialization code SMMU agnostic
ACPI/IORT: Enable SMMUv3/PMCG IORT MSI domain set-up
drivers/acpi/arm64/gtdt.c | 2 +-
drivers/acpi/arm64/iort.c | 258 +++++++++++++++++++++++++++++++++++-----------
include/linux/acpi_iort.h | 4 +-
3 files changed, 203 insertions(+), 61 deletions(-)
More information about the linux-arm-kernel
mailing list