lkml.org 
[lkml]   [2018]   [Jul]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH v6 00/10] Add the I3C subsystem
    On Thu, Jul 19, 2018 at 5:29 PM, Boris Brezillon
    <boris.brezillon@bootlin.com> wrote:

    > - the bus element is a separate object and is not implicitly described
    > by the master (as done in I2C). The reason is that I want to be able
    > to handle multiple master connected to the same bus and visible to
    > Linux.
    > In this situation, we should only have one instance of the device and
    > not one per master, and sharing the bus object would be part of the
    > solution to gracefully handle this case.
    > I'm not sure if we will ever need to deal with multiple masters
    > controlling the same bus and exposed under Linux, but separating the
    > bus and master concept is pretty easy, hence the decision to do it
    > now, just in case we need it some day.
    > The other benefit of separating the bus and master concepts is that
    > master devices appear under the bus directory in sysfs.
    >
    > Discussion around the bus/master/dev representation is still ongoing,
    > with Arnd opting for a simple approach where
    > * the bus is implicitly represented by the master device
    > * the master is not represented as a device under the I3C bus
    > * only remote I3C devices are exposed and possibly duplicated if
    > several masters controlling the same bus are exposed to the same
    > Linux instance
    > and Peter preferring the representation where the bus is a separate
    > object. IIRC, Wolfram was in favor of the "bus is a separate object"
    > too.
    >
    > If possible, I'd like to close this discussion soon, no matter which
    > solution is chosen.
    ...
    > Missing features in this preliminary version:
    ...
    > - no support for multi-master and the associated concepts (mastership
    > handover, support for secondary masters, ...)

    Let's try to come to a conclusion to this discussion, this is the main
    show-stopper for inclusion that I see, as changing the fundamental
    design would be hard to do once we do it one way or the other,
    and the structure is exposed to user space.

    Peter and Wolfram, could you explain what scenario you can see that
    would require handing over ownership of a device from one i3c master
    to another i3c master when both are controlled by the same Linux
    instance?

    To me this seems like a rather odd scenario, and supporting it
    properly requires significant complexity once we try to support the
    dynamic handover of the bus between two of our own masters.

    It seems more likely to me that we could deal with this case by
    requiring either that each bus is controlled by at most one master
    device in Linux, or at least that when we have two masters on
    the same bus that they each control a non-overlapping set of
    slave devices. Either way we'd be able to represent the structure
    as a normal tree in the firmware (DT or ACPI) as well as in
    sysfs.

    Arnd

    \
     
     \ /
      Last update: 2018-07-20 10:53    [W:2.834 / U:0.444 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site