All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] Input: elan_i2c - check if device is there before really probing
@ 2017-05-09  0:45 Dmitry Torokhov
  2017-05-09  1:43 ` Fabio Estevam
  2017-05-11 20:51 ` [v2] " Guenter Roeck
  0 siblings, 2 replies; 5+ messages in thread
From: Dmitry Torokhov @ 2017-05-09  0:45 UTC (permalink / raw)
  To: linux-input; +Cc: KT Liao, Benjamin Tissoires, Guenter Roeck, linux-kernel

Before trying to properly initialize the touchpad and generate bunch of
errors, let's first see it there is anything at the given address. If we
get error, fail silently with -ENXIO.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---

v2: switched over to i2c_smbus_read_byte() as Guenter suggested

 drivers/input/mouse/elan_i2c_core.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c
index 5d3b53dd2fa2..3b616cb7c67f 100644
--- a/drivers/input/mouse/elan_i2c_core.c
+++ b/drivers/input/mouse/elan_i2c_core.c
@@ -1091,6 +1091,13 @@ static int elan_probe(struct i2c_client *client,
 		return error;
 	}
 
+	/* Make sure there is something at this address */
+	error = i2c_smbus_read_byte(client);
+	if (error < 0) {
+		dev_dbg(&client->dev, "nothing at this address: %d\n", error);
+		return -ENXIO;
+	}
+
 	/* Initialize the touchpad. */
 	error = elan_initialize(data);
 	if (error)
-- 
2.13.0.rc2.291.g57267f2277-goog


-- 
Dmitry

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] Input: elan_i2c - check if device is there before really probing
  2017-05-09  0:45 [PATCH v2] Input: elan_i2c - check if device is there before really probing Dmitry Torokhov
@ 2017-05-09  1:43 ` Fabio Estevam
  2017-05-10  0:46   ` Dmitry Torokhov
  2017-05-11 20:51 ` [v2] " Guenter Roeck
  1 sibling, 1 reply; 5+ messages in thread
From: Fabio Estevam @ 2017-05-09  1:43 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: linux-input, KT Liao, Benjamin Tissoires, Guenter Roeck, linux-kernel

On Mon, May 8, 2017 at 9:45 PM, Dmitry Torokhov
<dmitry.torokhov@gmail.com> wrote:

> +       /* Make sure there is something at this address */
> +       error = i2c_smbus_read_byte(client);
> +       if (error < 0) {
> +               dev_dbg(&client->dev, "nothing at this address: %d\n", error);
> +               return -ENXIO;

You could return the real error code here: 'return error'

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] Input: elan_i2c - check if device is there before really probing
  2017-05-09  1:43 ` Fabio Estevam
@ 2017-05-10  0:46   ` Dmitry Torokhov
  2017-05-10  0:49     ` Fabio Estevam
  0 siblings, 1 reply; 5+ messages in thread
From: Dmitry Torokhov @ 2017-05-10  0:46 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-input, KT Liao, Benjamin Tissoires, Guenter Roeck, linux-kernel

On Mon, May 08, 2017 at 10:43:36PM -0300, Fabio Estevam wrote:
> On Mon, May 8, 2017 at 9:45 PM, Dmitry Torokhov
> <dmitry.torokhov@gmail.com> wrote:
> 
> > +       /* Make sure there is something at this address */
> > +       error = i2c_smbus_read_byte(client);
> > +       if (error < 0) {
> > +               dev_dbg(&client->dev, "nothing at this address: %d\n", error);
> > +               return -ENXIO;
> 
> You could return the real error code here: 'return error'

That is the point of the patch - we want to fail silently if the device
is not actually there and fails even the simplest communication. Driver
core treats ENXIO and ENODEV as special and does not log errors.

Thanks.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] Input: elan_i2c - check if device is there before really probing
  2017-05-10  0:46   ` Dmitry Torokhov
@ 2017-05-10  0:49     ` Fabio Estevam
  0 siblings, 0 replies; 5+ messages in thread
From: Fabio Estevam @ 2017-05-10  0:49 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: linux-input, KT Liao, Benjamin Tissoires, Guenter Roeck, linux-kernel

On Tue, May 9, 2017 at 9:46 PM, Dmitry Torokhov
<dmitry.torokhov@gmail.com> wrote:

> That is the point of the patch - we want to fail silently if the device
> is not actually there and fails even the simplest communication. Driver
> core treats ENXIO and ENODEV as special and does not log errors.

Got it, thanks for the explanation!

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [v2] Input: elan_i2c - check if device is there before really probing
  2017-05-09  0:45 [PATCH v2] Input: elan_i2c - check if device is there before really probing Dmitry Torokhov
  2017-05-09  1:43 ` Fabio Estevam
@ 2017-05-11 20:51 ` Guenter Roeck
  1 sibling, 0 replies; 5+ messages in thread
From: Guenter Roeck @ 2017-05-11 20:51 UTC (permalink / raw)
  To: Dmitry Torokhov; +Cc: linux-input, KT Liao, Benjamin Tissoires, linux-kernel

On Mon, May 08, 2017 at 05:45:53PM -0700, Dmitry Torokhov wrote:
> Before trying to properly initialize the touchpad and generate bunch of
> errors, let's first see it there is anything at the given address. If we
> get error, fail silently with -ENXIO.
> 
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Reviewed-by: Guenter Roeck <linux@roeck-us.net>

> ---
> 
> v2: switched over to i2c_smbus_read_byte() as Guenter suggested
> 
>  drivers/input/mouse/elan_i2c_core.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c
> index 5d3b53dd2fa2..3b616cb7c67f 100644
> --- a/drivers/input/mouse/elan_i2c_core.c
> +++ b/drivers/input/mouse/elan_i2c_core.c
> @@ -1091,6 +1091,13 @@ static int elan_probe(struct i2c_client *client,
>  		return error;
>  	}
>  
> +	/* Make sure there is something at this address */
> +	error = i2c_smbus_read_byte(client);
> +	if (error < 0) {
> +		dev_dbg(&client->dev, "nothing at this address: %d\n", error);
> +		return -ENXIO;
> +	}
> +
>  	/* Initialize the touchpad. */
>  	error = elan_initialize(data);
>  	if (error)

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-05-11 20:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-09  0:45 [PATCH v2] Input: elan_i2c - check if device is there before really probing Dmitry Torokhov
2017-05-09  1:43 ` Fabio Estevam
2017-05-10  0:46   ` Dmitry Torokhov
2017-05-10  0:49     ` Fabio Estevam
2017-05-11 20:51 ` [v2] " Guenter Roeck

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.