Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0c38011a authored by Bjorn Helgaas's avatar Bjorn Helgaas
Browse files

Merge branch 'remotes/lorenzo/pci/dwc'

  - Add Kirin MSI support (Xiaowei Song)

  - Drop unnecessary root_bus_nr setting from exynos, imx6, keystone,
    armada8k, artpec6, designware-plat, histb, qcom, spear13xx (Shawn Guo)

  - Move link notification settings from DesignWare core to individual
    drivers (Gustavo Pimentel)

  - Add endpoint library MSI-X interfaces (Gustavo Pimentel)

  - Correct signature of endpoint library IRQ interfaces (Gustavo Pimentel)

  - Add DesignWare endpoint library MSI-X callbacks (Gustavo Pimentel)

  - Add endpoint library MSI-X test support (Gustavo Pimentel)

* remotes/lorenzo/pci/dwc:
  PCI: endpoint: Add MSI set maximum restriction
  tools: PCI: Add MSI-X support
  pci_endpoint_test: Add 2 ioctl commands
  pci-epf-test/pci_endpoint_test: Add MSI-X support
  pci-epf-test/pci_endpoint_test: Use irq_type module parameter
  pci-epf-test/pci_endpoint_test: Cleanup PCI_ENDPOINT_TEST memspace
  PCI: dwc: Add legacy interrupt callback handler
  PCI: dwc: Rework MSI callbacks handler
  PCI: dwc: Add MSI-X callbacks handler
  PCI: Update xxx_pcie_ep_raise_irq() and pci_epc_raise_irq() signatures
  PCI: endpoint: Add MSI-X interfaces
  PCI: dwc: Fix EP link notification implementation
  PCI: spear13xx: Drop unnecessary root_bus_nr setting
  PCI: qcom: Drop unnecessary root_bus_nr setting
  PCI: histb: Drop unnecessary root_bus_nr setting
  PCI: designware-plat: Drop unnecessary root_bus_nr setting
  PCI: artpec6: Drop unnecessary root_bus_nr setting
  PCI: armada8k: Drop unnecessary root_bus_nr setting
  PCI: keystone: Drop unnecessary root_bus_nr setting
  PCI: imx6: Drop unnecessary root_bus_nr setting
  PCI: exynos: Drop unnecessary root_bus_nr setting
  PCI: kirin: Add MSI support
parents 37f0e311 15c972df
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -15,3 +15,5 @@ subsys_id : don't care
interrupt_pin	 : Should be 1 - INTA, 2 - INTB, 3 - INTC, 4 -INTD
interrupt_pin	 : Should be 1 - INTA, 2 - INTB, 3 - INTC, 4 -INTD
msi_interrupts	 : Should be 1 to 32 depending on the number of MSI interrupts
msi_interrupts	 : Should be 1 to 32 depending on the number of MSI interrupts
		   to test
		   to test
msix_interrupts	 : Should be 1 to 2048 depending on the number of MSI-X
		   interrupts to test
+2 −2
Original line number Original line Diff line number Diff line
@@ -44,7 +44,7 @@ by the PCI controller driver.
	 * clear_bar: ops to reset the BAR
	 * clear_bar: ops to reset the BAR
	 * alloc_addr_space: ops to allocate in PCI controller address space
	 * alloc_addr_space: ops to allocate in PCI controller address space
	 * free_addr_space: ops to free the allocated address space
	 * free_addr_space: ops to free the allocated address space
	 * raise_irq: ops to raise a legacy or MSI interrupt
	 * raise_irq: ops to raise a legacy, MSI or MSI-X interrupt
	 * start: ops to start the PCI link
	 * start: ops to start the PCI link
	 * stop: ops to stop the PCI link
	 * stop: ops to stop the PCI link


@@ -96,7 +96,7 @@ by the PCI endpoint function driver.
*) pci_epc_raise_irq()
*) pci_epc_raise_irq()


   The PCI endpoint function driver should use pci_epc_raise_irq() to raise
   The PCI endpoint function driver should use pci_epc_raise_irq() to raise
   Legacy Interrupt or MSI Interrupt.
   Legacy Interrupt, MSI or MSI-X Interrupt.


*) pci_epc_mem_alloc_addr()
*) pci_epc_mem_alloc_addr()


+25 −4
Original line number Original line Diff line number Diff line
@@ -20,6 +20,8 @@ The PCI endpoint test device has the following registers:
	5) PCI_ENDPOINT_TEST_DST_ADDR
	5) PCI_ENDPOINT_TEST_DST_ADDR
	6) PCI_ENDPOINT_TEST_SIZE
	6) PCI_ENDPOINT_TEST_SIZE
	7) PCI_ENDPOINT_TEST_CHECKSUM
	7) PCI_ENDPOINT_TEST_CHECKSUM
	8) PCI_ENDPOINT_TEST_IRQ_TYPE
	9) PCI_ENDPOINT_TEST_IRQ_NUMBER


*) PCI_ENDPOINT_TEST_MAGIC
*) PCI_ENDPOINT_TEST_MAGIC


@@ -34,10 +36,10 @@ that the endpoint device must perform.
Bitfield Description:
Bitfield Description:
  Bit 0		: raise legacy IRQ
  Bit 0		: raise legacy IRQ
  Bit 1		: raise MSI IRQ
  Bit 1		: raise MSI IRQ
  Bit 2 - 7	: MSI interrupt number
  Bit 2		: raise MSI-X IRQ
  Bit 8		: read command (read data from RC buffer)
  Bit 3		: read command (read data from RC buffer)
  Bit 9		: write command (write data to RC buffer)
  Bit 4		: write command (write data to RC buffer)
  Bit 10	: copy command (copy data from one RC buffer to another
  Bit 5		: copy command (copy data from one RC buffer to another
		  RC buffer)
		  RC buffer)


