Re: [PATCH V3 0/2] i2c-designware: Baytrail bus locking driver
On 14/12/02 9:09, David E. Box wrote: Select Intel Baytrail platforms support PMIC's whose i2c bus may be controlled exclusively by platform hardware. This patch set adds support for i2c bus locking to the designware core and provides a driver module for managing the lock on these platforms. Since the lock on these systems isn't enumerable outside of the i2c platform driver, the locking functions are assigned at compile time. Have you ever look into the hwspinlock framework? It seems to me that such an exclusive operation between CPUs and external hardware blocks is exactly what hwspinlock is for. Further more hwspinlock takes care of exclusiveness between SMP cores. Ideally I would expect i2c-designware to have hwspinlock lock/unlock API calls on one I2C transaction, but it's not necessarily the case. Introducing such platform hooks (acquire_lock and release_lock) and keeping actual exclusive operataion outside the driver might be good for various usecases/platforms. Shinya -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH V3 0/2] i2c-designware: Baytrail bus locking driver
On 14/12/02 9:09, David E. Box wrote: Select Intel Baytrail platforms support PMIC's whose i2c bus may be controlled exclusively by platform hardware. This patch set adds support for i2c bus locking to the designware core and provides a driver module for managing the lock on these platforms. Since the lock on these systems isn't enumerable outside of the i2c platform driver, the locking functions are assigned at compile time. Have you ever look into the hwspinlock framework? It seems to me that such an exclusive operation between CPUs and external hardware blocks is exactly what hwspinlock is for. Further more hwspinlock takes care of exclusiveness between SMP cores. Ideally I would expect i2c-designware to have hwspinlock lock/unlock API calls on one I2C transaction, but it's not necessarily the case. Introducing such platform hooks (acquire_lock and release_lock) and keeping actual exclusive operataion outside the driver might be good for various usecases/platforms. Shinya -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH V3 0/2] i2c-designware: Baytrail bus locking driver
Select Intel Baytrail platforms support PMIC's whose i2c bus may be controlled exclusively by platform hardware. This patch set adds support for i2c bus locking to the designware core and provides a driver module for managing the lock on these platforms. Since the lock on these systems isn't enumerable outside of the i2c platform driver, the locking functions are assigned at compile time. V2: Moved semaphore detection out of dw platform driver Replaced function pointers with defined acquire/release functions in dw core. This helps elliminate the ifdefery in the dw platform driver. Use new has_hw_lock flag to check if the lock exists on a given bus. Use new pm_runtime_disabled flag to conditionally turnoff runtime pm in the dw platform driver. V3: Split lock support and driver into separate patches Change module build to bool. Platforms running without this driver cannot perform critical functions such as charging. Futhermore attempts by other drivers to access the i2c bus without a lock will hang the platform. Replaced has_hw_lock flag with acquire/release function pointers. Replaced acquire/release ifdef code with single i2c_dw_eval_lock_support() test for cleaner (if still undesireable) compile time scalability. Future Intel platforms will however continue to use the Baytrail driver. David E. Box (2): i2c-designware: Add i2c bus locking support i2c-designware: Add Intel Baytrail PMIC I2C bus support drivers/i2c/busses/Kconfig | 12 +++ drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-designware-baytrail.c | 155 +++ drivers/i2c/busses/i2c-designware-core.c | 11 ++ drivers/i2c/busses/i2c-designware-core.h | 12 +++ drivers/i2c/busses/i2c-designware-platdrv.c | 18 +++- 6 files changed, 204 insertions(+), 5 deletions(-) create mode 100644 drivers/i2c/busses/i2c-designware-baytrail.c -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH V3 0/2] i2c-designware: Baytrail bus locking driver
Select Intel Baytrail platforms support PMIC's whose i2c bus may be controlled exclusively by platform hardware. This patch set adds support for i2c bus locking to the designware core and provides a driver module for managing the lock on these platforms. Since the lock on these systems isn't enumerable outside of the i2c platform driver, the locking functions are assigned at compile time. V2: Moved semaphore detection out of dw platform driver Replaced function pointers with defined acquire/release functions in dw core. This helps elliminate the ifdefery in the dw platform driver. Use new has_hw_lock flag to check if the lock exists on a given bus. Use new pm_runtime_disabled flag to conditionally turnoff runtime pm in the dw platform driver. V3: Split lock support and driver into separate patches Change module build to bool. Platforms running without this driver cannot perform critical functions such as charging. Futhermore attempts by other drivers to access the i2c bus without a lock will hang the platform. Replaced has_hw_lock flag with acquire/release function pointers. Replaced acquire/release ifdef code with single i2c_dw_eval_lock_support() test for cleaner (if still undesireable) compile time scalability. Future Intel platforms will however continue to use the Baytrail driver. David E. Box (2): i2c-designware: Add i2c bus locking support i2c-designware: Add Intel Baytrail PMIC I2C bus support drivers/i2c/busses/Kconfig | 12 +++ drivers/i2c/busses/Makefile | 1 + drivers/i2c/busses/i2c-designware-baytrail.c | 155 +++ drivers/i2c/busses/i2c-designware-core.c | 11 ++ drivers/i2c/busses/i2c-designware-core.h | 12 +++ drivers/i2c/busses/i2c-designware-platdrv.c | 18 +++- 6 files changed, 204 insertions(+), 5 deletions(-) create mode 100644 drivers/i2c/busses/i2c-designware-baytrail.c -- 1.9.1 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/