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.
next prev parent 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).