2012-02-19 19:56:11

by Corentin Chary

[permalink] [raw]
Subject: Re: [PATCH] ACPI / Video: blacklist some samsung laptops

On Mon, Jan 30, 2012 at 9:26 AM, Corentin Chary
<[email protected]> wrote:
> On Tue, Jan 17, 2012 at 8:08 AM, Corentin Chary <[email protected]> wrote:
>> On these laptops, the ACPI video is not functional, and very unlikely
>> to be fixed by the vendor. Note that intel_backlight works for some
>> of these laptops, and the backlight from samsung-laptop always work.
>>
>> The good news is that newer laptops have functional ACPI video device
>> and won't end up growing this list.
>>
>> Signed-off-by: Corentin Chary <[email protected]>
>> ---
>>  drivers/acpi/video_detect.c |   49 +++++++++++++++++++++++++++++++++++++++++++
>>  1 files changed, 49 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
>> index 45d8097..66be45e 100644
>> --- a/drivers/acpi/video_detect.c
>> +++ b/drivers/acpi/video_detect.c
>> @@ -132,6 +132,53 @@ find_video(acpi_handle handle, u32 lvl, void *context, void **rv)
>>        return AE_OK;
>>  }
>>
>> +/* Force to use vendor driver when the ACPI device is known to be
>> + * buggy */
>> +static int video_detect_force_vendor(const struct dmi_system_id *d)
>> +{
>> +       acpi_video_support |= ACPI_VIDEO_BACKLIGHT_DMI_VENDOR;
>> +       return 0;
>> +}
>> +
>> +static struct dmi_system_id video_detect_dmi_table[] = {
>> +       {
>> +        .callback = video_detect_force_vendor,
>> +        .ident = "N150P",
>> +        .matches = {
>> +               DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
>> +               DMI_MATCH(DMI_PRODUCT_NAME, "N150P"),
>> +               DMI_MATCH(DMI_BOARD_NAME, "N150P"),
>> +               },
>> +       },
>> +       {
>> +        .callback = video_detect_force_vendor,
>> +        .ident = "N145P/N250P/N260P",
>> +        .matches = {
>> +               DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
>> +               DMI_MATCH(DMI_PRODUCT_NAME, "N145P/N250P/N260P"),
>> +               DMI_MATCH(DMI_BOARD_NAME, "N145P/N250P/N260P"),
>> +               },
>> +       },
>> +       {
>> +        .callback = video_detect_force_vendor,
>> +        .ident = "N150/N210/N220",
>> +        .matches = {
>> +               DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
>> +               DMI_MATCH(DMI_PRODUCT_NAME, "N150/N210/N220"),
>> +               DMI_MATCH(DMI_BOARD_NAME, "N150/N210/N220"),
>> +               },
>> +       },
>> +       {
>> +        .callback = video_detect_force_vendor,
>> +        .ident = "NF110/NF210/NF310",
>> +        .matches = {
>> +               DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
>> +               DMI_MATCH(DMI_PRODUCT_NAME, "NF110/NF210/NF310"),
>> +               DMI_MATCH(DMI_BOARD_NAME, "NF110/NF210/NF310"),
>> +               },
>> +       },
>> +};
>> +
>>  /*
>>  * Returns the video capabilities of a specific ACPI graphics device
>>  *
>> @@ -164,6 +211,8 @@ long acpi_video_get_capabilities(acpi_handle graphics_handle)
>>                 *              ACPI_VIDEO_BACKLIGHT_DMI_VENDOR;
>>                 *}
>>                 */
>> +
>> +               dmi_check_system(video_detect_dmi_table);
>>        } else {
>>                status = acpi_bus_get_device(graphics_handle, &tmp_dev);
>>                if (ACPI_FAILURE(status)) {
>> --
>> 1.7.5.4
>>
>
> Hi Len,
>
> Maybe this patch should go through your tree and not platform-drivers-x86 ?

Ping ?

--
Corentin Chary
http://xf.iksaif.net


2012-02-20 11:06:30

by David Herrmann

[permalink] [raw]
Subject: Re: [PATCH] ACPI / Video: blacklist some samsung laptops

Hi Len

On Sun, Feb 19, 2012 at 8:56 PM, Corentin Chary
<[email protected]> wrote:
> On Mon, Jan 30, 2012 at 9:26 AM, Corentin Chary
> <[email protected]> wrote:
>> On Tue, Jan 17, 2012 at 8:08 AM, Corentin Chary <[email protected]> wrote:
>>> On these laptops, the ACPI video is not functional, and very unlikely
>>> to be fixed by the vendor. Note that intel_backlight works for some
>>> of these laptops, and the backlight from samsung-laptop always work.
>>>
>>> The good news is that newer laptops have functional ACPI video device
>>> and won't end up growing this list.
>>>
>>> Signed-off-by: Corentin Chary <[email protected]>
>>> ---
>>> ?drivers/acpi/video_detect.c | ? 49 +++++++++++++++++++++++++++++++++++++++++++
>>> ?1 files changed, 49 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
>>> index 45d8097..66be45e 100644
>>> --- a/drivers/acpi/video_detect.c
>>> +++ b/drivers/acpi/video_detect.c
>>> @@ -132,6 +132,53 @@ find_video(acpi_handle handle, u32 lvl, void *context, void **rv)
>>> ? ? ? ?return AE_OK;
>>> ?}
>>>
>>> +/* Force to use vendor driver when the ACPI device is known to be
>>> + * buggy */
>>> +static int video_detect_force_vendor(const struct dmi_system_id *d)
>>> +{
>>> + ? ? ? acpi_video_support |= ACPI_VIDEO_BACKLIGHT_DMI_VENDOR;
>>> + ? ? ? return 0;
>>> +}
>>> +
>>> +static struct dmi_system_id video_detect_dmi_table[] = {
>>> + ? ? ? {
>>> + ? ? ? ?.callback = video_detect_force_vendor,
>>> + ? ? ? ?.ident = "N150P",
>>> + ? ? ? ?.matches = {
>>> + ? ? ? ? ? ? ? DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
>>> + ? ? ? ? ? ? ? DMI_MATCH(DMI_PRODUCT_NAME, "N150P"),
>>> + ? ? ? ? ? ? ? DMI_MATCH(DMI_BOARD_NAME, "N150P"),
>>> + ? ? ? ? ? ? ? },
>>> + ? ? ? },
>>> + ? ? ? {
>>> + ? ? ? ?.callback = video_detect_force_vendor,
>>> + ? ? ? ?.ident = "N145P/N250P/N260P",
>>> + ? ? ? ?.matches = {
>>> + ? ? ? ? ? ? ? DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
>>> + ? ? ? ? ? ? ? DMI_MATCH(DMI_PRODUCT_NAME, "N145P/N250P/N260P"),
>>> + ? ? ? ? ? ? ? DMI_MATCH(DMI_BOARD_NAME, "N145P/N250P/N260P"),
>>> + ? ? ? ? ? ? ? },
>>> + ? ? ? },
>>> + ? ? ? {
>>> + ? ? ? ?.callback = video_detect_force_vendor,
>>> + ? ? ? ?.ident = "N150/N210/N220",
>>> + ? ? ? ?.matches = {
>>> + ? ? ? ? ? ? ? DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
>>> + ? ? ? ? ? ? ? DMI_MATCH(DMI_PRODUCT_NAME, "N150/N210/N220"),
>>> + ? ? ? ? ? ? ? DMI_MATCH(DMI_BOARD_NAME, "N150/N210/N220"),
>>> + ? ? ? ? ? ? ? },
>>> + ? ? ? },
>>> + ? ? ? {
>>> + ? ? ? ?.callback = video_detect_force_vendor,
>>> + ? ? ? ?.ident = "NF110/NF210/NF310",
>>> + ? ? ? ?.matches = {
>>> + ? ? ? ? ? ? ? DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
>>> + ? ? ? ? ? ? ? DMI_MATCH(DMI_PRODUCT_NAME, "NF110/NF210/NF310"),
>>> + ? ? ? ? ? ? ? DMI_MATCH(DMI_BOARD_NAME, "NF110/NF210/NF310"),
>>> + ? ? ? ? ? ? ? },
>>> + ? ? ? },
>>> +};
>>> +
>>> ?/*
>>> ?* Returns the video capabilities of a specific ACPI graphics device
>>> ?*
>>> @@ -164,6 +211,8 @@ long acpi_video_get_capabilities(acpi_handle graphics_handle)
>>> ? ? ? ? ? ? ? ? * ? ? ? ? ? ? ?ACPI_VIDEO_BACKLIGHT_DMI_VENDOR;
>>> ? ? ? ? ? ? ? ? *}
>>> ? ? ? ? ? ? ? ? */
>>> +
>>> + ? ? ? ? ? ? ? dmi_check_system(video_detect_dmi_table);
>>> ? ? ? ?} else {
>>> ? ? ? ? ? ? ? ?status = acpi_bus_get_device(graphics_handle, &tmp_dev);
>>> ? ? ? ? ? ? ? ?if (ACPI_FAILURE(status)) {
>>> --
>>> 1.7.5.4
>>>
>>
>> Hi Len,
>>
>> Maybe this patch should go through your tree and not platform-drivers-x86 ?
>
> Ping ?

This is actually a regression on Samsung notebooks as the backlight is
no longer working with linux-3.2. It would be really nice to see this
in the stable branch or at least in linux-3.3.

The samsung driver disables its own backlight driver if ACPI core
handles the backlight since linux-3.2. If you don't want to pickup
this patch it would be nice to see the samsung driver fixing this
issue.

Regards
David

> --
> Corentin Chary
> http://xf.iksaif.net

2012-02-20 14:27:09

by Corentin Chary

[permalink] [raw]
Subject: Re: [PATCH] ACPI / Video: blacklist some samsung laptops

On Mon, Feb 20, 2012 at 12:06 PM, David Herrmann
<[email protected]> wrote:
> Hi Len
>
> On Sun, Feb 19, 2012 at 8:56 PM, Corentin Chary
> <[email protected]> wrote:
>> On Mon, Jan 30, 2012 at 9:26 AM, Corentin Chary
>> <[email protected]> wrote:
>>> On Tue, Jan 17, 2012 at 8:08 AM, Corentin Chary <[email protected]> wrote:
>>>> On these laptops, the ACPI video is not functional, and very unlikely
>>>> to be fixed by the vendor. Note that intel_backlight works for some
>>>> of these laptops, and the backlight from samsung-laptop always work.
>>>>
>>>> The good news is that newer laptops have functional ACPI video device
>>>> and won't end up growing this list.
>>>>
>>>> Signed-off-by: Corentin Chary <[email protected]>
>>>> ---
>>>>  drivers/acpi/video_detect.c |   49 +++++++++++++++++++++++++++++++++++++++++++
>>>>  1 files changed, 49 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
>>>> index 45d8097..66be45e 100644
>>>> --- a/drivers/acpi/video_detect.c
>>>> +++ b/drivers/acpi/video_detect.c
>>>> @@ -132,6 +132,53 @@ find_video(acpi_handle handle, u32 lvl, void *context, void **rv)
>>>>        return AE_OK;
>>>>  }
>>>>
>>>> +/* Force to use vendor driver when the ACPI device is known to be
>>>> + * buggy */
>>>> +static int video_detect_force_vendor(const struct dmi_system_id *d)
>>>> +{
>>>> +       acpi_video_support |= ACPI_VIDEO_BACKLIGHT_DMI_VENDOR;
>>>> +       return 0;
>>>> +}
>>>> +
>>>> +static struct dmi_system_id video_detect_dmi_table[] = {
>>>> +       {
>>>> +        .callback = video_detect_force_vendor,
>>>> +        .ident = "N150P",
>>>> +        .matches = {
>>>> +               DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
>>>> +               DMI_MATCH(DMI_PRODUCT_NAME, "N150P"),
>>>> +               DMI_MATCH(DMI_BOARD_NAME, "N150P"),
>>>> +               },
>>>> +       },
>>>> +       {
>>>> +        .callback = video_detect_force_vendor,
>>>> +        .ident = "N145P/N250P/N260P",
>>>> +        .matches = {
>>>> +               DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
>>>> +               DMI_MATCH(DMI_PRODUCT_NAME, "N145P/N250P/N260P"),
>>>> +               DMI_MATCH(DMI_BOARD_NAME, "N145P/N250P/N260P"),
>>>> +               },
>>>> +       },
>>>> +       {
>>>> +        .callback = video_detect_force_vendor,
>>>> +        .ident = "N150/N210/N220",
>>>> +        .matches = {
>>>> +               DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
>>>> +               DMI_MATCH(DMI_PRODUCT_NAME, "N150/N210/N220"),
>>>> +               DMI_MATCH(DMI_BOARD_NAME, "N150/N210/N220"),
>>>> +               },
>>>> +       },
>>>> +       {
>>>> +        .callback = video_detect_force_vendor,
>>>> +        .ident = "NF110/NF210/NF310",
>>>> +        .matches = {
>>>> +               DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
>>>> +               DMI_MATCH(DMI_PRODUCT_NAME, "NF110/NF210/NF310"),
>>>> +               DMI_MATCH(DMI_BOARD_NAME, "NF110/NF210/NF310"),
>>>> +               },
>>>> +       },
>>>> +};
>>>> +
>>>>  /*
>>>>  * Returns the video capabilities of a specific ACPI graphics device
>>>>  *
>>>> @@ -164,6 +211,8 @@ long acpi_video_get_capabilities(acpi_handle graphics_handle)
>>>>                 *              ACPI_VIDEO_BACKLIGHT_DMI_VENDOR;
>>>>                 *}
>>>>                 */
>>>> +
>>>> +               dmi_check_system(video_detect_dmi_table);
>>>>        } else {
>>>>                status = acpi_bus_get_device(graphics_handle, &tmp_dev);
>>>>                if (ACPI_FAILURE(status)) {
>>>> --
>>>> 1.7.5.4
>>>>
>>>
>>> Hi Len,
>>>
>>> Maybe this patch should go through your tree and not platform-drivers-x86 ?
>>
>> Ping ?
>
> This is actually a regression on Samsung notebooks as the backlight is
> no longer working with linux-3.2. It would be really nice to see this
> in the stable branch or at least in linux-3.3.
>
> The samsung driver disables its own backlight driver if ACPI core
> handles the backlight since linux-3.2. If you don't want to pickup
> this patch it would be nice to see the samsung driver fixing this
> issue.
>
> Regards
> David

David, please note that non of my changes are merged in 3.2 or 3.3,
they are still in the platform-x86 tree.
But you are right, if they are merged in 3.4 (and I really hope so)
then we will need this patch or there will be a regression.
Anyway, this patch can, and should, be merged as soon as possible
because DE or even xrandr may want to use the non functionnal acpi
backlight instead of others.

Thanks,


--
Corentin Chary
http://xf.iksaif.net