mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
fsl-mc: Switch over to per-device platform MSI
Obtain the msi-parent irqdomain instead of the fsl_mc domain, which magically engages the per-device infrastructure. Additionally, simplify the overly complicated error handling. Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com> Tested-by: Ioana Ciornei <ioana.ciornei@nxp.com> # LX2160ARDB, LS2088ARDB Tested-by: Sascha Bischoff <sascha.bischoff@arm.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Acked-by: Thomas Gleixner <tglx@kernel.org> Link: https://lore.kernel.org/r/20260224100936.3752303-5-maz@kernel.org Signed-off-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>
This commit is contained in:
parent
cf3179b4e5
commit
4a958e47c2
|
|
@ -609,9 +609,8 @@ int dprc_setup(struct fsl_mc_device *mc_dev)
|
|||
{
|
||||
struct device *parent_dev = mc_dev->dev.parent;
|
||||
struct fsl_mc_bus *mc_bus = to_fsl_mc_bus(mc_dev);
|
||||
struct irq_domain *mc_msi_domain;
|
||||
struct irq_domain *mc_msi_domain = NULL;
|
||||
bool mc_io_created = false;
|
||||
bool msi_domain_set = false;
|
||||
bool uapi_created = false;
|
||||
u16 major_ver, minor_ver;
|
||||
size_t region_size;
|
||||
|
|
@ -652,14 +651,12 @@ int dprc_setup(struct fsl_mc_device *mc_dev)
|
|||
uapi_created = true;
|
||||
}
|
||||
|
||||
mc_msi_domain = fsl_mc_find_msi_domain(&mc_dev->dev);
|
||||
if (!mc_msi_domain) {
|
||||
mc_msi_domain = fsl_mc_get_msi_parent(&mc_dev->dev);
|
||||
if (!mc_msi_domain)
|
||||
dev_warn(&mc_dev->dev,
|
||||
"WARNING: MC bus without interrupt support\n");
|
||||
} else {
|
||||
else
|
||||
dev_set_msi_domain(&mc_dev->dev, mc_msi_domain);
|
||||
msi_domain_set = true;
|
||||
}
|
||||
|
||||
error = dprc_open(mc_dev->mc_io, 0, mc_dev->obj_desc.id,
|
||||
&mc_dev->mc_handle);
|
||||
|
|
@ -699,8 +696,7 @@ int dprc_setup(struct fsl_mc_device *mc_dev)
|
|||
(void)dprc_close(mc_dev->mc_io, 0, mc_dev->mc_handle);
|
||||
|
||||
error_cleanup_msi_domain:
|
||||
if (msi_domain_set)
|
||||
dev_set_msi_domain(&mc_dev->dev, NULL);
|
||||
dev_set_msi_domain(&mc_dev->dev, NULL);
|
||||
|
||||
if (mc_io_created) {
|
||||
fsl_destroy_mc_io(mc_dev->mc_io);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user