lkml.org 
[lkml]   [2020]   [May]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v7 0/7] I3C mastership handover support
    Date
    Hi,

    As per the discussion with Boris sending v7 of
    patchset with changes mentioned in below changelog v6->v7.

    Main changes between v6 and v7 are:
    - Added separate functions for main and secondary
    master initialization
    - Secondary master initialization don't wait for
    DEFSLSVS.
    - Change to use I2C device information from DTS,
    and corresponding changes in controller driver
    and I3C core DEFSLVS processing to ignore I2C
    devices received in DEFSLVS
    - Reverted bus_init split
    - Fixed formatting issues in document

    Main changes between v5 and v6 are:
    - Moved populate_bus() hook to master subsystem code.
    - For secondary master initialization i3c_master_register
    spawan separate threads, as secondary master may have to
    wait for DEFSLVS and bus mastership.
    - Populate bus info is based on DEFSLVS data and take care
    of hot plugged / unplugged I3C devices.
    - Split bus_init into bus_init and master_set_info callbacks
    - Moved mastership aquire and handover to separate state
    machines.
    - Added DEFSLVS processing code.
    - Moved back all locks in side the subsystem code.
    - Secondary mastership support to Cadence I3C master
    controller driver
    - Sysfs key 'i3c_acquire_bus' to acauire bus.
    - NULL check for pool pointer in i3c_generic_ibi_free_pool.

    Main changes between v4 and v5 are:
    - Add populate_bus() hook
    - Split i3c_master_register into init and register pair
    - Split device information retrieval, let add partialy discovered devices
    - Make i3c_master_set_info private
    - Add separate function to register secondary master
    - Reworked secondary master register in CDNS driver
    - Export i3c_bus_set_mode

    Main changes between v3 and v4 are:
    - Reworked acquire bus ownership
    - Refactored the code

    Main changes between v2 and v3 are:
    - Added DEFSLVS devices are registered from master driver
    - Reworked I2C registering on secondary master side
    - Reworked Mastership event is enabled/disabled globally (for all devices)

    Main changes between initial version and v2 are:
    - Reworked devices registration on secondary master side
    - Reworked mastership event disabling/enabling
    - Reworked bus locking during mastership takeover process
    - Added DEFSLVS devices registration during initialization
    - Fixed style issues

    Regards,
    Parshuram Thombare

    Parshuram Thombare (7):
    i3c: master: secondary master initialization document
    i3c: master: use i3c_master_register only for main master
    i3c: master: add i3c_secondary_master_register
    i3c: master: add mastership handover support
    i3c: master: add defslvs processing
    i3c: master: sysfs key for acquire bus
    i3c: master: mastership handover, defslvs processing in cdns
    controller driver

    Documentation/driver-api/i3c/index.rst | 1 +
    .../i3c/secondary-master-initialization.rst | 118 ++++
    drivers/i3c/master.c | 566 ++++++++++++++++--
    drivers/i3c/master/dw-i3c-master.c | 2 +-
    drivers/i3c/master/i3c-master-cdns.c | 377 +++++++++++-
    include/linux/i3c/master.h | 36 +-
    6 files changed, 1038 insertions(+), 62 deletions(-)
    create mode 100644 Documentation/driver-api/i3c/secondary-master-initialization.rst

    --
    2.17.1

    \
     
     \ /
      Last update: 2020-05-11 15:13    [W:3.329 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site