> -----Original Message----- > From: Nipun Gupta [mailto:nipun.gu...@nxp.com] > Sent: Wednesday, June 29, 2016 12:15 PM > To: gre...@linuxfoundation.org; Stuart Yoder <stuart.yo...@nxp.com> > Cc: de...@driverdev.osuosl.org; linux-kernel@vger.kernel.org; Nipun Gupta > <nipun.gu...@nxp.com>; Bharat > Bhushan <bharat.bhus...@nxp.com> > Subject: [PATCH v2] fsl-mc: add helper macro to determine if a device is of > fsl_mc type > > Add a helper macro to return if a device has a bus type of fsl_mc. > This makes the bus driver code more readable and provides a way for > drivers like the SMMU driver to easily check the bus type. > > Signed-off-by: Nipun Gupta <nipun.gu...@nxp.com> > Signed-off-by: Bharat Bhushan <bharat.bhus...@nxp.com> > --- > drivers/staging/fsl-mc/bus/dprc-driver.c | 4 ++-- > drivers/staging/fsl-mc/bus/irq-gic-v3-its-fsl-mc-msi.c | 2 +- > drivers/staging/fsl-mc/bus/mc-allocator.c | 6 +++--- > drivers/staging/fsl-mc/bus/mc-bus.c | 6 +++--- > drivers/staging/fsl-mc/include/mc.h | 7 +++++++ > 5 files changed, 16 insertions(+), 9 deletions(-) > > diff --git a/drivers/staging/fsl-mc/bus/dprc-driver.c > b/drivers/staging/fsl-mc/bus/dprc-driver.c > index 7fc4717..cd6d75a 100644 > --- a/drivers/staging/fsl-mc/bus/dprc-driver.c > +++ b/drivers/staging/fsl-mc/bus/dprc-driver.c > @@ -649,7 +649,7 @@ static int dprc_probe(struct fsl_mc_device *mc_dev) > /* > * This is a child DPRC: > */ > - if (WARN_ON(parent_dev->bus != &fsl_mc_bus_type)) > + if (WARN_ON(!dev_is_fsl_mc(parent_dev))) > return -EINVAL; > > if (WARN_ON(mc_dev->obj_desc.region_count == 0)) > @@ -681,7 +681,7 @@ static int dprc_probe(struct fsl_mc_device *mc_dev) > */ > struct irq_domain *mc_msi_domain; > > - if (WARN_ON(parent_dev->bus == &fsl_mc_bus_type)) > + if (WARN_ON(dev_is_fsl_mc(parent_dev))) > return -EINVAL; > > error = fsl_mc_find_msi_domain(parent_dev, > diff --git a/drivers/staging/fsl-mc/bus/irq-gic-v3-its-fsl-mc-msi.c > b/drivers/staging/fsl-mc/bus/irq- > gic-v3-its-fsl-mc-msi.c > index 720e2b0..d0c20d6 100644 > --- a/drivers/staging/fsl-mc/bus/irq-gic-v3-its-fsl-mc-msi.c > +++ b/drivers/staging/fsl-mc/bus/irq-gic-v3-its-fsl-mc-msi.c > @@ -35,7 +35,7 @@ static int its_fsl_mc_msi_prepare(struct irq_domain > *msi_domain, > struct fsl_mc_device *mc_bus_dev; > struct msi_domain_info *msi_info; > > - if (WARN_ON(dev->bus != &fsl_mc_bus_type)) > + if (WARN_ON(!dev_is_fsl_mc(dev))) > return -EINVAL; > > mc_bus_dev = to_fsl_mc_device(dev); > diff --git a/drivers/staging/fsl-mc/bus/mc-allocator.c > b/drivers/staging/fsl-mc/bus/mc-allocator.c > index fb08f22..9216c32 100644 > --- a/drivers/staging/fsl-mc/bus/mc-allocator.c > +++ b/drivers/staging/fsl-mc/bus/mc-allocator.c > @@ -281,7 +281,7 @@ int __must_check fsl_mc_portal_allocate(struct > fsl_mc_device *mc_dev, > if (mc_dev->flags & FSL_MC_IS_DPRC) { > mc_bus_dev = mc_dev; > } else { > - if (WARN_ON(mc_dev->dev.parent->bus != &fsl_mc_bus_type)) > + if (WARN_ON(!dev_is_fsl_mc(mc_dev->dev.parent))) > return error; > > mc_bus_dev = to_fsl_mc_device(mc_dev->dev.parent); > @@ -420,7 +420,7 @@ int __must_check fsl_mc_object_allocate(struct > fsl_mc_device *mc_dev, > if (WARN_ON(mc_dev->flags & FSL_MC_IS_DPRC)) > goto error; > > - if (WARN_ON(mc_dev->dev.parent->bus != &fsl_mc_bus_type)) > + if (WARN_ON(!dev_is_fsl_mc(mc_dev->dev.parent))) > goto error; > > if (WARN_ON(pool_type == FSL_MC_POOL_DPMCP)) > @@ -678,7 +678,7 @@ static int fsl_mc_allocator_probe(struct fsl_mc_device > *mc_dev) > return -EINVAL; > > mc_bus_dev = to_fsl_mc_device(mc_dev->dev.parent); > - if (WARN_ON(mc_bus_dev->dev.bus != &fsl_mc_bus_type)) > + if (WARN_ON(!dev_is_fsl_mc(&mc_bus_dev->dev))) > return -EINVAL; > > mc_bus = to_fsl_mc_bus(mc_bus_dev); > diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c > b/drivers/staging/fsl-mc/bus/mc-bus.c > index 4053643..098f07c 100644 > --- a/drivers/staging/fsl-mc/bus/mc-bus.c > +++ b/drivers/staging/fsl-mc/bus/mc-bus.c > @@ -207,11 +207,11 @@ static void fsl_mc_get_root_dprc(struct device *dev, > { > if (WARN_ON(!dev)) { > *root_dprc_dev = NULL; > - } else if (WARN_ON(dev->bus != &fsl_mc_bus_type)) { > + } else if (WARN_ON(!dev_is_fsl_mc(dev))) { > *root_dprc_dev = NULL; > } else { > *root_dprc_dev = dev; > - while ((*root_dprc_dev)->parent->bus == &fsl_mc_bus_type) > + while (dev_is_fsl_mc((*root_dprc_dev)->parent)) > *root_dprc_dev = (*root_dprc_dev)->parent; > } > } > @@ -405,7 +405,7 @@ int fsl_mc_device_add(struct dprc_obj_desc *obj_desc, > struct fsl_mc_bus *mc_bus = NULL; > struct fsl_mc_device *parent_mc_dev; > > - if (parent_dev->bus == &fsl_mc_bus_type) > + if (dev_is_fsl_mc(parent_dev)) > parent_mc_dev = to_fsl_mc_device(parent_dev); > else > parent_mc_dev = NULL; > diff --git a/drivers/staging/fsl-mc/include/mc.h > b/drivers/staging/fsl-mc/include/mc.h > index ac7c1ce..91213f5 100644 > --- a/drivers/staging/fsl-mc/include/mc.h > +++ b/drivers/staging/fsl-mc/include/mc.h > @@ -183,6 +183,13 @@ struct fsl_mc_device { > #define to_fsl_mc_device(_dev) \ > container_of(_dev, struct fsl_mc_device, dev) > > +#ifdef CONFIG_FSL_MC_BUS > +#define dev_is_fsl_mc(_dev) ((_dev)->bus == &fsl_mc_bus_type) > +#else > +/* If fsl-mc bus is not present device cannot belong to fsl-mc bus */ > +#define dev_is_fsl_mc(_dev) (0) > +#endif > + > /* > * module_fsl_mc_driver() - Helper macro for drivers that don't do > * anything special in module init/exit. This eliminates a lot of > -- > 1.9.1
Acked-by: Stuart Yoder <stuart.yo...@nxp.com>