lkml.org 
[lkml]   [2019]   [Nov]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/3] ACPI / LPSS: Rename pwm_backlight pwm-lookup to pwm_soc_backlight
    Date
    At least Bay Trail (BYT) and Cherry Trail (CHT) devices can use 1 of 2
    different PWM controllers for controlling the LCD's backlight brightness.
    Either the one integrated into the PMIC or the one integrated into the
    SoC (the 1st LPSS PWM controller).

    So far in the LPSS code on BYT we have skipped registering the LPSS PWM
    controller "pwm_backlight" lookup entry when a Crystal Cove PMIC is
    present, assuming that in this case the PMIC PWM controller will be used.

    On CHT we have been relying on only 1 of the 2 PWM controllers being
    enabled in the DSDT at the same time; and always registered the lookup.

    So far this has been working, but the correct way to determine which PWM
    controller needs to be used is by checking a bit in the VBT table and
    recently I've learned about 2 different BYT devices:
    Point of View MOBII TAB-P800W
    Acer Switch 10 SW5-012

    Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
    PWM controller (and the VBT correctly indicates this), so here our old
    heuristics fail.

    Since only the i915 driver has access to the VBT, this commit renames
    the "pwm_backlight" lookup entries for the 1st BYT/CHT LPSS PWM controller
    to "pwm_soc_backlight" so that the i915 driver can do a pwm_get() for
    the right controller depending on the VBT bit, instead of the i915 driver
    relying on a "pwm_backlight" lookup getting registered which magically
    points to the right controller.

    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    ---
    drivers/acpi/acpi_lpss.c | 11 +++--------
    1 file changed, 3 insertions(+), 8 deletions(-)

    diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
    index 751ed38f2a10..63e81d8e675b 100644
    --- a/drivers/acpi/acpi_lpss.c
    +++ b/drivers/acpi/acpi_lpss.c
    @@ -69,10 +69,6 @@ ACPI_MODULE_NAME("acpi_lpss");
    #define LPSS_SAVE_CTX BIT(4)
    #define LPSS_NO_D3_DELAY BIT(5)

    -/* Crystal Cove PMIC shares same ACPI ID between different platforms */
    -#define BYT_CRC_HRV 2
    -#define CHT_CRC_HRV 3
    -
    struct lpss_private_data;

    struct lpss_device_desc {
    @@ -158,7 +154,7 @@ static void lpss_deassert_reset(struct lpss_private_data *pdata)
    */
    static struct pwm_lookup byt_pwm_lookup[] = {
    PWM_LOOKUP_WITH_MODULE("80860F09:00", 0, "0000:00:02.0",
    - "pwm_backlight", 0, PWM_POLARITY_NORMAL,
    + "pwm_soc_backlight", 0, PWM_POLARITY_NORMAL,
    "pwm-lpss-platform"),
    };

    @@ -170,8 +166,7 @@ static void byt_pwm_setup(struct lpss_private_data *pdata)
    if (!adev->pnp.unique_id || strcmp(adev->pnp.unique_id, "1"))
    return;

    - if (!acpi_dev_present("INT33FD", NULL, BYT_CRC_HRV))
    - pwm_add_table(byt_pwm_lookup, ARRAY_SIZE(byt_pwm_lookup));
    + pwm_add_table(byt_pwm_lookup, ARRAY_SIZE(byt_pwm_lookup));
    }

    #define LPSS_I2C_ENABLE 0x6c
    @@ -204,7 +199,7 @@ static void byt_i2c_setup(struct lpss_private_data *pdata)
    /* BSW PWM used for backlight control by the i915 driver */
    static struct pwm_lookup bsw_pwm_lookup[] = {
    PWM_LOOKUP_WITH_MODULE("80862288:00", 0, "0000:00:02.0",
    - "pwm_backlight", 0, PWM_POLARITY_NORMAL,
    + "pwm_soc_backlight", 0, PWM_POLARITY_NORMAL,
    "pwm-lpss-platform"),
    };

    --
    2.23.0
    \
     
     \ /
      Last update: 2019-11-19 16:18    [W:3.328 / U:0.124 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site