linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Boris Brezillon <boris.brezillon@bootlin.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
	Peter Rosin <peda@axentia.se>, Wolfram Sang <wsa@the-dreams.de>,
	Linux I2C <linux-i2c@vger.kernel.org>,
	Jonathan Corbet <corbet@lwn.net>,
	"open list:DOCUMENTATION" <linux-doc@vger.kernel.org>,
	Greg KH <gregkh@linuxfoundation.org>,
	Przemyslaw Sroka <psroka@cadence.com>,
	Arkadiusz Golec <agolec@cadence.com>,
	Alan Douglas <adouglas@cadence.com>,
	Bartosz Folta <bfolta@cadence.com>, Damian Kos <dkos@cadence.com>,
	Alicja Jurasik-Urbaniak <alicja@cadence.com>,
	Cyprian Wronka <cwronka@cadence.com>,
	Suresh Punnoose <sureshp@cadence.com>,
	Rafal Ciepiela <rafalc@cadence.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Nishanth Menon <nm@ti.com>, Rob Herring <robh+dt@kernel.org>,
	Pawel Moll <pawel.moll@arm>
Subject: Re: [PATCH v6 00/10] Add the I3C subsystem
Date: Tue, 24 Jul 2018 18:54:15 +0200	[thread overview]
Message-ID: <20180724185415.6126751e@bbrezillon> (raw)
In-Reply-To: <CAK8P3a0wcmeFKvRf7=FTNvePayc2AxniHoNkLOuzQQCt=MiLjQ@mail.gmail.com>

On Tue, 24 Jul 2018 18:25:22 +0200
Arnd Bergmann <arnd@arndb.de> wrote:

> On Tue, Jul 24, 2018 at 6:14 PM, Boris Brezillon
> <boris.brezillon@bootlin.com> wrote:
> > On Tue, 24 Jul 2018 17:58:29 +0200
> > Arnd Bergmann <arnd@arndb.de> wrote:
> >  
> >> On Tue, Jul 24, 2018 at 5:46 PM, Geert Uytterhoeven
> >> <geert@linux-m68k.org> wrote:  
> >> > On Tue, Jul 24, 2018 at 5:40 PM Arnd Bergmann <arnd@arndb.de> wrote:  
> >> >> On Tue, Jul 24, 2018 at 5:15 PM, Geert Uytterhoeven
> >> >> <geert@linux-m68k.org> wrote:  
> >> >> > On Tue, Jul 24, 2018 at 5:05 PM Arnd Bergmann <arnd@arndb.de> wrote:  
> >> The second case is the one that started the discussion, and
> >> this is where I said I'd prefer to associate each slave with at
> >> most one master at boot time, while the current v6 patch
> >> is prepared for having one slave be accessed alternatingly
> >> by multiple masters using the master handover, though so
> >> far nobody has been able to describe exactly how we'd pick
> >> which master is active at what point,  
> >
> > Even if it's not yet implemented, I have everything in place to figure
> > this out (see the ->cur_master field in the i3c_bus object). Now,
> > what's missing is a list of possible masters attached to an i3c device
> > so that the framework can pick the most appropriate one at runtime and
> > initiate mastership handover if required (if the selected master is not
> > the currently active one).
> >
> > The selection logic should look like this:
> >
> >         if (active_master supports requested feature)
> >                 use active master
> >         else
> >                 pick an inactive one that has relevant caps and initiate
> >                 mastership handover (+ update bus->cur_master)  
> 
> How would you deal with soft requirements like performance?
> E.g. if you have one master that can do large transfers faster
> through a special DMA engine, and other master that can
> be faster for small transfers, but both support all capabilities
> for that device, won't you need some complex logic to avoid
> being stuck with a slow master indefinitely?

True.

> 
> >> or what specific scenario
> >> would require it.  
> >
> > I think I described a scenario (masters having different
> > capabilities all connected to the same bus), though I don't know how
> > likely this use case is :-/.  
> 
> I was looking for something more specific here. What (lack of)
> capabilities could two i3c controllers have that require you to
> use both of them for the same device, rather than picking
> a master for each slave with the right feature set?

Hehe, if I had a clear answer to this question we wouldn't have this
discussion :-). I gave you an example:

- master A supporting IBIs but not HDR transactions
- master B supporting HDR modes but not IBIs

but as I said, I'm not sure how likely this example is...

The question is more, should we design things so that we can at some
point implement a solution to support those funky setups, or should we
just ignore it and risk breaking sysfs/DT ABI when/if we have to support
that?

This is really an open question. I initially went for the former, but
have no objection switching to the latter.

  reply	other threads:[~2018-07-24 16:54 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-19 15:29 [PATCH v6 00/10] Add the I3C subsystem Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 01/10] i3c: Add core I3C infrastructure Boris Brezillon
