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
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
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