All of lore.kernel.org
 help / color / mirror / Atom feed
From: Esben Haabendal <esben.haabendal@gmail.com>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: linux-i2c@vger.kernel.org,
	Wolfram Sang <wsa+renesas@sang-engineering.com>,
	Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Yuan Yao <yao.yuan@freescale.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Phil Reid <preid@electromag.com.au>,
	Lucas Stach <l.stach@pengutronix.de>,
	Clemens Gruber <clemens.gruber@pqgruber.com>,
	Peter Rosin <peda@axentia.se>,
	Fabio Estevam <fabio.estevam@nxp.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 3/4] i2c: imx: Simplify stopped state tracking
Date: Fri, 10 Aug 2018 11:25:34 +0200	[thread overview]
Message-ID: <87zhxuo9o1.fsf@gmail.com> (raw)
In-Reply-To: <20180809162652.r34omvkctzxte422@pengutronix.de> ("Uwe =?utf-8?Q?Kleine-K=C3=B6nig=22's?= message of "Thu, 9 Aug 2018 18:26:52 +0200")

Uwe Kleine-König <u.kleine-koenig@pengutronix.de> writes:

> On Thu, Aug 09, 2018 at 02:06:43PM +0200, Esben Haabendal wrote:
>> Uwe Kleine-König <u.kleine-koenig@pengutronix.de> writes:
>> 
>> > On Mon, Jul 09, 2018 at 11:43:03AM +0200, Esben Haabendal wrote:
>> >> From: Esben Haabendal <eha@deif.com>
>> >> 
>> >> Always update the stopped state when busy status have been checked.
>> >> This is identical to what was done before, with the exception of error
>> >> handling.
>> >> Without this change, some errors cause the stopped state to be left in
>> >> incorrect state in i2c_imx_stop(), i2c_imx_dma_read(), i2c_imx_read() and
>> >> i2c_imx_xfer().
>> >> 
>> >> Signed-off-by: Esben Haabendal <eha@deif.com>
>> >> ---
>> >>  drivers/i2c/busses/i2c-imx.c | 12 ++++++------
>> >>  1 file changed, 6 insertions(+), 6 deletions(-)
>> >> 
>> >> diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
>> >> index d86f152176a4..1db8e6790afc 100644
>> >> --- a/drivers/i2c/busses/i2c-imx.c
>> >> +++ b/drivers/i2c/busses/i2c-imx.c
>> >> @@ -421,10 +421,14 @@ static int i2c_imx_bus_busy(struct imx_i2c_struct *i2c_imx, int for_busy)
>> >>  			return -EAGAIN;
>> >>  		}
>> >>  
>> >> -		if (for_busy && (temp & I2SR_IBB))
>> >> +		if (for_busy && (temp & I2SR_IBB)) {
>> >> +			i2c_imx->stopped = 0;
>> >>  			break;
>> >> -		if (!for_busy && !(temp & I2SR_IBB))
>> >> +		}
>> >> +		if (!for_busy && !(temp & I2SR_IBB)) {
>> >> +			i2c_imx->stopped = 1;
>> >>  			break;
>> >> +		}
>> >
>> > Would it make sense to assign to ->stopped independent of for_busy?
>> 
>> What do you mean?
>> 
>> Assigning to ->stopped on each check for I2SR_IBB in loop, independent
>> of the for_busy argument?  I don't think so.  The additional assignments
>> would be to the same value as it is set to already.
>
> Currently you have:
>
> 	if (for_busy && (temp & I2SR_IBB)) {
> 		i2c_imx->stopped = 0;
> 		break;
> 	}
>
> 	if (!for_busy && !(temp & I2SR_IBB)) {
> 		i2c_imx->stopped = 1;
> 		break;
> 	}
>
> The semantic of this is the same (apart from always updating .stopped)
> but is imho easier:
>
> 	i2c_imx->stopped = !(temp & I2SR_IBB);
>
> 	if (for_busy != i2c_imx->stopped)
> 		break;

Yes, that should work also.
Shorter, but IMHO a bit more convoluted to read.
Let me know if I should send a new version with this change.

/Esben

  reply	other threads:[~2018-08-10  9:25 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-09  9:43 [PATCH v2 0/4] i2c: imx: Fix and enable DMA support for LS1021A Esben Haabendal
2018-07-09  9:43 ` [PATCH v2 1/4] i2c: imx: Fix reinit_completion() use Esben Haabendal
2018-07-23 18:08   ` Wolfram Sang
2018-07-09  9:43 ` [PATCH v2 2/4] i2c: imx: Fix race condition in dma read Esben Haabendal
2018-07-24  7:57   ` Uwe Kleine-König
2018-08-09 11:57     ` Esben Haabendal
2018-07-09  9:43 ` [PATCH v2 3/4] i2c: imx: Simplify stopped state tracking Esben Haabendal
2018-07-24  7:59   ` Uwe Kleine-König
2018-08-09 12:06     ` Esben Haabendal
2018-08-09 16:26       ` Uwe Kleine-König
2018-08-10  9:25         ` Esben Haabendal [this message]
2018-08-10 12:25           ` Uwe Kleine-König
2018-07-09  9:43 ` [PATCH v2 4/4] arm: dts: ls1021a: Enable I2C DMA support Esben Haabendal
2018-07-24  8:02   ` Uwe Kleine-König

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=87zhxuo9o1.fsf@gmail.com \
    --to=esben.haabendal@gmail.com \
    --cc=clemens.gruber@pqgruber.com \
    --cc=fabio.estevam@nxp.com \
    --cc=l.stach@pengutronix.de \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=p.zabel@pengutronix.de \
    --cc=peda@axentia.se \
    --cc=preid@electromag.com.au \
    --cc=robh+dt@kernel.org \
    --cc=u.kleine-koenig@pengutronix.de \
    --cc=wsa+renesas@sang-engineering.com \
    --cc=yao.yuan@freescale.com \
    /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.