Re: [PATCH v1 0/3] I3C mastership handover support

From: Boris Brezillon
Date: Wed Apr 08 2020 - 06:04:28 EST


Hi Parshuram,

On Tue, 7 Apr 2020 00:20:45 +0200
Parshuram Thombare <pthombar@xxxxxxxxxxx> wrote:

> Hi,
>
> This patch series is to enable mastership handover feature in I3C
> master subsystem and Cadence's I3C controller driver.

It's definitely not the first version (as implied in the subject), and
I'd like a proper changelog detailing what has changed since the last
version (the one sent by Przemek).

Thanks,

Boris

>
>
> [PATCH 1/3]
> i3c: master: split bus_init callback into bus_init and master_set_info
> There are 2 reasons for this split
> Currently bus_init callback is involved in
> a. Controller specific settings such as clock prescalar, enabling
> different functionalities and finally enabling the controller.
> b. Allocating address to the main master and calling
> i3c_master_set_info, which basically create a I3C device for master
> and add it to system. This is fine for main master, but for
> secondary master this should be deferred until controller actually
> owns the bus/mastership.
>
> Another reason is, to support secondary master initialization without
> board info, controller specific bus mode setting need to be done twice
> First with pure bus mode and second time when actual bus mode is known
> based on data received through DEFSLVS, whereas master set info is
> supposed to be done only once.
>
> [PATCH 2/3]
> i3c: add mastership handover support to i3c master subsystem
> This patch add mastership handover support as per MIPI I3C
> spec v1.0. Main master and secondary masters starts in pure
> bus mode to allow enumeration (DAA) to happen in same bus mode.
> Secondary masters are not required to have information about
> other devices connected on the bus through board info, this
> information is derived from DEFSLVS received from main
> master. While acquiring mastership, requesting master always
> make sure that it has active dynamic address, and received
> DEFSLVS at least once. Mastership request state machine
> make sure that any pending DEFSLVS is processed, so that
> when device become master it always have correct view
> of the bus.
>
> [PATCH 3/3]
> i3c: master: add mastership handover support to cdns i3c master driver
> This patch adds mastership handover support to the Cadence
> I3C controller driver. Basically, this include necessary
> callbacks for mastership request.
>
> Regards,
> Parshuram Thombare
>
> Parshuram Thombare (3):
> i3c: master: split bus_init callback into bus_init and master_set_info
> i3c: add mastership handover support to i3c master subsystem
> i3c: master: add mastership handover support to cdns i3c master driver
>
> drivers/i3c/master.c | 490 ++++++++++++++++++++++++---
> drivers/i3c/master/dw-i3c-master.c | 29 +-
> drivers/i3c/master/i3c-master-cdns.c | 385 ++++++++++++++++++---
> include/linux/i3c/master.h | 47 ++-
> 4 files changed, 854 insertions(+), 97 deletions(-)
>