platform/x86: hp_accel: Remove _INI method call
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 23 Aug 2021 09:32:21 +0000 (12:32 +0300)
committerHans de Goede <hdegoede@redhat.com>
Thu, 26 Aug 2021 13:09:18 +0000 (15:09 +0200)
According to ACPI specification the _INI method must be called
when device is enumerated first time. After that there is no need
to repeat the procedure. Convert the lis3lv02d_acpi_init() to be
a stub (Note, we may not remove it because it is called unconditionally
by the accelerometer main driver).

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Link: https://lore.kernel.org/r/20210823093222.19544-2-andriy.shevchenko@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/misc/lis3lv02d/lis3lv02d.h
drivers/platform/x86/hp_accel.c

index 7ac788fae1b8647b0641c1a50c2a41c39a9c39e3..c394c0b08519aa4a44290ebaf717a52b36051667 100644 (file)
@@ -271,7 +271,6 @@ struct lis3lv02d {
        int                     regs_size;
        u8                      *reg_cache;
        bool                    regs_stored;
-       bool                    init_required;
        u8                      odr_mask;  /* ODR bit mask */
        u8                      whoami;    /* indicates measurement precision */
        s16 (*read_data) (struct lis3lv02d *lis3, int reg);
index 8c0867bda8280e3340f28f1ff821db03db0f3937..54a4addc7903dc28ab826158577560d2595b18f3 100644 (file)
@@ -78,23 +78,14 @@ static const struct acpi_device_id lis3lv02d_device_ids[] = {
 };
 MODULE_DEVICE_TABLE(acpi, lis3lv02d_device_ids);
 
-
 /**
- * lis3lv02d_acpi_init - ACPI _INI method: initialize the device.
+ * lis3lv02d_acpi_init - initialize the device for ACPI
  * @lis3: pointer to the device struct
  *
  * Returns 0 on success.
  */
 static int lis3lv02d_acpi_init(struct lis3lv02d *lis3)
 {
-       struct acpi_device *dev = lis3->bus_priv;
-       if (!lis3->init_required)
-               return 0;
-
-       if (acpi_evaluate_object(dev->handle, METHOD_NAME__INI,
-                                NULL, NULL) != AE_OK)
-               return -EINVAL;
-
        return 0;
 }
 
@@ -359,7 +350,6 @@ static int lis3lv02d_add(struct acpi_device *device)
        }
 
        /* call the core layer do its init */
-       lis3_dev.init_required = true;
        ret = lis3lv02d_init_device(&lis3_dev);
        if (ret)
                return ret;
@@ -407,14 +397,12 @@ static int lis3lv02d_suspend(struct device *dev)
 
 static int lis3lv02d_resume(struct device *dev)
 {
-       lis3_dev.init_required = false;
        lis3lv02d_poweron(&lis3_dev);
        return 0;
 }
 
 static int lis3lv02d_restore(struct device *dev)
 {
-       lis3_dev.init_required = true;
        lis3lv02d_poweron(&lis3_dev);
        return 0;
 }