*) PCI_ENDPOINT_TEST_STATUS
*) PCI_ENDPOINT_TEST_STATUS
@@ -64,3 +66,22 @@ COPY/READ command.


This register contains the destination address (RC buffer address) for
This register contains the destination address (RC buffer address) for
the COPY/WRITE command.
the COPY/WRITE command.

*) PCI_ENDPOINT_TEST_IRQ_TYPE

This register contains the interrupt type (Legacy/MSI) triggered
for the READ/WRITE/COPY and raise IRQ (Legacy/MSI) commands.

Possible types:
 - Legacy	: 0
 - MSI		: 1
 - MSI-X	: 2

*) PCI_ENDPOINT_TEST_IRQ_NUMBER

This register contains the triggered ID interrupt.

Admissible values:
 - Legacy	: 0
 - MSI		: [1 .. 32]
 - MSI-X	: [1 .. 2048]
+27 −3
Original line number Original line Diff line number Diff line
@@ -45,9 +45,9 @@ The PCI endpoint framework populates the directory with the following
configurable fields.
configurable fields.


	# ls functions/pci_epf_test/func1
	# ls functions/pci_epf_test/func1
	  baseclass_code	interrupt_pin	revid		subsys_vendor_id
	  baseclass_code	interrupt_pin	progif_code	subsys_id
	  cache_line_size	msi_interrupts	subclass_code	vendorid
	  cache_line_size	msi_interrupts	revid		subsys_vendorid
	  deviceid          	progif_code	subsys_id
	  deviceid          	msix_interrupts	subclass_code	vendorid


The PCI endpoint function driver populates these entries with default values
The PCI endpoint function driver populates these entries with default values
when the device is bound to the driver. The pci-epf-test driver populates
when the device is bound to the driver. The pci-epf-test driver populates
@@ -67,6 +67,7 @@ device, the following commands can be used.
	# echo 0x104c > functions/pci_epf_test/func1/vendorid
	# echo 0x104c > functions/pci_epf_test/func1/vendorid
	# echo 0xb500 > functions/pci_epf_test/func1/deviceid
	# echo 0xb500 > functions/pci_epf_test/func1/deviceid
	# echo 16 > functions/pci_epf_test/func1/msi_interrupts
	# echo 16 > functions/pci_epf_test/func1/msi_interrupts
	# echo 8 > functions/pci_epf_test/func1/msix_interrupts


1.5 Binding pci-epf-test Device to EP Controller
1.5 Binding pci-epf-test Device to EP Controller


@@ -120,7 +121,9 @@ following commands.


	Interrupt tests
	Interrupt tests


	SET IRQ TYPE TO LEGACY:         OKAY
	LEGACY IRQ:     NOT OKAY
	LEGACY IRQ:     NOT OKAY
	SET IRQ TYPE TO MSI:            OKAY
	MSI1:           OKAY
	MSI1:           OKAY
	MSI2:           OKAY
	MSI2:           OKAY
	MSI3:           OKAY
	MSI3:           OKAY
@@ -153,9 +156,30 @@ following commands.
	MSI30:          NOT OKAY
	MSI30:          NOT OKAY
	MSI31:          NOT OKAY
	MSI31:          NOT OKAY
	MSI32:          NOT OKAY
	MSI32:          NOT OKAY
	SET IRQ TYPE TO MSI-X:          OKAY
	MSI-X1:         OKAY
	MSI-X2:         OKAY
	MSI-X3:         OKAY
	MSI-X4:         OKAY
	MSI-X5:         OKAY
	MSI-X6:         OKAY
	MSI-X7:         OKAY
	MSI-X8:         OKAY
	MSI-X9:         NOT OKAY
	MSI-X10:        NOT OKAY
	MSI-X11:        NOT OKAY
	MSI-X12:        NOT OKAY
	MSI-X13:        NOT OKAY
	MSI-X14:        NOT OKAY
	MSI-X15:        NOT OKAY
	MSI-X16:        NOT OKAY
	[...]
	MSI-X2047:      NOT OKAY
	MSI-X2048:      NOT OKAY


	Read Tests
	Read Tests


	SET IRQ TYPE TO MSI:            OKAY
	READ (      1 bytes):           OKAY
	READ (      1 bytes):           OKAY
	READ (   1024 bytes):           OKAY
	READ (   1024 bytes):           OKAY
	READ (   1025 bytes):           OKAY
	READ (   1025 bytes):           OKAY
+1 −0
Original line number Original line Diff line number Diff line
@@ -166,6 +166,7 @@ Code Seq#(hex) Include File Comments
'P'	all	linux/soundcard.h	conflict!
'P'	all	linux/soundcard.h	conflict!
'P'	60-6F	sound/sscape_ioctl.h	conflict!
'P'	60-6F	sound/sscape_ioctl.h	conflict!
'P'	00-0F	drivers/usb/class/usblp.c	conflict!
'P'	00-0F	drivers/usb/class/usblp.c	conflict!
'P'	01-09	drivers/misc/pci_endpoint_test.c	conflict!
'Q'	all	linux/soundcard.h
'Q'	all	linux/soundcard.h
'R'	00-1F	linux/random.h		conflict!
'R'	00-1F	linux/random.h		conflict!
'R'	01	linux/rfkill.h		conflict!
'R'	01	linux/rfkill.h		conflict!
Loading