All of lore.kernel.org
 help / color / mirror / Atom feed
From: "David E. Box" <david.e.box-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
To: Mika Westerberg
	<mika.westerberg-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Cc: wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org,
	jdelvare-l3A5Bk7waGM@public.gmane.org,
	arnd-r2nGTMty4D4@public.gmane.org,
	maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@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,
	andrew-g2DYL2Zd6BY@public.gmane.org,
	sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org,
	markus.mayer-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
	jacob.jun.pan-VuQAYsv1563Yd54FQh9/CA@public.gmane.org,
	max.schwarz-BGeptl67XyCzQB+pC5nmwQ@public.gmane.org,
	skuribay-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org,
	Romain.Baeriswyl-ux6zf3SgZrrQT0dZR+AlfA@public.gmane.org,
	wenkai.du-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
	chiau.ee.chew-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
	alan-VuQAYsv1563Yd54FQh9/CA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH V3 1/2] i2c-designware: Add i2c bus locking support
Date: Thu, 4 Dec 2014 10:49:47 -0800	[thread overview]
Message-ID: <20141204184947.GB1530@pathfinder> (raw)
In-Reply-To: <20141203160125.GB28857-3PARRvDOhMZrdx17CPfAsdBPR1lH4CV8@public.gmane.org>

On Wed, Dec 03, 2014 at 06:01:25PM +0200, Mika Westerberg wrote:
> On Mon, Dec 01, 2014 at 04:09:32PM -0800, David E. Box wrote:
> > Adds support for acquiring and releasing a hardware bus lock in the i2c
> > designware core transfer function. This is needed for i2c bus controllers
> > that are shared with but not controlled by the kernel.
> > 
> > Signed-off-by: David E. Box <david.e.box-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
> > ---
> >  drivers/i2c/busses/i2c-designware-core.c    | 11 +++++++++++
> >  drivers/i2c/busses/i2c-designware-core.h    |  6 ++++++
> >  drivers/i2c/busses/i2c-designware-platdrv.c | 18 +++++++++++++-----
> >  3 files changed, 30 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/i2c/busses/i2c-designware-core.c b/drivers/i2c/busses/i2c-designware-core.c
> > index 3c20e4b..377deeb 100644
> > --- a/drivers/i2c/busses/i2c-designware-core.c
> > +++ b/drivers/i2c/busses/i2c-designware-core.c
> > @@ -631,6 +631,14 @@ i2c_dw_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
> >  	dev->abort_source = 0;
> >  	dev->rx_outstanding = 0;
> >  
> > +	if (dev->acquire_lock) {
> > +		ret = dev->acquire_lock(dev);
> > +		if (ret) {
> > +			dev_err(dev->dev, "couldn't acquire bus ownership\n");
> > +			goto done;
> 
> I wonder what happens now since you failed to acquire the lock...
> 
> > +		}
> > +	}
> > +
> >  	ret = i2c_dw_wait_bus_not_busy(dev);
> >  	if (ret < 0)
> >  		goto done;
> > @@ -676,6 +684,9 @@ i2c_dw_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
> >  	ret = -EIO;
> >  
> >  done:
> > +	if (dev->release_lock)
> > +		dev->release_lock(dev);
> 
> ... but here you unconditionally release it?
> 

Releasing the lock unconditionally isn't a problem, but it is an unnecessary
path should we fail to acquire the lock. I'll add another label to skip it.

Dave

WARNING: multiple messages have this Message-ID (diff)
From: "David E. Box" <david.e.box@linux.intel.com>
To: Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: wsa@the-dreams.de, jdelvare@suse.de, arnd@arndb.de,
	maxime.ripard@free-electrons.com, dianders@chromium.org,
	u.kleine-koenig@pengutronix.de,
	laurent.pinchart+renesas@ideasonboard.com,
	boris.brezillon@free-electrons.com, andrew@lunn.ch,
	sjg@chromium.org, markus.mayer@linaro.org,
	jacob.jun.pan@linux.intel.com, max.schwarz@online.de,
	skuribay@pobox.com, Romain.Baeriswyl@abilis.com,
	wenkai.du@intel.com, chiau.ee.chew@intel.com,
	alan@linux.intel.com, linux-kernel@vger.kernel.org,
	linux-i2c@vger.kernel.org
Subject: Re: [PATCH V3 1/2] i2c-designware: Add i2c bus locking support
Date: Thu, 4 Dec 2014 10:49:47 -0800	[thread overview]
Message-ID: <20141204184947.GB1530@pathfinder> (raw)
In-Reply-To: <20141203160125.GB28857@lahna.fi.intel.com>

On Wed, Dec 03, 2014 at 06:01:25PM +0200, Mika Westerberg wrote:
> On Mon, Dec 01, 2014 at 04:09:32PM -0800, David E. Box wrote:
> > Adds support for acquiring and releasing a hardware bus lock in the i2c
> > designware core transfer function. This is needed for i2c bus controllers
> > that are shared with but not controlled by the kernel.
> > 
> > Signed-off-by: David E. Box <david.e.box@linux.intel.com>
> > ---
> >  drivers/i2c/busses/i2c-designware-core.c    | 11 +++++++++++
> >  drivers/i2c/busses/i2c-designware-core.h    |  6 ++++++
> >  drivers/i2c/busses/i2c-designware-platdrv.c | 18 +++++++++++++-----
> >  3 files changed, 30 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/i2c/busses/i2c-designware-core.c b/drivers/i2c/busses/i2c-designware-core.c
> > index 3c20e4b..377deeb 100644
> > --- a/drivers/i2c/busses/i2c-designware-core.c
> > +++ b/drivers/i2c/busses/i2c-designware-core.c
> > @@ -631,6 +631,14 @@ i2c_dw_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
> >  	dev->abort_source = 0;
> >  	dev->rx_outstanding = 0;
> >  
> > +	if (dev->acquire_lock) {
> > +		ret = dev->acquire_lock(dev);
> > +		if (ret) {
> > +			dev_err(dev->dev, "couldn't acquire bus ownership\n");
> > +			goto done;
> 
> I wonder what happens now since you failed to acquire the lock...
> 
> > +		}
> > +	}
> > +
> >  	ret = i2c_dw_wait_bus_not_busy(dev);
> >  	if (ret < 0)
> >  		goto done;
> > @@ -676,6 +684,9 @@ i2c_dw_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
> >  	ret = -EIO;
> >  
> >  done:
> > +	if (dev->release_lock)
> > +		dev->release_lock(dev);
> 
> ... but here you unconditionally release it?
> 

Releasing the lock unconditionally isn't a problem, but it is an unnecessary
path should we fail to acquire the lock. I'll add another label to skip it.

Dave



  parent reply	other threads:[~2014-12-04 18:49 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
     [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
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 [this message]
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
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
     [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
2014-11-11 11:32     ` [PATCH V2] " Wolfram Sang
2014-11-11 17:11       ` David E. Box
2014-11-11 17:11         ` David E. Box

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=20141204184947.GB1530@pathfinder \
    --to=david.e.box-vuqaysv1563yd54fqh9/ca@public.gmane.org \
    --cc=Romain.Baeriswyl-ux6zf3SgZrrQT0dZR+AlfA@public.gmane.org \
    --cc=alan-VuQAYsv1563Yd54FQh9/CA@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=chiau.ee.chew-ral2JQCrhuEAvxtiuMwx3w@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=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=markus.mayer-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=max.schwarz-BGeptl67XyCzQB+pC5nmwQ@public.gmane.org \
    --cc=maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@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.