Re: Synaptics touchscreen for HTC Dream: check that smbus is available

Andrew Morton
2009-08-17T23:47:59Z

On Sat, 8 Aug 2009 15:40:50 +0200
Pavel Machek <pavel-+ZI9xUNit7I@public.gmane.org> wrote:

> > >> Because this driver is using smbus i2c apis, it will be good to add
> > >> that check too.
> > >
> > > So I should do something like
> > >
> > > if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_WORD_DATA))
> > > __ __ __ __...
> > >
> > > in addition?
> >
> > Yes.
>
> Ok, here it is.
>
> ---
>
> Check that SMBUS APIs are available in touchscreen driver.

Why?

> Signed-off-by: Pavel Machek <pavel-+ZI9xUNit7I@public.gmane.org>
>
> diff --git a/drivers/staging/dream/synaptics_i2c_rmi.c b/drivers/staging/dream/synaptics_i2c_rmi.c
> index dc1e3c7..6e23276 100644
> --- a/drivers/staging/dream/synaptics_i2c_rmi.c
> +++ b/drivers/staging/dream/synaptics_i2c_rmi.c
> @@ -373,6 +373,12 @@ static int __devinit synaptics_ts_probe(
> goto err_check_functionality_failed;
> }
>
> + if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_WORD_DATA)) {
> + pr_err("synaptics_ts_probe: need I2C_FUNC_SMBUS_WORD_DATA\n");
> + ret = -ENODEV;
> + goto err_check_functionality_failed;
> + }
> +
> ts = kzalloc(sizeof(*ts), GFP_KERNEL);
> if (ts == NULL) {
> ret = -ENOMEM;