lkml.org 
[lkml]   [2020]   [Nov]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v9 0/7] I3C mastership handover support
    Date
    Main changes between v8 and v9 are:
    - Fix NULL dereference issue in current_master_show when
    cat'ing sysfs key current_master for secondary master
    before primary master gets initialized.

    Main changes between v7 and v8 are:
    - Document format changed from table to DOT diagram
    - Appropriate names for few functions
    - Moved mastership request process entirely to the driver
    - Reuse of i3c_master_add_i3c_dev_locked in core defslvs
    processing

    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

    Parshuram Thombare (7):
    i3c: master: master initialization flow 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 +
    .../driver-api/i3c/master-initialization-flow.rst | 187 ++++++++
    drivers/i3c/master.c | 497 ++++++++++++++++++--
    drivers/i3c/master/dw-i3c-master.c | 4 +-
    drivers/i3c/master/i3c-master-cdns.c | 329 ++++++++++++-
    include/linux/i3c/master.h | 23 +-
    6 files changed, 968 insertions(+), 73 deletions(-)
    create mode 100644 Documentation/driver-api/i3c/master-initialization-flow.rst

    \
     
     \ /
      Last update: 2020-11-28 23:40    [W:2.591 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site