Message ID | 20170509004553.GA21295@dtor-ws (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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' -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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.
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! -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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) -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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)
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(+)