Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1637801 > unrolled thread

[PATCH v2] Input: elan_i2c - check if device is there before really probing

Started byDmitry Torokhov <dmitry.torokhov@gmail.com>
First post2017-05-09 02:50 +0200
Last post2017-05-10 03:00 +0200
Articles 4 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH v2] Input: elan_i2c - check if device is there before really  probing Dmitry Torokhov <dmitry.torokhov@gmail.com> - 2017-05-09 02:50 +0200
    Re: [PATCH v2] Input: elan_i2c - check if device is there before  really probing Fabio Estevam <festevam@gmail.com> - 2017-05-09 03:50 +0200
      Re: [PATCH v2] Input: elan_i2c - check if device is there before  really probing Dmitry Torokhov <dmitry.torokhov@gmail.com> - 2017-05-10 02:50 +0200
        Re: [PATCH v2] Input: elan_i2c - check if device is there before  really probing Fabio Estevam <festevam@gmail.com> - 2017-05-10 03:00 +0200

#1637801 — [PATCH v2] Input: elan_i2c - check if device is there before really probing

FromDmitry Torokhov <dmitry.torokhov@gmail.com>
Date2017-05-09 02:50 +0200
Subject[PATCH v2] Input: elan_i2c - check if device is there before really probing
Message-ID<tF1vH-2K6-1@gated-at.bofh.it>
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

[toc] | [next] | [standalone]


#1637815 — Re: [PATCH v2] Input: elan_i2c - check if device is there before really probing

FromFabio Estevam <festevam@gmail.com>
Date2017-05-09 03:50 +0200
SubjectRe: [PATCH v2] Input: elan_i2c - check if device is there before really probing
Message-ID<tF2rM-3nF-11@gated-at.bofh.it>
In reply to#1637801
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'

[toc] | [prev] | [next] | [standalone]


#1638471 — Re: [PATCH v2] Input: elan_i2c - check if device is there before really probing

FromDmitry Torokhov <dmitry.torokhov@gmail.com>
Date2017-05-10 02:50 +0200
SubjectRe: [PATCH v2] Input: elan_i2c - check if device is there before really probing
Message-ID<tFnZf-Uf-1@gated-at.bofh.it>
In reply to#1637815
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

[toc] | [prev] | [next] | [standalone]


#1638477 — Re: [PATCH v2] Input: elan_i2c - check if device is there before really probing

FromFabio Estevam <festevam@gmail.com>
Date2017-05-10 03:00 +0200
SubjectRe: [PATCH v2] Input: elan_i2c - check if device is there before really probing
Message-ID<tFo8V-Xu-1@gated-at.bofh.it>
In reply to#1638471
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!

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web