| From 11e94f28c3de35d5ad1ac6a242a5b30f4378991a Mon Sep 17 00:00:00 2001 |
| From: Hans de Goede <hdegoede@redhat.com> |
| Date: Tue, 10 Nov 2020 14:38:34 +0100 |
| Subject: iio: accel: kxcjk1013: Replace is_smo8500_device with an acpi_type enum |
| |
| From: Hans de Goede <hdegoede@redhat.com> |
| |
| commit 11e94f28c3de35d5ad1ac6a242a5b30f4378991a upstream. |
| |
| Replace the boolean is_smo8500_device variable with an acpi_type enum. |
| |
| For now this can be either ACPI_GENERIC or ACPI_SMO8500, this is a |
| preparation patch for adding special handling for the KIOX010A ACPI HID, |
| which will add a ACPI_KIOX010A acpi_type to the introduced enum. |
| |
| For stable as needed as precursor for next patch. |
| |
| Signed-off-by: Hans de Goede <hdegoede@redhat.com> |
| Fixes: 7f6232e69539 ("iio: accel: kxcjk1013: Add KIOX010A ACPI Hardware-ID") |
| Cc: <Stable@vger.kernel.org> |
| Link: https://lore.kernel.org/r/20201110133835.129080-2-hdegoede@redhat.com |
| Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/iio/accel/kxcjk-1013.c | 15 ++++++++++----- |
| 1 file changed, 10 insertions(+), 5 deletions(-) |
| |
| --- a/drivers/iio/accel/kxcjk-1013.c |
| +++ b/drivers/iio/accel/kxcjk-1013.c |
| @@ -134,6 +134,11 @@ enum kx_chipset { |
| KX_MAX_CHIPS /* this must be last */ |
| }; |
| |
| +enum kx_acpi_type { |
| + ACPI_GENERIC, |
| + ACPI_SMO8500, |
| +}; |
| + |
| struct kxcjk1013_data { |
| struct i2c_client *client; |
| struct iio_trigger *dready_trig; |
| @@ -150,7 +155,7 @@ struct kxcjk1013_data { |
| bool motion_trigger_on; |
| int64_t timestamp; |
| enum kx_chipset chipset; |
| - bool is_smo8500_device; |
| + enum kx_acpi_type acpi_type; |
| }; |
| |
| enum kxcjk1013_axis { |
| @@ -1241,7 +1246,7 @@ static irqreturn_t kxcjk1013_data_rdy_tr |
| |
| static const char *kxcjk1013_match_acpi_device(struct device *dev, |
| enum kx_chipset *chipset, |
| - bool *is_smo8500_device) |
| + enum kx_acpi_type *acpi_type) |
| { |
| const struct acpi_device_id *id; |
| |
| @@ -1250,7 +1255,7 @@ static const char *kxcjk1013_match_acpi_ |
| return NULL; |
| |
| if (strcmp(id->id, "SMO8500") == 0) |
| - *is_smo8500_device = true; |
| + *acpi_type = ACPI_SMO8500; |
| |
| *chipset = (enum kx_chipset)id->driver_data; |
| |
| @@ -1286,7 +1291,7 @@ static int kxcjk1013_probe(struct i2c_cl |
| } else if (ACPI_HANDLE(&client->dev)) { |
| name = kxcjk1013_match_acpi_device(&client->dev, |
| &data->chipset, |
| - &data->is_smo8500_device); |
| + &data->acpi_type); |
| } else |
| return -ENODEV; |
| |
| @@ -1304,7 +1309,7 @@ static int kxcjk1013_probe(struct i2c_cl |
| indio_dev->modes = INDIO_DIRECT_MODE; |
| indio_dev->info = &kxcjk1013_info; |
| |
| - if (client->irq > 0 && !data->is_smo8500_device) { |
| + if (client->irq > 0 && data->acpi_type != ACPI_SMO8500) { |
| ret = devm_request_threaded_irq(&client->dev, client->irq, |
| kxcjk1013_data_rdy_trig_poll, |
| kxcjk1013_event_handler, |