lkml.org 
[lkml]   [2022]   [Jan]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH 0/2] i2c-designware: Add support for AMD PSP semaphore
    Date
    This patchset comprises support for new i2c-designware controller setup on some
    AMD Cezanne SoCs, where x86 is sharing i2c bus with PSP. PSP uses the same
    controller and acts as an i2c arbitrator there (x86 is leasing bus from it).

    First commit aims to improve generic i2c-designware code by adding extra locking
    on probe() and disable() paths. I would like to ask someone with access to
    boards which use Intel BayTrail(CONFIG_I2C_DESIGNWARE_BAYTRAIL) to verify
    behavior of my changes on such setup.

    Second commit adds support for new PSP semaphore arbitration mechanism.
    Implementation is similar to the one from i2c-designware-baytrail.c however
    there are two main differences:
    1) Add new ACPI ID in order to protect against silent binding of the old driver
    to the setup with PSP semaphore. Extra flag ARBITRATION_SEMAPHORE added to this
    new _HID allows to recognize setup with PSP.
    2) Beside acquire_lock() and release_lock() methods we are also applying quirks
    to the lock_bus() and unlock_bus() global adapter methods. With this in place
    all i2c clients drivers may lock i2c bus for a desired number of i2c
    transactions (e.g. write-wait-read) without being aware of that such bus is
    shared with another entity.

    This patchset is a follow-up to the RFC sent earlier on LKML [1], with review
    comments applied.

    Looking forward to some feedback.

    [1] https://lkml.org/lkml/2021/12/22/219

    Jan Dabros (2):
    i2c: designware: Add missing locks
    i2c: designware: Add AMD PSP I2C bus support

    MAINTAINERS | 1 +
    drivers/acpi/acpi_apd.c | 1 +
    drivers/i2c/busses/Kconfig | 10 +
    drivers/i2c/busses/Makefile | 1 +
    drivers/i2c/busses/i2c-designware-amdpsp.c | 357 +++++++++++++++++++
    drivers/i2c/busses/i2c-designware-baytrail.c | 10 +-
    drivers/i2c/busses/i2c-designware-common.c | 12 +
    drivers/i2c/busses/i2c-designware-core.h | 18 +-
    drivers/i2c/busses/i2c-designware-master.c | 6 +
    drivers/i2c/busses/i2c-designware-platdrv.c | 61 ++++
    10 files changed, 469 insertions(+), 8 deletions(-)
    create mode 100644 drivers/i2c/busses/i2c-designware-amdpsp.c

    --
    2.34.1.703.g22d0c6ccf7-goog

    \
     
     \ /
      Last update: 2022-01-20 01:18    [W:4.265 / U:0.260 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site