From: Maxime Ripard <maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
To: "David E. Box" <david.e.box-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Cc: wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org,
jdelvare-l3A5Bk7waGM@public.gmane.org,
arnd-r2nGTMty4D4@public.gmane.org,
dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org,
u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org,
laurent.pinchart+renesas-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org,
boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org,
maxime.coquelin-qxv4g6HH51o@public.gmane.org,
andrew-g2DYL2Zd6BY@public.gmane.org,
sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org,
markus.mayer-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
ch.naveen-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org,
jacob.jun.pan-VuQAYsv1563Yd54FQh9/CA@public.gmane.org,
max.schwarz-BGeptl67XyCzQB+pC5nmwQ@public.gmane.org,
mika.westerberg-VuQAYsv1563Yd54FQh9/CA@public.gmane.org,
skuribay-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org,
Romain.Baeriswyl-ux6zf3SgZrrQT0dZR+AlfA@public.gmane.org,
wenkai.du-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org
Subject: Re: [PATCH V2] i2c-designware: Add Intel Baytrail PMIC I2C bus support
Date: Thu, 9 Oct 2014 14:36:07 +0200 [thread overview]
Message-ID: <20141009123607.GE19438@lukather> (raw)
In-Reply-To: <20141007191420.GA25126@pathfinder>
[-- Attachment #1: Type: text/plain, Size: 3563 bytes --]
Hi David,
On Tue, Oct 07, 2014 at 12:14:20PM -0700, David E. Box wrote:
> Hi Maxime,
>
> On Thu, Sep 25, 2014 at 11:47:52AM +0200, Maxime Ripard wrote:
> > Hi David,
> >
> > On Tue, Sep 23, 2014 at 12:58:54PM -0700, David E. Box wrote:
> > > Hi Maxime,
> > >
> > > On Tue, Sep 23, 2014 at 09:00:57PM +0200, Maxime Ripard wrote:
> > > > Hi David,
> > > >
> > > > On Tue, Sep 23, 2014 at 11:40:26AM -0700, David E. Box wrote:
> > > > > This patch implements an I2C bus sharing mechanism between the host and platform
> > > > > hardware on select Intel BayTrail SoC platforms using the X-Powers AXP288 PMIC.
> > > > >
> > > > > On these platforms access to the PMIC must be shared with platform hardware. The
> > > > > hardware unit assumes full control of the I2C bus and the host must request
> > > > > access through a special semaphore. Hardware control of the bus also makes it
> > > > > necessary to disable runtime pm to avoid interfering with hardware transactions.
> > > > >
> > > > > Signed-off-by: David E. Box <david.e.box-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
> > > >
> > > > Sorry for stepping in like this without really knowing your platform,
> > > > but wouldn't using the hwspinlock framework make more sense than
> > > > hardcoding your own internal functions here?
> > >
> > > I looked into this but didn't see a clear way on our platform to identify the
> > > semaphore seperately from doing it in the designware platform driver. The way
> > > we can find it now is through evaluating an ACPI _SEM object on every i2c device
> > > that gets probed by the dw driver since at probe time we can get the acpi handle.
> >
> > And you have no way to turn it around and identify which semaphore is
> > associated to which i2c bus?
> >
> > If so, there is probably some way to associate a given instance of the
> > i2c driver to one semaphore.
> >
> > > Without this handle however there isn't a clear way of evaluating the _SEM
> > > object which would be needed to register a hwspinlock in separate code.
> > >
> > > Plus it would still require changes to the designware i2c core, though admittedly
> > > having a generic hwspinlock pointer added to the struct is cleaner.
> >
> > Not only cleaner, but that could also be used by other platforms that
> > are using this I2C driver (and since it's a designware IP, there must
> > be quite a lot) together with hardware locking.
> >
>
> After again considering a way to make this work I don't think this api can fit
> well with our platform. Acquisition of this semaphore is through a mailbox
> sequence where we set one register and then poll another for a value that
> confirms we have the lock. For best performance we need to be able to
> periodically sleep while waiting for that confirmation. This time can vary
> widely as it's dependent on the component we are requesting the semaphore from
> which is itself a user of that bus.
>
> While we could simply fail after a short time, reattempts would still need
> to happen in the i2c-designware driver and the timing would be completely
> dependent on our hardware, making it less clean for reuse. In addition,
> if we timed out, we would have to immediately call unlock to cancel the
> mailbox transaction. This may not fit well with reuse either.
Ok, if Wolfram is ok with it, and if it makes your life much easier,
I'm ok :)
Thanks!
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Maxime Ripard <maxime.ripard@free-electrons.com>
To: "David E. Box" <david.e.box@linux.intel.com>
Cc: wsa@the-dreams.de, jdelvare@suse.de, arnd@arndb.de,
dianders@chromium.org, u.kleine-koenig@pengutronix.de,
laurent.pinchart+renesas@ideasonboard.com,
boris.brezillon@free-electrons.com, maxime.coquelin@st.com,
andrew@lunn.ch, sjg@chromium.org, markus.mayer@linaro.org,
ch.naveen@samsung.com, jacob.jun.pan@linux.intel.com,
max.schwarz@online.de, mika.westerberg@linux.intel.com,
skuribay@pobox.com, Romain.Baeriswyl@abilis.com,
wenkai.du@intel.com,
=?ISO-8859-1?Q?=20=22=1Bchristian.rupp?=.=?ISO-8859-1?Q?ert=22@abilis.com?=.=?ISO-8859-1?Q?,
?=.alan@linux.intel.com, linux-kernel@vger.kernel.org,
linux-i2c@vger.kernel.org
Subject: Re: [PATCH V2] i2c-designware: Add Intel Baytrail PMIC I2C bus support
Date: Thu, 9 Oct 2014 14:36:07 +0200 [thread overview]
Message-ID: <20141009123607.GE19438@lukather> (raw)
In-Reply-To: <20141007191420.GA25126@pathfinder>
[-- Attachment #1: Type: text/plain, Size: 3539 bytes --]
Hi David,
On Tue, Oct 07, 2014 at 12:14:20PM -0700, David E. Box wrote:
> Hi Maxime,
>
> On Thu, Sep 25, 2014 at 11:47:52AM +0200, Maxime Ripard wrote:
> > Hi David,
> >
> > On Tue, Sep 23, 2014 at 12:58:54PM -0700, David E. Box wrote:
> > > Hi Maxime,
> > >
> > > On Tue, Sep 23, 2014 at 09:00:57PM +0200, Maxime Ripard wrote:
> > > > Hi David,
> > > >
> > > > On Tue, Sep 23, 2014 at 11:40:26AM -0700, David E. Box wrote:
> > > > > This patch implements an I2C bus sharing mechanism between the host and platform
> > > > > hardware on select Intel BayTrail SoC platforms using the X-Powers AXP288 PMIC.
> > > > >
> > > > > On these platforms access to the PMIC must be shared with platform hardware. The
> > > > > hardware unit assumes full control of the I2C bus and the host must request
> > > > > access through a special semaphore. Hardware control of the bus also makes it
> > > > > necessary to disable runtime pm to avoid interfering with hardware transactions.
> > > > >
> > > > > Signed-off-by: David E. Box <david.e.box@linux.intel.com>
> > > >
> > > > Sorry for stepping in like this without really knowing your platform,
> > > > but wouldn't using the hwspinlock framework make more sense than
> > > > hardcoding your own internal functions here?
> > >
> > > I looked into this but didn't see a clear way on our platform to identify the
> > > semaphore seperately from doing it in the designware platform driver. The way
> > > we can find it now is through evaluating an ACPI _SEM object on every i2c device
> > > that gets probed by the dw driver since at probe time we can get the acpi handle.
> >
> > And you have no way to turn it around and identify which semaphore is
> > associated to which i2c bus?
> >
> > If so, there is probably some way to associate a given instance of the
> > i2c driver to one semaphore.
> >
> > > Without this handle however there isn't a clear way of evaluating the _SEM
> > > object which would be needed to register a hwspinlock in separate code.
> > >
> > > Plus it would still require changes to the designware i2c core, though admittedly
> > > having a generic hwspinlock pointer added to the struct is cleaner.
> >
> > Not only cleaner, but that could also be used by other platforms that
> > are using this I2C driver (and since it's a designware IP, there must
> > be quite a lot) together with hardware locking.
> >
>
> After again considering a way to make this work I don't think this api can fit
> well with our platform. Acquisition of this semaphore is through a mailbox
> sequence where we set one register and then poll another for a value that
> confirms we have the lock. For best performance we need to be able to
> periodically sleep while waiting for that confirmation. This time can vary
> widely as it's dependent on the component we are requesting the semaphore from
> which is itself a user of that bus.
>
> While we could simply fail after a short time, reattempts would still need
> to happen in the i2c-designware driver and the timing would be completely
> dependent on our hardware, making it less clean for reuse. In addition,
> if we timed out, we would have to immediately call unlock to cancel the
> mailbox transaction. This may not fit well with reuse either.
Ok, if Wolfram is ok with it, and if it makes your life much easier,
I'm ok :)
Thanks!
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2014-10-09 12:36 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-12 17:36 [PATCH] i2c-designware: Intel BayTrail PMIC I2C bus support David E. Box
[not found] ` <1410543367-6565-1-git-send-email-david.e.box-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2014-09-15 6:57 ` Maxime Coquelin
2014-09-15 6:57 ` Maxime Coquelin
[not found] ` <54168DE2.8020303-qxv4g6HH51o@public.gmane.org>
2014-09-15 16:55 ` David E. Box
2014-09-15 16:55 ` David E. Box
2014-09-16 9:44 ` Mika Westerberg
2014-09-16 9:44 ` Mika Westerberg
[not found] ` <20140916094449.GZ10854-3PARRvDOhMZrdx17CPfAsdBPR1lH4CV8@public.gmane.org>
2014-09-16 10:53 ` Jacob Pan
2014-09-16 10:53 ` Jacob Pan
2014-09-16 10:58 ` Mika Westerberg
2014-09-17 4:01 ` Li, Aubrey
2014-09-17 11:02 ` One Thousand Gnomes
2014-09-17 11:02 ` One Thousand Gnomes
2014-09-23 18:40 ` [PATCH V2] i2c-designware: Add Intel Baytrail " David E. Box
2014-09-23 18:40 ` David E. Box
2014-11-11 11:32 ` Wolfram Sang
2014-11-11 17:11 ` David E. Box
2014-11-11 17:11 ` David E. Box
[not found] ` <1411497626-7984-1-git-send-email-david.e.box-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2014-09-23 19:00 ` Maxime Ripard
2014-09-23 19:00 ` Maxime Ripard
2014-09-23 19:58 ` David E. Box
2014-09-25 9:47 ` Maxime Ripard
2014-09-25 9:47 ` Maxime Ripard
[not found] ` <20141007191420.GA25126@pathfinder>
2014-10-09 12:36 ` Maxime Ripard [this message]
2014-10-09 12:36 ` Maxime Ripard
2014-11-11 11:50 ` Mika Westerberg
2014-11-11 11:50 ` Mika Westerberg
2014-12-02 0:09 ` [PATCH V3 0/2] i2c-designware: Baytrail bus locking driver David E. Box
2014-12-02 0:09 ` David E. Box
2014-12-02 0:09 ` [PATCH V3 1/2] i2c-designware: Add i2c bus locking support David E. Box
2014-12-03 16:01 ` Mika Westerberg
[not found] ` <20141203160125.GB28857-3PARRvDOhMZrdx17CPfAsdBPR1lH4CV8@public.gmane.org>
2014-12-04 18:49 ` David E. Box
2014-12-04 18:49 ` David E. Box
[not found] ` <1417478973-25522-2-git-send-email-david.e.box-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2014-12-04 7:59 ` Jarkko Nikula
2014-12-04 7:59 ` Jarkko Nikula
2014-12-04 18:42 ` David E. Box
2015-01-13 9:48 ` Wolfram Sang
2015-01-13 9:48 ` Wolfram Sang
2015-01-14 18:15 ` David E. Box
2015-01-14 18:15 ` David E. Box
2014-12-02 0:09 ` [PATCH V3 2/2] i2c-designware: Add Intel Baytrail PMIC I2C bus support David E. Box
2014-12-03 16:10 ` Mika Westerberg
[not found] ` <20141203161046.GC28857-3PARRvDOhMZrdx17CPfAsdBPR1lH4CV8@public.gmane.org>
2014-12-04 19:11 ` David E. Box
2014-12-04 19:11 ` David E. Box
[not found] ` <1417478973-25522-1-git-send-email-david.e.box-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2014-12-06 3:51 ` [PATCH V3 0/2] i2c-designware: Baytrail bus locking driver Shinya Kuribayashi
2014-12-06 3:51 ` Shinya Kuribayashi
2015-01-15 9:12 ` [PATCH V4 0/2] i2c-designware: Add Intel Baytrail pmic i2c bus support David E. Box
2015-01-15 9:12 ` David E. Box
[not found] ` <1421313137-1613-1-git-send-email-david.e.box-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-01-26 11:27 ` Wolfram Sang
2015-01-26 11:27 ` Wolfram Sang
2015-01-15 9:12 ` [PATCH V4 2/2] i2c-designware: Add Intel Baytrail PMIC I2C " David E. Box
2015-01-15 9:12 ` David E. Box
[not found] ` <1421313137-1613-3-git-send-email-david.e.box-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-01-22 14:28 ` Mika Westerberg
2015-01-22 14:28 ` Mika Westerberg
2015-01-22 20:48 ` David E. Box
2015-01-23 9:32 ` Mika Westerberg
2015-01-23 14:18 ` Wolfram Sang
2015-01-23 14:18 ` Wolfram Sang
2015-01-15 9:12 ` [PATCH V4 1/2] i2c-designware: Add i2c bus locking support David E. Box
[not found] ` <1421313137-1613-2-git-send-email-david.e.box-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-01-22 14:22 ` Mika Westerberg
2015-01-22 14:22 ` Mika Westerberg
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=20141009123607.GE19438@lukather \
--to=maxime.ripard-wi1+55scjutkeb57/3fjtnbpr1lh4cv8@public.gmane.org \
--cc=Romain.Baeriswyl-ux6zf3SgZrrQT0dZR+AlfA@public.gmane.org \
--cc=andrew-g2DYL2Zd6BY@public.gmane.org \
--cc=arnd-r2nGTMty4D4@public.gmane.org \
--cc=boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=ch.naveen-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=david.e.box-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=jacob.jun.pan-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=jdelvare-l3A5Bk7waGM@public.gmane.org \
--cc=laurent.pinchart+renesas-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org \
--cc=markus.mayer-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=max.schwarz-BGeptl67XyCzQB+pC5nmwQ@public.gmane.org \
--cc=maxime.coquelin-qxv4g6HH51o@public.gmane.org \
--cc=mika.westerberg-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=skuribay-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org \
--cc=u.kleine-koenig-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
--cc=wenkai.du-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.