linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V11 0/8] Introduce ACPI world to ITS irqchip
@ 2016-09-12 18:32 Tomasz Nowicki
  2016-09-12 18:32 ` [PATCH V11 1/8] ACPI: I/O Remapping Table (IORT) initial support Tomasz Nowicki
                   ` (8 more replies)
  0 siblings, 9 replies; 13+ messages in thread
From: Tomasz Nowicki @ 2016-09-12 18:32 UTC (permalink / raw)
  To: marc.zyngier, tglx, jason, rjw, helgaas, rafael,
	Lorenzo.Pieralisi
  Cc: will.deacon, catalin.marinas, hanjun.guo, shijie.huang,
	robert.richter, mw, linux-pci, linux-arm-kernel, linaro-acpi,
	andrea.gallo, linux-acpi, linux-kernel, al.stone, graeme.gregory,
	ddaney.cavm, okaya, Tomasz Nowicki

The series builds the PCI/MSI domain stack based on initial IORT driver
which is added in first place. As a reference please see IORT spec:
http://infocenter.arm.com/help/topic/com.arm.doc.den0049b/DEN0049B_IO_Remapping_Table.pdf

Tested on Cavium ThunderX server and Qualcomm Technologies server platform QDF2XXX.
The patches can be found here:
https://github.com/semihalf-nowicki-tomasz/linux.git (its-acpi-v11)

v10 -> v11
- rebased against v4.8-rc6
- bug fix for iort_match_node_callback() error handling
- patch 1-2 changelog updates

v9 -> v10
- error handling improvements for iort_match_node_callback() but no functional changes
- iort.h -> acpi_iort.h header name change
- style improvements

v8 -> v9
- rebased against v4.8-rc4
- move root IORT pointer validation to one place iort_scan_node()
- function names & Kconfig option name improvements
- remove annoying dev_err() appearances for non-IORT users
- for debug purpose print full ITS resource range

v7 -> v8
- rebased against v4.8-rc1
- move IORT support under new drivers/acpi/arm64 directory
- memory leak fix for iort_match_node_callback()
- iort_node_map_rid() algorithm improvements
- fix RID match check in iort_id_map()
- fix typos and white spaces

v6 -> v7
- rebased against irq/irqchip-4.8
- improvements for IORT ID mapping
- call IORT init call from acpi_init() instead of arch_initcall()
- split IORT driver in to two parts: core and ITS/MSI

v5 -> v6
- added locking mechanism for IORT list with domain token
- IORT function name improvements
- extended IORT RID mapping helper
- reworked IORT to be more SMMU friendly
- IORT functions which map RID and find corresponding domain are not
  PCI specific any more (struct pci_dev -> struct device)
- bug fixes

v4 -> v5
- rebased against v4.7-rc1
- drop generic layer and call IORT functions directly
- improve resource abstraction and string formatting

v3 -> v4
- rebased against v4.5
- add ACPI support for IRQ domain handling on a per-device basis
- reorder domain setup step
- improve error handling
- code style improvements

v2 -> v3
- rebased on top of 4.4
- fixes and improvements for redistributor init via GICC structures
- fixes as per kbuild reports

v1 -> v2
- rebased on top of 4.4-rc4
- use pci_msi_domain_get_msi_rid for requester ID to device ID translation

Tomasz Nowicki (8):
  ACPI: I/O Remapping Table (IORT) initial support
  ACPI: Add new IORT functions to support MSI domain handling
  PCI/MSI: Setup MSI domain on a per-device basis using IORT ACPI table
  irqchip/gicv3-its: Cleanup for ITS domain initialization
  irqchip/gicv3-its: Refactor ITS DT init code to prepare for ACPI
  irqchip/gicv3-its: Probe ITS in the ACPI way
  irqchip/gicv3-its: Factor out PCI-MSI part that might be reused for
    ACPI
  irqchip/gicv3-its: Use MADT ITS subtable to do PCI/MSI domain
    initialization

 drivers/acpi/Kconfig                     |   4 +
 drivers/acpi/Makefile                    |   2 +
 drivers/acpi/arm64/Kconfig               |   6 +
 drivers/acpi/arm64/Makefile              |   1 +
 drivers/acpi/arm64/iort.c                | 366 +++++++++++++++++++++++++++++++
 drivers/acpi/bus.c                       |   2 +
 drivers/irqchip/Kconfig                  |   1 +
 drivers/irqchip/irq-gic-v3-its-pci-msi.c |  88 ++++++--
 drivers/irqchip/irq-gic-v3-its.c         | 171 +++++++++++----
 drivers/irqchip/irq-gic-v3.c             |   7 +-
 drivers/pci/msi.c                        |  11 +-
 include/linux/acpi_iort.h                |  42 ++++
 include/linux/irqchip/arm-gic-v3.h       |   4 +-
 13 files changed, 635 insertions(+), 70 deletions(-)
 create mode 100644 drivers/acpi/arm64/Kconfig
 create mode 100644 drivers/acpi/arm64/Makefile
 create mode 100644 drivers/acpi/arm64/iort.c
 create mode 100644 include/linux/acpi_iort.h

-- 
1.9.1

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2016-09-23 12:30 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-12 18:32 [PATCH V11 0/8] Introduce ACPI world to ITS irqchip Tomasz Nowicki
2016-09-12 18:32 ` [PATCH V11 1/8] ACPI: I/O Remapping Table (IORT) initial support Tomasz Nowicki
2016-09-12 18:54   ` [UPDATE PATCH " Tomasz Nowicki
2016-09-12 18:58     ` Tomasz Nowicki
2016-09-12 19:36       ` Marc Zyngier
2016-09-12 18:32 ` [PATCH V11 2/8] ACPI: Add new IORT functions to support MSI domain handling Tomasz Nowicki
2016-09-12 18:32 ` [PATCH V11 3/8] PCI/MSI: Setup MSI domain on a per-device basis using IORT ACPI table Tomasz Nowicki
2016-09-12 18:32 ` [PATCH V11 4/8] irqchip/gicv3-its: Cleanup for ITS domain initialization Tomasz Nowicki
2016-09-12 18:32 ` [PATCH V11 5/8] irqchip/gicv3-its: Refactor ITS DT init code to prepare for ACPI Tomasz Nowicki
2016-09-12 18:32 ` [PATCH V11 6/8] irqchip/gicv3-its: Probe ITS in the ACPI way Tomasz Nowicki
2016-09-12 18:32 ` [PATCH V11 7/8] irqchip/gicv3-its: Factor out PCI-MSI part that might be reused for ACPI Tomasz Nowicki
2016-09-12 18:32 ` [PATCH V11 8/8] irqchip/gicv3-its: Use MADT ITS subtable to do PCI/MSI domain initialization Tomasz Nowicki
2016-09-23 12:30 ` [PATCH V11 0/8] Introduce ACPI world to ITS irqchip Auger Eric

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).