From: Hans de Goede <hdegoede@redhat.com>
To: Darren Hart <dvhart@infradead.org>
Cc: stable@vger.kernel.org, platform-driver-x86@vger.kernel.org,
Bertrik Sikken <bertrik@sikken.nl>
Subject: Re: [PATCH] samsung-laptop: Add use_native_backlight quirk, and enable it on some models
Date: Tue, 13 Jan 2015 08:42:45 +0100 [thread overview]
Message-ID: <54B4CC75.4030807@redhat.com> (raw)
In-Reply-To: <20150113040308.GA98306@vmdeb7>
Hi,
On 13-01-15 05:03, Darren Hart wrote:
> On Fri, Jan 09, 2015 at 03:10:01PM +0100, Hans de Goede wrote:
>> Since kernel 3.14 the backlight control has been broken on various Samsung
>> Atom based netbooks. This has been bisected and this problem happens since
>> commit b35684b8fa94 ("drm/i915: do full backlight setup at enable time")
>>
>> This has been reported and discussed in detail here:
>> http://lists.freedesktop.org/archives/intel-gfx/2014-July/049395.html
>>
>> Unfortunately no-one has been able to fix this. This only affects Samsung
>> Atom netbooks, and the Linux kernel and the BIOS of those laptops have never
>> worked well together. All affected laptops already have a quirk to avoid using
>> the standard acpi-video interface and instead use the samsung specific SABI
>> interface which samsung-laptop uses. It seems that recent fixes to the i915
>> driver have also broken backlight control through the SABI interface.
>>
>> The intel_backlight driver OTOH works fine, and also allows for finer grained
>> backlight control. So add a new use_native_backlight quirk, and replace the
>> broken_acpi_video quirk with this quirk for affected models. This new quirk
>> disables acpi-video as before and also stops samsung-laptop from registering
>
>
> I take this to me this quirk is broken_acpi_video && use_native_backlight.
In what it does yes, but I've chosen to make it a standalone quirk named after
the acpi/video.c use_native_backlight option, which also disables both acpi-video
and vendor backlight interfaces, so for consistency I'm using the same setup here.
We cannot use the acpi/video.c option here because that option, which is on by
default, only triggers on win8 ready BIOS-es and these machines do not have such
a BIOS.
Eventually I would like to see the acpi/video.c code switch away from having
the 2 semi-orthogonal kernel cmdline options it currently has, which are
acpi_backlight=[vendor|video] vs video.use_native_backlight=[0|1], while what
we really have is just three options:
acpi_backlight=[vendor|video|native]
I've explained what I would like to see happen / think needs to happen to clean
up this mess here: https://lkml.org/lkml/2014/12/27/54
So the way I see it the broken_acpi_video quirks means use acpi_backlight=vendor
where as the new use_native_backlight option means acpi_backlight=native, and
eventually these 2 quirks would end up in just one call in samsung-laptop.c, which
says:
acpi_video_set_backlight_type(acpi_video_backlight_vendor);
resp:
acpi_video_set_backlight_type(acpi_video_backlight_native);
So I really see this as an either or thing, yes native implies disabling
acpi_video# but that does not mean that it is the same thing as vendor.
>> the SABI based samsung_laptop backlight interface, leaving only the working
>> intel_backlight interface.
>>
>> This commit enables this new quirk for 3 models which are known to be affected,
>> chances are that it needs to be used on other models too.
>>
>> BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1094948 # N145P
>> BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1115713 # N250P
>> Reported-by: Bertrik Sikken <bertrik@sikken.nl> # N150P
>> Cc: stable@vger.kernel.org # 3.16
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>> drivers/platform/x86/samsung-laptop.c | 20 +++++++++++++++++---
>> 1 file changed, 17 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
>> index ff765d8..ce364a4 100644
>> --- a/drivers/platform/x86/samsung-laptop.c
>> +++ b/drivers/platform/x86/samsung-laptop.c
>> @@ -353,6 +353,7 @@ struct samsung_quirks {
>> bool broken_acpi_video;
>> bool four_kbd_backlight_levels;
>> bool enable_kbd_backlight;
>> + bool use_native_backlight;
>> };
>>
>> static struct samsung_quirks samsung_unknown = {};
>> @@ -361,6 +362,10 @@ static struct samsung_quirks samsung_broken_acpi_video = {
>> .broken_acpi_video = true,
>> };
>>
>> +static struct samsung_quirks samsung_use_native_backlight = {
>> + .use_native_backlight = true,
>
> Shouldn't this also set:
>
> .broken_acpi_video = true,
> ?
>
> That's what I understood from the commit log.
If you look at the code triggered by the new flag you will see that it disables
both acpi_video and avoids samsung_laptop from registering its own with just
the use_native_backlight flag set.
Regards,
Hans
next prev parent reply other threads:[~2015-01-13 7:42 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-09 14:10 [PATCH] samsung-laptop: Add use_native_backlight quirk, and enable it on some models Hans de Goede
2015-01-13 4:03 ` Darren Hart
2015-01-13 7:42 ` Hans de Goede [this message]
2015-01-13 17:53 ` Darren Hart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54B4CC75.4030807@redhat.com \
--to=hdegoede@redhat.com \
--cc=bertrik@sikken.nl \
--cc=dvhart@infradead.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.