iio: accel: kxcjk1013: Replace is_smo8500_device with an acpi_type enum
authorHans de Goede <hdegoede@redhat.com>
Tue, 10 Nov 2020 13:38:34 +0000 (14:38 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 14 Nov 2020 17:32:25 +0000 (17:32 +0000)
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>
drivers/iio/accel/kxcjk-1013.c

index beb38d9..abeb0d2 100644 (file)
@@ -126,6 +126,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;
@@ -143,7 +148,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 {
@@ -1247,7 +1252,7 @@ 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,
-                                              bool *is_smo8500_device)
+                                              enum kx_acpi_type *acpi_type)
 {
        const struct acpi_device_id *id;
 
@@ -1256,7 +1261,7 @@ static const char *kxcjk1013_match_acpi_device(struct device *dev,
                return NULL;
 
        if (strcmp(id->id, "SMO8500") == 0)
-               *is_smo8500_device = true;
+               *acpi_type = ACPI_SMO8500;
 
        *chipset = (enum kx_chipset)id->driver_data;
 
@@ -1299,7 +1304,7 @@ static int kxcjk1013_probe(struct i2c_client *client,
        } 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;
 
@@ -1316,7 +1321,7 @@ static int kxcjk1013_probe(struct i2c_client *client,
        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,