From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from saturn.retrosnub.co.uk ([178.18.118.26]:42995 "EHLO saturn.retrosnub.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754468AbaKEOin (ORCPT ); Wed, 5 Nov 2014 09:38:43 -0500 Message-ID: <545A3671.2010102@kernel.org> Date: Wed, 05 Nov 2014 14:38:41 +0000 From: Jonathan Cameron MIME-Version: 1.0 To: Bastien Nocera , linux-iio@vger.kernel.org, Srinivas Pandruvada , Daniel Baluta Subject: Re: [PATCH v3] iio:kxcjk-1013: Add support for SMO8500 device References: <1415056822.4506.24.camel@hadess.net> In-Reply-To: <1415056822.4506.24.camel@hadess.net> Content-Type: text/plain; charset=utf-8 Sender: linux-iio-owner@vger.kernel.org List-Id: linux-iio@vger.kernel.org On 03/11/14 23:20, Bastien Nocera wrote: > The Onda v975w tablet contains an accelerometer that's advertised over > ACPI as SMO8500. This device is however a KXCJ9 accelerometer as > can be seen in the Windows driver's INF file, and from the etching on > the chipset ("KXCJ9 41566 0414"). > > This patch also removes the attempt to get the IRQ for the "data ready" > signal, as it does not seem to be supported by this device on this > platform. > > Signed-off-by: Bastien Nocera Looks fine to me, but I'd ideally like an ack / review from Srinivas as it's his driver... (and/or Daniel) > > --- > > Changes from v1: > - Rebase after driver changes > - Stop checking for IRQ when not supported > > Changes from v2: > - Fixed the space before the opening bracket > - Added Sob line > - Add version to the patch subject line ;) > > --- > drivers/iio/accel/kxcjk-1013.c | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c > index 98909a9..3e966c2 100644 > --- a/drivers/iio/accel/kxcjk-1013.c > +++ b/drivers/iio/accel/kxcjk-1013.c > @@ -108,6 +108,7 @@ struct kxcjk1013_data { > bool motion_trigger_on; > int64_t timestamp; > enum kx_chipset chipset; > + bool is_smo8500_device; > }; > > enum kxcjk1013_axis { > @@ -1129,12 +1130,15 @@ static irqreturn_t kxcjk1013_data_rdy_trig_poll(int irq, void *private) > } > > static const char *kxcjk1013_match_acpi_device(struct device *dev, > - enum kx_chipset *chipset) > + enum kx_chipset *chipset, > + bool *is_smo8500_device) > { > const struct acpi_device_id *id; > id = acpi_match_device(dev->driver->acpi_match_table, dev); > if (!id) > return NULL; > + if (strcmp(id->id, "SMO8500") == 0) > + *is_smo8500_device = true; > *chipset = (enum kx_chipset)id->driver_data; > > return dev_name(dev); > @@ -1149,6 +1153,8 @@ static int kxcjk1013_gpio_probe(struct i2c_client *client, > > if (!client) > return -EINVAL; > + if (data->is_smo8500_device) > + return -ENOTSUPP; > > dev = &client->dev; > > @@ -1198,7 +1204,8 @@ static int kxcjk1013_probe(struct i2c_client *client, > name = id->name; > } else if (ACPI_HANDLE(&client->dev)) { > name = kxcjk1013_match_acpi_device(&client->dev, > - &data->chipset); > + &data->chipset, > + &data->is_smo8500_device); > } else > return -ENODEV; > > @@ -1397,6 +1404,7 @@ static const struct acpi_device_id kx_acpi_match[] = { > {"KXCJ1013", KXCJK1013}, > {"KXCJ1008", KXCJ91008}, > {"KXTJ1009", KXTJ21009}, > + {"SMO8500", KXCJK1013}, > { }, > }; > MODULE_DEVICE_TABLE(acpi, kx_acpi_match); > @@ -1405,6 +1413,7 @@ static const struct i2c_device_id kxcjk1013_id[] = { > {"kxcjk1013", KXCJK1013}, > {"kxcj91008", KXCJ91008}, > {"kxtj21009", KXTJ21009}, > + {"SMO8500", KXCJK1013}, > {} > }; > >