lkml.org 
[lkml]   [2019]   [Dec]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 4.19 082/321] ACPI / LPSS: Ignore acpi_device_fix_up_power() return value
    From
    Date
    Hi,

    On 04-12-2019 22:27, Pavel Machek wrote:
    > Hi!
    >
    >> From: Hans de Goede <hdegoede@redhat.com>
    >>
    >> [ Upstream commit 1a2fa02f7489dc4d746f2a15fb77b3ce1affade8 ]
    >>
    >> Ignore acpi_device_fix_up_power() return value. If we return an error
    >> we end up with acpi_default_enumeration() still creating a platform-
    >> device for the device and we end up with the device still being used
    >> but without the special LPSS related handling which is not useful.
    >>
    >> Specicifically ignoring the error fixes the touchscreen no longer
    >> working after a suspend/resume on a Prowise PT301 tablet.
    >
    > I'm pretty sure it does, but:
    >
    > a) do you believe this is right patch for -stable? Should it get lot
    > more testing in mainline as it.... may change things in a wrong way
    > for someone else?

    This has already been answered by Rafael.

    > b) if we are ignoring errors now, should we at least printk() to let
    > the user know that something is wrong with the ACPI tables?

    acpi_device_fix_up_power() fails when the ACPI _PS0 method fails and
    when there are errors while executing an ACPI method the ACPI subsystem
    already is pretty verbose about this.

    Regards,

    Hans


    >
    > Best regards,
    > Pavel
    >
    >> diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
    >> index b21c241aaab9f..30ccd94f87d24 100644
    >> --- a/drivers/acpi/acpi_lpss.c
    >> +++ b/drivers/acpi/acpi_lpss.c
    >> @@ -665,12 +665,7 @@ static int acpi_lpss_create_device(struct acpi_device *adev,
    >> * have _PS0 and _PS3 without _PSC (and no power resources), so
    >> * acpi_bus_init_power() will assume that the BIOS has put them into D0.
    >> */
    >> - ret = acpi_device_fix_up_power(adev);
    >> - if (ret) {
    >> - /* Skip the device, but continue the namespace scan. */
    >> - ret = 0;
    >> - goto err_out;
    >> - }
    >> + acpi_device_fix_up_power(adev);
    >
    >
    >
    >> adev->driver_data = pdata;
    >> pdev = acpi_create_platform_device(adev, dev_desc->properties);
    >

    \
     
     \ /
      Last update: 2019-12-05 11:53    [W:5.153 / U:0.196 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site