On Mon, Jun 06, 2016 at 02:26:22PM +0300, Jarkko Nikula wrote: > ACPI 5 specification doesn't have property for the I2C bus speed but > I2cSerialBus resource descriptors which define each controller-slave > connection define the maximum speed supported by that connection. > > Thus finding the maximum safe speed for the bus is to walk all > I2cSerialBus resources that are associated to I2C controller and use > the speed of slowest connection. > > Add function i2c_acpi_find_bus_speed() to the i2c-core that adapter > drivers can call prior registering itself to core. > > This implies two-step walk through the I2cSerialBus resources: call to > i2c_acpi_find_bus_speed() does the first scan and finds the safe bus > speed that adapter drivers can set up. Adapter driver registration does > the second scan when i2c-core creates the I2C slaves by calling the > i2c_acpi_register_devices(). In that way the bus speed is set in case > slave device probe gets called during registration and does > communication. > > Implement this by reusing the existing ACPI I2C walk routines in the > i2c-core. Extend them so that slowest connection speed is saved during > the walk and I2C slaves are registered only when calling through the > i2c_acpi_register_devices() with the i2c_adapter pointer. > > Signed-off-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx> Applied to for-next, thanks!
Attachment:
signature.asc
Description: PGP signature