Messages in this thread | | | Date | Mon, 22 Dec 2014 20:02:33 +0100 | From | Wolfram Sang <> | Subject | Re: [RFC] i2c: designware: Avoid initcall and initialize the driver like a regular one |
| |
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 [unhandled content-type:application/pgp-signature] | |