2018-08-03 21:38   ` mshettel
2018-08-04  5:33     ` Boris Brezillon
2018-08-22 16:43   ` vitor
2018-08-24 12:39     ` Boris Brezillon
2018-08-24 17:52       ` vitor
2018-08-24 18:16         ` Boris Brezillon
2018-08-28 11:50           ` vitor
2018-08-28 12:02             ` Boris Brezillon
2018-08-28 12:55               ` Przemyslaw Gaj
2018-08-28 13:01                 ` Boris Brezillon
2018-08-29  7:41                   ` Przemyslaw Gaj
2018-08-28 13:03                 ` Boris Brezillon
2018-08-30 13:57                 ` vitor
2018-08-30 19:00                   ` Przemyslaw Gaj
2018-09-03  9:33                     ` vitor
2018-09-04 11:03                       ` Przemyslaw Gaj
2018-09-06 12:43                       ` Przemyslaw Gaj
2018-09-06 12:59                         ` Arnd Bergmann
2018-09-06 13:14                           ` Boris Brezillon
2018-09-06 13:20                             ` Boris Brezillon
2018-09-06 13:45                               ` Arnd Bergmann
2018-09-06 13:50                               ` vitor
2018-09-06 14:14                                 ` Boris Brezillon
2018-09-06 15:17                                   ` vitor
2018-09-06 16:06                                     ` Boris Brezillon
2018-09-06 16:17                                       ` Przemyslaw Gaj
2018-09-10 16:16                                         ` vitor
2018-09-07  7:51                                       ` Przemyslaw Gaj
2018-09-06 13:47                             ` Przemyslaw Gaj
2018-09-06 14:09                               ` Boris Brezillon
2018-09-06 14:20                                 ` Przemyslaw Gaj
2018-07-19 15:29 ` [PATCH v6 02/10] docs: driver-api: Add I3C documentation Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 03/10] i3c: Add sysfs ABI spec Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 04/10] dt-bindings: i3c: Document core bindings Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 05/10] dt-bindings: i3c: Add macros to help fill I3C/I2C device's reg property Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 06/10] MAINTAINERS: Add myself as the I3C subsystem maintainer Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 07/10] i3c: master: Add driver for Cadence IP Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 08/10] dt-bindings: i3c: Document Cadence I3C master bindings Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 09/10] gpio: Add a driver for Cadence I3C GPIO expander Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 10/10] dt-bindings: gpio: Add bindings for Cadence I3C gpio expander Boris Brezillon
2018-07-20  8:52 ` [PATCH v6 00/10] Add the I3C subsystem Arnd Bergmann
2018-07-20  9:57   ` Peter Rosin
2018-07-20 10:05     ` Boris Brezillon
2018-07-20 10:39       ` Peter Rosin
2018-07-20 10:12     ` Wolfram Sang
2018-07-20 10:57       ` Arnd Bergmann
2018-07-20 11:05         ` Wolfram Sang
2018-07-20 11:13         ` Peter Rosin
2018-07-20 11:28           ` Arnd Bergmann
2018-07-20 13:16             ` Peter Rosin
2018-07-20 15:41               ` Wolfram Sang
2018-07-24 14:14                 ` Arnd Bergmann
2018-07-24 15:57                   ` Wolfram Sang
2018-07-24 16:04                     ` Arnd Bergmann
2018-07-24 20:22                       ` Wolfram Sang
2018-07-24 16:07                     ` Boris Brezillon
2018-07-20 13:17             ` Boris Brezillon
2018-07-24 14:03               ` Arnd Bergmann
2018-07-24 14:28                 ` Boris Brezillon
2018-07-24 15:05                   ` Arnd Bergmann
2018-07-24 15:15                     ` Geert Uytterhoeven
2018-07-24 15:40                       ` Arnd Bergmann
2018-07-24 15:46                         ` Geert Uytterhoeven
2018-07-24 15:58                           ` Arnd Bergmann
2018-07-24 16:14                             ` Boris Brezillon
2018-07-24 16:25                               ` Arnd Bergmann
2018-07-24 16:54                                 ` Boris Brezillon [this message]
2018-07-24 20:21                                   ` Arnd Bergmann
2018-07-24 16:04                       ` Wolfram Sang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180724185415.6126751e@bbrezillon \
    --to=boris.brezillon@bootlin.com \
    --cc=adouglas@cadence.com \
    --cc=agolec@cadence.com \
    --cc=alicja@cadence.com \
    --cc=arnd@arndb.de \
    --cc=bfolta@cadence.com \
    --cc=corbet@lwn.net \
    --cc=cwronka@cadence.com \
    --cc=dkos@cadence.com \
    --cc=geert@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=nm@ti.com \
    --cc=pawel.moll@arm \
    --cc=peda@axentia.se \
    --cc=psroka@cadence.com \
    --cc=rafalc@cadence.com \
    --cc=robh+dt@kernel.org \
    --cc=sureshp@cadence.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=wsa@the-dreams.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).