Re: [PATCH v6 01/10] i3c: Add core I3C infrastructure

From: vitor
Date: Thu Aug 30 2018 - 09:57:49 EST

Hi Przemyslaw

On 28-08-2018 13:55, Przemyslaw Gaj wrote:
Hi Vitor,

I have already implemented Mastership request/handover but we are waiting for Borisâs patch to be accepted and merged. Anyway, my comments below.

ïOn 8/28/18, 2:02 PM, "Boris Brezillon" <boris.brezillon@xxxxxxxxxxx> wrote:

Hi Vitor,
On Tue, 28 Aug 2018 12:50:12 +0100
vitor <Vitor.Soares@xxxxxxxxxxxx> wrote:
> Hi Boris,
> The DT Bindings say "The node describing an I3C bus should be named
> i3c-master.". Do you have a field for secondary master?

I think we donât need separate field for secondary master. Main and secondary masters
support similar functionalities. Itâs enough to have this state internally and do mastership it it's needed.

Yes, you are right.

> On 24-08-2018 19:16, Boris Brezillon wrote:
> > Well, before even considering supporting secondary master registration,
> > we need to handle mastership handover. As for the DAA operation, it's
> > likely to be host specific, so we'll have to add a new hook to the
> > i3c_master_controller_ops struct.
> Do you mean when master try to delegate the bus ownership through
> GETACCMST? or to get the bus ownership with IBI-MR?
I think we need to support both.

I agree.

That's ok to me.

> I think that could be useful to pass the ibi type on request_ibi(),
> there is some case where the master doesn't support IBI-MR.
Actually, I was planning on making it completely separate from
regular slave IBIs. That is, the master controller driver would demux
the slave, MR and Hot Join IBIs, and if there's an MR request, queue a
mastership handover work to the workqueue (pretty much what we do for
Hot-Join already). Mastership handover is anyway likely to be IP
specific, so I don't think there's a need to make it look like a
regular IBI.

I think it's better to have separate function to do mastership request.
Regarding whether IBI-MR support should be exposed to the I3C framework
or not depends on how much will be automated on the framework side. I
don't the answer yet, but that's probably something will figure out
along the road.

My current implementation is: when request_mastership field
of i3c_master_controller_ops structure is set, master driver supports mastership requests.
That's how I check if this is supported or not.

when you say request_mastership, do you mean the current master do the mastership hand-off or the secondary master request to be current master?

So, per my understanding since the Main master support the hand-off of the bus you accept all incoming MR, right? Or do you check all devices BCR?

Best regards,
Vitor Soares