On Thu, Sep 24, 2015 at 12:05:18AM +0800, Chen-Yu Tsai wrote: > +static int sunxi_rsb_device_probe(struct device *dev) > +{ > + const struct sunxi_rsb_driver *drv = to_sunxi_rsb_driver(dev->driver); > + struct sunxi_rsb_device *rdev = to_sunxi_rsb_device(dev); > + int ret; > + > + if (dev->bus != &sunxi_rsb_bus) > + return 0; That's a bit worrying... why might this get called for something other than a rsb device? > +struct regmap *devm_regmap_init_sunxi_rsb(struct sunxi_rsb_device *rdev, > + const struct regmap_config *config); This should work most of the time but you might want to take a look at the changes introduced in 3cfe7a74d42b (regmap: Use different lockdep class for each regmap init call) and follow a similar pattern for RSB to avoid spurious lockdep warnings in some configurations - see the commit log for that change for a full explanation. Otherwise the regmap bit of this looks good, I'll try to have another look through at the rest of the code later.
Attachment:
signature.asc
Description: Digital signature