diff mbox series

[v2] iio: accel: mma8452: ignore the return value of reset operation

Message ID 1655292718-14287-1-git-send-email-haibo.chen@nxp.com (mailing list archive)
State Accepted
Headers show
Series [v2] iio: accel: mma8452: ignore the return value of reset operation | expand

Commit Message

Bough Chen June 15, 2022, 11:31 a.m. UTC
From: Haibo Chen <haibo.chen@nxp.com>

On fxls8471, after set the reset bit, the device will reset immediately,
will not give ACK. So ignore the return value of this reset operation,
let the following code logic to check whether the reset operation works.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
---
 drivers/iio/accel/mma8452.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

Comments

Hans de Goede June 15, 2022, 4:10 p.m. UTC | #1
Hi,

On 6/15/22 13:31, haibo.chen@nxp.com wrote:
> From: Haibo Chen <haibo.chen@nxp.com>
> 
> On fxls8471, after set the reset bit, the device will reset immediately,
> will not give ACK. So ignore the return value of this reset operation,
> let the following code logic to check whether the reset operation works.
> 
> Signed-off-by: Haibo Chen <haibo.chen@nxp.com>

Thanks, patch looks good to me:

Reviewed-by: Hans de Goede <hdegoede@redhat.com>

Regards,

Hans



