On Mon, Dec 22, 2014 at 03:15:49PM -0300, Walter Lozano wrote: > Currently, the driver is relying on a subsys_initcall() to register > the platform driver struct. This is typically done to allow early uses > of the I2C bus (for instance, I2C regulators used from early machine code). > > While this might work on some cases, it breaks on others. For instance, > I2C devices with GPIO-wired interrupts will fail to request the > interrupt because of this initcall usage. > > This commits attempts to fix the above issue, by converting the I2C > driver into a regular kernel platform driver. This guarantees it will > probe after GPIOs drivers. > > Platforms based on devicetree won't be affected by this change. Huh, why is that? > Legacy platforms, relying on the I2C being available early, might need > to implement proper defered mechanisms to overcome potential problems. NAK. We can't say "Let's cause a regression to force people to fix things that used to work" IMO. You exactly pointed out the problem that using subsys_initcall() creates. What about fixing the drivers you use to support deferred probing when acquitin the irq? Regards, Wolfram
Attachment:
signature.asc
Description: Digital signature