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

From: Corentin Chary
Date: Mon Feb 20 2012 - 09:27:08 EST


On Mon, Feb 20, 2012 at 12:06 PM, David Herrmann
<dh.herrmann@xxxxxxxxxxxxxx> wrote:
> Hi Len
>
> On Sun, Feb 19, 2012 at 8:56 PM, Corentin Chary
> <corentin.chary@xxxxxxxxx> wrote:
>> On Mon, Jan 30, 2012 at 9:26 AM, Corentin Chary
>> <corentin.chary@xxxxxxxxx> wrote:
>>> On Tue, Jan 17, 2012 at 8:08 AM, Corentin Chary <corentincj@xxxxxxxxxx> 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 <corentincj@xxxxxxxxxx>
>>>> ---
>>>> Â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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/