staging: fsl-mc: abstract test for existence of fsl-mc bus
authorItai Katz <itai.katz@freescale.com>
Sun, 4 Oct 2015 07:09:50 +0000 (10:09 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 4 Oct 2015 08:55:45 +0000 (09:55 +0100)
Add function to test for existence of an fsl-mc bus instance
instead of doing this by looking directly at a field in the
bus type struct.

Signed-off-by: Itai Katz <itai.katz@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/fsl-mc/bus/mc-bus.c
drivers/staging/fsl-mc/include/mc.h

index 92e070237aa9913d8cecd5286ddc6ce7cd50ea18..2aaeb3ae7c77bb9d11673a3b0fa203eb74d14b5e 100644 (file)
@@ -39,7 +39,7 @@ static int fsl_mc_bus_match(struct device *dev, struct device_driver *drv)
        bool major_version_mismatch = false;
        bool minor_version_mismatch = false;
 
-       if (WARN_ON(!fsl_mc_bus_type.dev_root))
+       if (WARN_ON(!fsl_mc_bus_exists()))
                goto out;
 
        if (!mc_drv->match_id_table)
@@ -206,6 +206,15 @@ void fsl_mc_driver_unregister(struct fsl_mc_driver *mc_driver)
 }
 EXPORT_SYMBOL_GPL(fsl_mc_driver_unregister);
 
+/**
+ * fsl_mc_bus_exists - check if a root dprc exists
+ */
+bool fsl_mc_bus_exists(void)
+{
+       return fsl_mc_bus_type.dev_root;
+}
+EXPORT_SYMBOL_GPL(fsl_mc_bus_exists);
+
 static int get_dprc_icid(struct fsl_mc_io *mc_io,
                         int container_id, u16 *icid)
 {
@@ -407,7 +416,7 @@ int fsl_mc_device_add(struct dprc_obj_desc *obj_desc,
 
                        mc_io2 = mc_io;
 
-                       if (!fsl_mc_bus_type.dev_root)
+                       if (!fsl_mc_bus_exists())
                                fsl_mc_bus_type.dev_root = &mc_dev->dev;
                }
 
index 860bf264404f73bc547dd3c1b1783ea19dee2c64..a933291e400ae5e24a8e571373d2e3b5fc7f484b 100644 (file)
@@ -182,6 +182,8 @@ int __must_check __fsl_mc_driver_register(struct fsl_mc_driver *fsl_mc_driver,
 
 void fsl_mc_driver_unregister(struct fsl_mc_driver *driver);
 
+bool fsl_mc_bus_exists(void);
+
 int __must_check fsl_mc_portal_allocate(struct fsl_mc_device *mc_dev,
                                        u16 mc_io_flags,
                                        struct fsl_mc_io **new_mc_io);