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.

Signed-off-by: Marc Zyngier <[email protected]>
---
 drivers/bus/fsl-mc/dprc-driver.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/drivers/bus/fsl-mc/dprc-driver.c b/drivers/bus/fsl-mc/dprc-driver.c
index c63a7e688db6a..8ee5fb3c2d416 100644
--- a/drivers/bus/fsl-mc/dprc-driver.c
+++ b/drivers/bus/fsl-mc/dprc-driver.c
@@ -620,9 +620,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;
@@ -663,14 +662,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);
@@ -710,8 +707,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);
-- 
2.47.3


Reply via email to