> ---
>  drivers/iio/accel/mma8452.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c
> index e0f0c0abed28..c7d9ca96dbaa 100644
> --- a/drivers/iio/accel/mma8452.c
> +++ b/drivers/iio/accel/mma8452.c
> @@ -1511,10 +1511,14 @@ static int mma8452_reset(struct i2c_client *client)
>  	int i;
>  	int ret;
>  
> -	ret = i2c_smbus_write_byte_data(client,	MMA8452_CTRL_REG2,
> +	/*
> +	 * Find on fxls8471, after config reset bit, it reset immediately,
> +	 * and will not give ACK, so here do not check the return value.
> +	 * The following code will read the reset register, and check whether
> +	 * this reset works.
> +	 */
> +	i2c_smbus_write_byte_data(client, MMA8452_CTRL_REG2,
>  					MMA8452_CTRL_REG2_RST);
> -	if (ret < 0)
> -		return ret;
>  
>  	for (i = 0; i < 10; i++) {
>  		usleep_range(100, 200);
Jonathan Cameron June 15, 2022, 9:15 p.m. UTC | #2
On Wed, 15 Jun 2022 18:10:47 +0200
Hans de Goede <hdegoede@redhat.com> wrote:

> Hi,
> 
> On 6/15/22 13:31, haibo.chen@nxp.com wrote:
> > From: Haibo Chen <haibo.chen@nxp.com>
> > 
> > On fxls8471, after set the reset bit, the device will reset immediately,
> > will not give ACK. So ignore the return value of this reset operation,
> > let the following code logic to check whether the reset operation works.
> > 
> > Signed-off-by: Haibo Chen <haibo.chen@nxp.com>  
> 
> Thanks, patch looks good to me:
> 
> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Looks very much like a fix to me, so fixes tag please.
As it's otherwise good, just sending the tag in reply to this
message will be fine.

Thanks,

Jonathan

> 
> Regards,
> 
> Hans
> 
> 
> 
> > ---
> >  drivers/iio/accel/mma8452.c | 10 +++++++---
> >  1 file changed, 7 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c
> > index e0f0c0abed28..c7d9ca96dbaa 100644
> > --- a/drivers/iio/accel/mma8452.c
> > +++ b/drivers/iio/accel/mma8452.c
> > @@ -1511,10 +1511,14 @@ static int mma8452_reset(struct i2c_client *client)
> >  	int i;
> >  	int ret;
> >  
> > -	ret = i2c_smbus_write_byte_data(client,	MMA8452_CTRL_REG2,
> > +	/*
> > +	 * Find on fxls8471, after config reset bit, it reset immediately,
> > +	 * and will not give ACK, so here do not check the return value.
> > +	 * The following code will read the reset register, and check whether
> > +	 * this reset works.
> > +	 */
> > +	i2c_smbus_write_byte_data(client, MMA8452_CTRL_REG2,
> >  					MMA8452_CTRL_REG2_RST);
> > -	if (ret < 0)
> > -		return ret;
> >  
> >  	for (i = 0; i < 10; i++) {
> >  		usleep_range(100, 200);  
>
Bough Chen June 16, 2022, 1:34 a.m. UTC | #3
> -----Original Message-----
> From: Jonathan Cameron <jic23@kernel.org>
> Sent: 2022年6月16日 5:16
> To: Hans de Goede <hdegoede@redhat.com>
> Cc: Bough Chen <haibo.chen@nxp.com>; lars@metafoo.de;
> linux-iio@vger.kernel.org; dl-linux-imx <linux-imx@nxp.com>
> Subject: Re: [PATCH v2] iio: accel: mma8452: ignore the return value of reset
> operation
> 
> On Wed, 15 Jun 2022 18:10:47 +0200
> Hans de Goede <hdegoede@redhat.com> wrote:
> 
> > Hi,
> >
> > On 6/15/22 13:31, haibo.chen@nxp.com wrote:
> > > From: Haibo Chen <haibo.chen@nxp.com>
> > >
> > > On fxls8471, after set the reset bit, the device will reset
> > > immediately, will not give ACK. So ignore the return value of this
> > > reset operation, let the following code logic to check whether the reset
> operation works.
> > >
> > > Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
> >
> > Thanks, patch looks good to me:
> >
> > Reviewed-by: Hans de Goede <hdegoede@redhat.com>
> Looks very much like a fix to me, so fixes tag please.
> As it's otherwise good, just sending the tag in reply to this message will be fine.

Thanks for your quick review.

Fixes: ecabae713196 ("iio: mma8452: Initialise before activating")

Best Regards
Bough Chen
> 
> Thanks,
> 
> Jonathan
> 
> >
> > Regards,
> >
> > Hans
> >
> >
> >
> > > ---
> > >  drivers/iio/accel/mma8452.c | 10 +++++++---
> > >  1 file changed, 7 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/iio/accel/mma8452.c
> > > b/drivers/iio/accel/mma8452.c index e0f0c0abed28..c7d9ca96dbaa
> > > 100644
> > > --- a/drivers/iio/accel/mma8452.c
> > > +++ b/drivers/iio/accel/mma8452.c
> > > @@ -1511,10 +1511,14 @@ static int mma8452_reset(struct i2c_client
> *client)
> > >  	int i;
> > >  	int ret;
> > >
> > > -	ret = i2c_smbus_write_byte_data(client,	MMA8452_CTRL_REG2,
> > > +	/*
> > > +	 * Find on fxls8471, after config reset bit, it reset immediately,
> > > +	 * and will not give ACK, so here do not check the return value.
> > > +	 * The following code will read the reset register, and check whether
> > > +	 * this reset works.
> > > +	 */
> > > +	i2c_smbus_write_byte_data(client, MMA8452_CTRL_REG2,
> > >  					MMA8452_CTRL_REG2_RST);
> > > -	if (ret < 0)
> > > -		return ret;
> > >
> > >  	for (i = 0; i < 10; i++) {
> > >  		usleep_range(100, 200);
> >
Jonathan Cameron June 18, 2022, 4:30 p.m. UTC | #4
On Thu, 16 Jun 2022 01:34:03 +0000
Bough Chen <haibo.chen@nxp.com> wrote:

> > -----Original Message-----
> > From: Jonathan Cameron <jic23@kernel.org>
> > Sent: 2022年6月16日 5:16
> > To: Hans de Goede <hdegoede@redhat.com>
> > Cc: Bough Chen <haibo.chen@nxp.com>; lars@metafoo.de;
> > linux-iio@vger.kernel.org; dl-linux-imx <linux-imx@nxp.com>
> > Subject: Re: [PATCH v2] iio: accel: mma8452: ignore the return value of reset
> > operation
> > 
> > On Wed, 15 Jun 2022 18:10:47 +0200
> > Hans de Goede <hdegoede@redhat.com> wrote:
> >   
> > > Hi,
> > >
> > > On 6/15/22 13:31, haibo.chen@nxp.com wrote:  
> > > > From: Haibo Chen <haibo.chen@nxp.com>
> > > >
> > > > On fxls8471, after set the reset bit, the device will reset
> > > > immediately, will not give ACK. So ignore the return value of this
> > > > reset operation, let the following code logic to check whether the reset  
> > operation works.  
> > > >
> > > > Signed-off-by: Haibo Chen <haibo.chen@nxp.com>  
> > >
> > > Thanks, patch looks good to me:
> > >
> > > Reviewed-by: Hans de Goede <hdegoede@redhat.com>  
> > Looks very much like a fix to me, so fixes tag please.
> > As it's otherwise good, just sending the tag in reply to this message will be fine.  
> 
> Thanks for your quick review.
> 
> Fixes: ecabae713196 ("iio: mma8452: Initialise before activating")
Perfect.

Applied to the fixes-togreg branch of iio.git.

Thanks,

Jonathan

> 
> Best Regards
> Bough Chen
> > 
> > Thanks,
> > 
> > Jonathan
> >   
> > >
> > > Regards,
> > >
> > > Hans
> > >
> > >
> > >  
> > > > ---
> > > >  drivers/iio/accel/mma8452.c | 10 +++++++---
> > > >  1 file changed, 7 insertions(+), 3 deletions(-)
> > > >
> > > > diff --git a/drivers/iio/accel/mma8452.c
> > > > b/drivers/iio/accel/mma8452.c index e0f0c0abed28..c7d9ca96dbaa
> > > > 100644
> > > > --- a/drivers/iio/accel/mma8452.c
> > > > +++ b/drivers/iio/accel/mma8452.c
> > > > @@ -1511,10 +1511,14 @@ static int mma8452_reset(struct i2c_client  
> > *client)  
> > > >  	int i;
> > > >  	int ret;
> > > >
> > > > -	ret = i2c_smbus_write_byte_data(client,	MMA8452_CTRL_REG2,
> > > > +	/*
> > > > +	 * Find on fxls8471, after config reset bit, it reset immediately,
> > > > +	 * and will not give ACK, so here do not check the return value.
> > > > +	 * The following code will read the reset register, and check whether
> > > > +	 * this reset works.
> > > > +	 */
> > > > +	i2c_smbus_write_byte_data(client, MMA8452_CTRL_REG2,
> > > >  					MMA8452_CTRL_REG2_RST);
> > > > -	if (ret < 0)
> > > > -		return ret;
> > > >
> > > >  	for (i = 0; i < 10; i++) {
> > > >  		usleep_range(100, 200);  
> > >  
>
diff mbox series

Patch

diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c
index e0f0c0abed28..c7d9ca96dbaa 100644
--- a/drivers/iio/accel/mma8452.c
+++ b/drivers/iio/accel/mma8452.c
@@ -1511,10 +1511,14 @@  static int mma8452_reset(struct i2c_client *client)
 	int i;
 	int ret;
 
-	ret = i2c_smbus_write_byte_data(client,	MMA8452_CTRL_REG2,
+	/*
+	 * Find on fxls8471, after config reset bit, it reset immediately,
+	 * and will not give ACK, so here do not check the return value.
+	 * The following code will read the reset register, and check whether
+	 * this reset works.
+	 */
+	i2c_smbus_write_byte_data(client, MMA8452_CTRL_REG2,
 					MMA8452_CTRL_REG2_RST);
-	if (ret < 0)
-		return ret;
 
 	for (i = 0; i < 10; i++) {
 		usleep_range(100, 200);