devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Boris Brezillon <boris.brezillon@bootlin.com>
Cc: Przemyslaw Gaj <pgaj@cadence.com>,
	Vitor Soares <Vitor.Soares@synopsys.com>,
	"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	Sekhar Nori <nsekhar@ti.com>, 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>,
	gregkh <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>
Subject: Re: [PATCH v6 01/10] i3c: Add core I3C infrastructure
Date: Thu, 6 Sep 2018 15:45:41 +0200	[thread overview]
Message-ID: <CAK8P3a1dgw5_54rdE6Emsii93VuT8msA4z79C-iCCxCZihuFJw@mail.gmail.com> (raw)
In-Reply-To: <20180906152055.5618d235@bbrezillon>

On Thu, Sep 6, 2018 at 3:21 PM Boris Brezillon
<boris.brezillon@bootlin.com> wrote:
>
> On Thu, 6 Sep 2018 15:14:37 +0200
> Boris Brezillon <boris.brezillon@bootlin.com> wrote:

> > When a master is not in control of the bus, it gets informed of devices
> > present on the bus by monitoring DAA or DEFSLVS broadcast events. That
> > means the secondary master should populate the bus with I3C/I2C devices
> > on such events, but that's not enough, because DEFSLVS/DAA do not
> > provide all device info. Some of them (like read/write/ibi limitations)
> > require extra CCC commands, and, to send those CCC commands, the
> > secondary master must claim the bus. We could add a case where we
> > declare devices as partially discovered until the master acquires
> > ownership of the bus, but that means part of the data returned by
> > i3c_device_get_info() will be inaccurate, which might have an impact on
> > some i3c driver ->probe() functions.
>
> Hm, one possible solution would be to register partially discovered
> devices to the device model and let i3c_device_get_info() claim the bus
> and request missing data when needed. This way, if the driver needs to
> call i3c_device_get_info() in its probe path, it should work just fine.

I guess you could also call i3c_device_get_info() in the common i3c_probe()
function before calling into the driver.

However, either way, we may still have a problem here: if the current master
decides not to hand over master access to us at all, the probe() function
will be blocked indefinitely, and that may stop us from probing other devices
later on, or hang the module loader (depending on what context that
probe() is called from).

Using a timeout here could avoid the hang, but leads to other potential
issues, e.g. how to decide whether to retry the probe later.

       Arnd

  reply	other threads:[~2018-09-06 13:45 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 [this message]
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
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=CAK8P3a1dgw5_54rdE6Emsii93VuT8msA4z79C-iCCxCZihuFJw@mail.gmail.com \
    --to=arnd@arndb.de \
    --cc=Vitor.Soares@synopsys.com \
    --cc=adouglas@cadence.com \
    --cc=agolec@cadence.com \
    --cc=alicja@cadence.com \
    --cc=bfolta@cadence.com \
    --cc=boris.brezillon@bootlin.com \
    --cc=corbet@lwn.net \
    --cc=cwronka@cadence.com \
    --cc=dkos@cadence.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=nsekhar@ti.com \
    --cc=pgaj@cadence.com \
    --cc=psroka@cadence.com \
    --cc=rafalc@cadence.com \
    --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).