diff options
author | Itai Katz <itai.katz@freescale.com> | 2015-10-04 10:09:50 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-10-04 09:55:45 +0100 |
commit | 14f928054a057edf80d154314946664bbc4c2a46 (patch) | |
tree | e80c9ce40524669acb2eb3dbae3f6fcccdb7b1b4 /drivers/staging/fsl-mc | |
parent | 9f31b6955932f9ec2dbf1a1e1827e18ce7239943 (diff) | |
download | talos-obmc-linux-14f928054a057edf80d154314946664bbc4c2a46.tar.gz talos-obmc-linux-14f928054a057edf80d154314946664bbc4c2a46.zip |
staging: fsl-mc: abstract test for existence of fsl-mc bus
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>
Diffstat (limited to 'drivers/staging/fsl-mc')
-rw-r--r-- | drivers/staging/fsl-mc/bus/mc-bus.c | 13 | ||||
-rw-r--r-- | drivers/staging/fsl-mc/include/mc.h | 2 |
2 files changed, 13 insertions, 2 deletions
diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c index 92e070237aa9..2aaeb3ae7c77 100644 --- a/drivers/staging/fsl-mc/bus/mc-bus.c +++ b/drivers/staging/fsl-mc/bus/mc-bus.c @@ -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; } diff --git a/drivers/staging/fsl-mc/include/mc.h b/drivers/staging/fsl-mc/include/mc.h index 860bf264404f..a933291e400a 100644 --- a/drivers/staging/fsl-mc/include/mc.h +++ b/drivers/staging/fsl-mc/include/mc.h @@ -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); |