cdx: don't select CONFIG_GENERIC_MSI_IRQ

x86 does not use CONFIG_GENERIC_MSI_IRQ, and trying to enable it anyway
results in a build failure:

In file included from include/linux/ssb/ssb.h:10,
                 from drivers/ssb/pcihost_wrapper.c:18:
include/linux/gpio/driver.h:41:33: error: field 'msiinfo' has incomplete type
   41 |         msi_alloc_info_t        msiinfo;
      |                                 ^~~~~~~
In file included from include/linux/kvm_host.h:19,
                 from arch/x86/events/intel/core.c:17:
include/linux/msi.h:528:33: error: field 'alloc_info' has incomplete type
  528 |         msi_alloc_info_t        alloc_info;

Change the driver to actually build without this symbol and remove the
incorrect 'select' statements.

Fixes: e8b18c1173 ("cdx: Fix missing GENERIC_MSI_IRQ on compile test")
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Reviewed-by: Nikhil Agarwal <nikhil.agarwal@amd.com>
Signed-off-by: Arnd Bergmann <arnd@kernel.org>
Signed-off-by: Nipun Gupta <nipun.gupta@amd.com>
Link: https://lore.kernel.org/r/20250826043852.2206008-1-nipun.gupta@amd.com
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
pull/1354/merge
Nipun Gupta 2025-08-26 10:08:51 +05:30 committed by Alex Williamson
parent fcf9ae9ec9
commit ab1d8dda32
4 changed files with 4 additions and 5 deletions

View File

@ -8,7 +8,6 @@
config CDX_BUS config CDX_BUS
bool "CDX Bus driver" bool "CDX Bus driver"
depends on OF && ARM64 || COMPILE_TEST depends on OF && ARM64 || COMPILE_TEST
select GENERIC_MSI_IRQ
help help
Driver to enable Composable DMA Transfer(CDX) Bus. CDX bus Driver to enable Composable DMA Transfer(CDX) Bus. CDX bus
exposes Fabric devices which uses composable DMA IP to the exposes Fabric devices which uses composable DMA IP to the

View File

@ -310,7 +310,7 @@ static int cdx_probe(struct device *dev)
* Setup MSI device data so that generic MSI alloc/free can * Setup MSI device data so that generic MSI alloc/free can
* be used by the device driver. * be used by the device driver.
*/ */
if (cdx->msi_domain) { if (IS_ENABLED(CONFIG_GENERIC_MSI_IRQ) && cdx->msi_domain) {
error = msi_setup_device_data(&cdx_dev->dev); error = msi_setup_device_data(&cdx_dev->dev);
if (error) if (error)
return error; return error;
@ -833,7 +833,7 @@ int cdx_device_add(struct cdx_dev_params *dev_params)
((cdx->id << CDX_CONTROLLER_ID_SHIFT) | (cdx_dev->bus_num & CDX_BUS_NUM_MASK)), ((cdx->id << CDX_CONTROLLER_ID_SHIFT) | (cdx_dev->bus_num & CDX_BUS_NUM_MASK)),
cdx_dev->dev_num); cdx_dev->dev_num);
if (cdx->msi_domain) { if (IS_ENABLED(CONFIG_GENERIC_MSI_IRQ) && cdx->msi_domain) {
cdx_dev->num_msi = dev_params->num_msi; cdx_dev->num_msi = dev_params->num_msi;
dev_set_msi_domain(&cdx_dev->dev, cdx->msi_domain); dev_set_msi_domain(&cdx_dev->dev, cdx->msi_domain);
} }

View File

@ -10,7 +10,6 @@ if CDX_BUS
config CDX_CONTROLLER config CDX_CONTROLLER
tristate "CDX bus controller" tristate "CDX bus controller"
depends on HAS_DMA depends on HAS_DMA
select GENERIC_MSI_IRQ
select REMOTEPROC select REMOTEPROC
select RPMSG select RPMSG
help help

View File

@ -193,7 +193,8 @@ static int xlnx_cdx_probe(struct platform_device *pdev)
cdx->ops = &cdx_ops; cdx->ops = &cdx_ops;
/* Create MSI domain */ /* Create MSI domain */
cdx->msi_domain = cdx_msi_domain_init(&pdev->dev); if (IS_ENABLED(CONFIG_GENERIC_MSI_IRQ))
cdx->msi_domain = cdx_msi_domain_init(&pdev->dev);
if (!cdx->msi_domain) { if (!cdx->msi_domain) {
ret = dev_err_probe(&pdev->dev, -ENODEV, "cdx_msi_domain_init() failed"); ret = dev_err_probe(&pdev->dev, -ENODEV, "cdx_msi_domain_init() failed");
goto cdx_msi_fail; goto cdx_msi_fail;