On Sun, Oct 25, 2015 at 05:41:22PM -0500, Lijun Pan wrote: > Introduce the rescan attribute as a bus attribute to > synchronize the fsl-mc bus objects and the MC firmware. > > To rescan the fsl-mc bus, e.g., > echo 1 > /sys/bus/fsl-mc/rescan > > Signed-off-by: Lijun Pan <Lijun.Pan@xxxxxxxxxxxxx> > --- > drivers/staging/fsl-mc/bus/mc-bus.c | 46 +++++++++++++++++++++++++++++++++++++ > 1 file changed, 46 insertions(+) > > diff --git a/drivers/staging/fsl-mc/bus/mc-bus.c b/drivers/staging/fsl-mc/bus/mc-bus.c > index 33a56ad..f1baad7 100644 > --- a/drivers/staging/fsl-mc/bus/mc-bus.c > +++ b/drivers/staging/fsl-mc/bus/mc-bus.c > @@ -144,11 +144,57 @@ static const struct attribute_group *fsl_mc_dev_groups[] = { > NULL, > }; > > +static int scan_fsl_mc_bus(struct device *dev, void *data) > +{ > + struct fsl_mc_device *root_mc_dev; > + struct fsl_mc_bus *root_mc_bus; > + > + if (is_root_dprc(dev)) { > + root_mc_dev = to_fsl_mc_device(dev); > + root_mc_bus = to_fsl_mc_bus(root_mc_dev); > + mutex_lock(&root_mc_bus->scan_mutex); > + dprc_scan_objects(root_mc_dev); > + mutex_unlock(&root_mc_bus->scan_mutex); > + } > + > + return 0; > +} > + > +static ssize_t bus_rescan_store(struct bus_type *bus, > + const char *buf, size_t count) > +{ > + unsigned long val; > + > + if (kstrtoul(buf, 0, &val) < 0) > + return -EINVAL; > + > + if (val) > + bus_for_each_dev(bus, NULL, NULL, scan_fsl_mc_bus); > + > + return count; > +} > +static BUS_ATTR(rescan, (S_IWUSR|S_IWGRP), NULL, bus_rescan_store); > + > +static struct attribute *fsl_mc_bus_attrs[] = { > + &bus_attr_rescan.attr, > + NULL, > +}; > + > +static const struct attribute_group fsl_mc_bus_group = { > + .attrs = fsl_mc_bus_attrs, > +}; > + > +static const struct attribute_group *fsl_mc_bus_groups[] = { > + &fsl_mc_bus_group, > + NULL, > +}; > + > struct bus_type fsl_mc_bus_type = { > .name = "fsl-mc", > .match = fsl_mc_bus_match, > .uevent = fsl_mc_bus_uevent, > .dev_groups = fsl_mc_dev_groups, > + .bus_groups = fsl_mc_bus_groups, > }; > EXPORT_SYMBOL_GPL(fsl_mc_bus_type); No documentation update as well? _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel