lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAAd53p5V2BcjG=Sds==qdOomZpCJON94B93DRU+fPkzTffGCyQ@mail.gmail.com>
Date:   Wed, 25 Aug 2021 18:40:17 +0800
From:   Kai-Heng Feng <kai.heng.feng@...onical.com>
To:     Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
Cc:     LKML <linux-kernel@...r.kernel.org>,
        platform-driver-x86@...r.kernel.org,
        Eric Piel <eric.piel@...mplin-utc.net>,
        Arnd Bergmann <arnd@...db.de>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Hans de Goede <hdegoede@...hat.com>,
        Mark Gross <mgross@...ux.intel.com>
Subject: Re: [PATCH v2 1/2] platform/x86: hp_accel: Remove _INI method call

On Mon, Aug 23, 2021 at 5:32 PM Andy Shevchenko
<andriy.shevchenko@...ux.intel.com> wrote:
>
> 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@...ux.intel.com>

The lis3lv02d still works after boot and after resume.

Tested-by: Kai-Heng Feng <kai.heng.feng@...onical.com>

> ---
>  drivers/misc/lis3lv02d/lis3lv02d.h |  1 -
>  drivers/platform/x86/hp_accel.c    | 14 +-------------
>  2 files changed, 1 insertion(+), 14 deletions(-)
>
> diff --git a/drivers/misc/lis3lv02d/lis3lv02d.h b/drivers/misc/lis3lv02d/lis3lv02d.h
> index 7ac788fae1b8..c394c0b08519 100644
> --- a/drivers/misc/lis3lv02d/lis3lv02d.h
> +++ b/drivers/misc/lis3lv02d/lis3lv02d.h
> @@ -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);
> diff --git a/drivers/platform/x86/hp_accel.c b/drivers/platform/x86/hp_accel.c
> index 8c0867bda828..54a4addc7903 100644
> --- a/drivers/platform/x86/hp_accel.c
> +++ b/drivers/platform/x86/hp_accel.c
> @@ -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;
>  }
> --
> 2.32.0
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