cdx: add MSI support for CDX bus
authorNipun Gupta <nipun.gupta@amd.com>
Mon, 26 Feb 2024 08:28:16 +0000 (13:58 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 7 Mar 2024 21:52:03 +0000 (21:52 +0000)
commit0e439ba38e615e505404b3935585f1898bafaea9
tree709940488debd9b540d1074977003c165a8356fa
parente3a59056a655975868863a80fc8c05cb25e3b866
cdx: add MSI support for CDX bus

Add CDX-MSI domain per CDX controller with gic-its domain as
a parent, to support MSI for CDX devices. CDX devices allocate
MSIs from the CDX domain. Also, introduce APIs to alloc and free
IRQs for CDX domain.

In CDX subsystem firmware is a controller for all devices and
their configuration. CDX bus controller sends all the write_msi_msg
commands to firmware running on RPU and the firmware interfaces with
actual devices to pass this information to devices

Since, CDX controller is the only way to communicate with the Firmware
for MSI write info, CDX domain per controller required in contrast to
having a CDX domain per device.

Co-developed-by: Nikhil Agarwal <nikhil.agarwal@amd.com>
Signed-off-by: Nikhil Agarwal <nikhil.agarwal@amd.com>
Co-developed-by: Abhijit Gangurde <abhijit.gangurde@amd.com>
Signed-off-by: Abhijit Gangurde <abhijit.gangurde@amd.com>
Signed-off-by: Nipun Gupta <nipun.gupta@amd.com>
Reviewed-by: Pieter Jansen van Vuuren <pieter.jansen-van-vuuren@amd.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Nikhil Agarwal <nikhil.agarwal@amd.com>
Link: https://lore.kernel.org/r/20240226082816.100872-1-nipun.gupta@amd.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/cdx/Makefile
drivers/cdx/cdx.c
drivers/cdx/cdx.h
drivers/cdx/cdx_msi.c [new file with mode: 0644]
drivers/cdx/controller/Kconfig
drivers/cdx/controller/cdx_controller.c
drivers/cdx/controller/mc_cdx_pcol.h
drivers/cdx/controller/mcdi_functions.c
drivers/cdx/controller/mcdi_functions.h
include/linux/cdx/cdx_bus.h