* [PATCH 01/14] ACPI / Video: blacklist some samsung laptops [not found] <1332233594-13099-1-git-send-email-corentin.chary@gmail.com> @ 2012-03-20 8:53 ` Corentin Chary 2012-03-20 16:05 ` Matthew Garrett 0 siblings, 1 reply; 7+ messages in thread From: Corentin Chary @ 2012-03-20 8:53 UTC (permalink / raw) To: Matthew Garrett Cc: platform-driver-x86, Corentin Chary, Len Brown, linux-acpi, linux-kernel From: Corentin Chary <corentincj@iksaif.net> 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@iksaif.net> --- 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.3.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 01/14] ACPI / Video: blacklist some samsung laptops 2012-03-20 8:53 ` [PATCH 01/14] ACPI / Video: blacklist some samsung laptops Corentin Chary @ 2012-03-20 16:05 ` Matthew Garrett 2012-03-20 16:28 ` Corentin Chary 0 siblings, 1 reply; 7+ messages in thread From: Matthew Garrett @ 2012-03-20 16:05 UTC (permalink / raw) To: Corentin Chary Cc: platform-driver-x86, Corentin Chary, Len Brown, linux-acpi, linux-kernel On Tue, Mar 20, 2012 at 09:53:01AM +0100, Corentin Chary wrote: > From: Corentin Chary <corentincj@iksaif.net> > > 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. Are the hotkeys delivered via ACPI or via the Samsung device? If the latter, you can just do unregister_acpi_video() instead in the samsung driver and avoid having more machine-specific quirks in the ACPi code. -- Matthew Garrett | mjg59@srcf.ucam.org ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 01/14] ACPI / Video: blacklist some samsung laptops 2012-03-20 16:05 ` Matthew Garrett @ 2012-03-20 16:28 ` Corentin Chary 2012-03-20 16:30 ` Matthew Garrett 0 siblings, 1 reply; 7+ messages in thread From: Corentin Chary @ 2012-03-20 16:28 UTC (permalink / raw) To: Matthew Garrett; +Cc: platform-driver-x86, Len Brown, linux-acpi, linux-kernel On Tue, Mar 20, 2012 at 5:05 PM, Matthew Garrett <mjg59@srcf.ucam.org> wrote: > On Tue, Mar 20, 2012 at 09:53:01AM +0100, Corentin Chary wrote: >> From: Corentin Chary <corentincj@iksaif.net> >> >> 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. > > Are the hotkeys delivered via ACPI or via the Samsung device? If the > latter, you can just do unregister_acpi_video() instead in the samsung > driver and avoid having more machine-specific quirks in the ACPi code. I wasn't aware of acpi_video_unregister(). The issue with that solution is that it makes it harder to respect acpi_video= parameter. On these machines, the ACPI Video device is broken (I don't know how, I don't have the hardware, I just know it doesn't work at all), and I want the default to be acpi_backlight=vendor, but it is still a good idea to let users force acpi_backlight=video. But if the policy is to use acpi_video_unregister() when the video module is known to be broken, let's do that. -- Corentin Chary http://xf.iksaif.net ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 01/14] ACPI / Video: blacklist some samsung laptops 2012-03-20 16:28 ` Corentin Chary @ 2012-03-20 16:30 ` Matthew Garrett [not found] ` <1332421699-5315-1-git-send-email-corentincj@iksaif.net> 0 siblings, 1 reply; 7+ messages in thread From: Matthew Garrett @ 2012-03-20 16:30 UTC (permalink / raw) To: Corentin Chary; +Cc: platform-driver-x86, Len Brown, linux-acpi, linux-kernel On Tue, Mar 20, 2012 at 05:28:06PM +0100, Corentin Chary wrote: > On Tue, Mar 20, 2012 at 5:05 PM, Matthew Garrett <mjg59@srcf.ucam.org> wrote: > > Are the hotkeys delivered via ACPI or via the Samsung device? If the > > latter, you can just do unregister_acpi_video() instead in the samsung > > driver and avoid having more machine-specific quirks in the ACPi code. > > I wasn't aware of acpi_video_unregister(). The issue with that > solution is that it makes it harder to respect acpi_video= parameter. > > On these machines, the ACPI Video device is broken (I don't know how, > I don't have the hardware, I just know it doesn't work at all), and I > want the default to be acpi_backlight=vendor, but it is still a good > idea to let users force acpi_backlight=video. If it's broken then I don't think there's a great argument for providing an argument just to let people re-break their kernel :) > But if the policy is to use acpi_video_unregister() when the video > module is known to be broken, let's do that. As long as ACPI isn't being used to deliver brightness keys, then this is fine. -- Matthew Garrett | mjg59@srcf.ucam.org ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <1332421699-5315-1-git-send-email-corentincj@iksaif.net>]
[parent not found: <CAHR064hc4AdFUeoO8Szg0FG6CwLK+xauGn9VMJntWV1Gik=ACQ@mail.gmail.com>]
[parent not found: <20120327112105.GA2845@srcf.ucam.org>]
* Re: [PATCH] samsung-laptop: unregister ACPI video module for some well known laptops [not found] ` <20120327112105.GA2845@srcf.ucam.org> @ 2012-04-06 9:42 ` Corentin Chary 2012-04-06 14:34 ` Seth Forshee 0 siblings, 1 reply; 7+ messages in thread From: Corentin Chary @ 2012-04-06 9:42 UTC (permalink / raw) To: Matthew Garrett; +Cc: platform-driver-x86, linux-kernel, linux acpi, Len Brown [-- Attachment #1: Type: text/plain, Size: 1014 bytes --] On Tue, Mar 27, 2012 at 1:21 PM, Matthew Garrett <mjg59@srcf.ucam.org> wrote: > On Tue, Mar 27, 2012 at 11:11:18AM +0200, Corentin Chary wrote: >> Matthew, is this one ok ? I really hope this patch can go in 3.4 so we >> don't introduce a regression for old laptops. > > Yes, I've got this now. > > Thanks, A user just found a DSDT which is broken by this way of doing things (this is not really a regression since it was also broken before). _BCL contains a wierd "Or (VDRV, 0x02, VDRV)". So if you call _BLC once (video.ko will), it set a flag that affect the behavior of all backlight related stuff, and it breaks samsung-laptop's backlight even if samsung-laptop unload the acpi backlight. Using acpi_backlight=vendor solves that since it prevents the module from being loaded. My previous patch also fix that since it use acpi_backlight= mechanism. Do you think using acpi_backlight=vendor is a good enought solution here ? Should we use my first patch instead ? -- Corentin Chary http://xf.iksaif.net [-- Attachment #2: acpidump.bin.gz --] [-- Type: application/x-gzip, Size: 45898 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] samsung-laptop: unregister ACPI video module for some well known laptops 2012-04-06 9:42 ` [PATCH] samsung-laptop: unregister ACPI video module for some well known laptops Corentin Chary @ 2012-04-06 14:34 ` Seth Forshee 2012-04-17 8:31 ` Corentin Chary 0 siblings, 1 reply; 7+ messages in thread From: Seth Forshee @ 2012-04-06 14:34 UTC (permalink / raw) To: Matthew Garrett, Corentin Chary Cc: platform-driver-x86, linux-kernel, linux acpi, Len Brown On Fri, Apr 06, 2012 at 11:42:18AM +0200, Corentin Chary wrote: > On Tue, Mar 27, 2012 at 1:21 PM, Matthew Garrett <mjg59@srcf.ucam.org> wrote: > > On Tue, Mar 27, 2012 at 11:11:18AM +0200, Corentin Chary wrote: > >> Matthew, is this one ok ? I really hope this patch can go in 3.4 so we > >> don't introduce a regression for old laptops. > > > > Yes, I've got this now. > > > > Thanks, > > > A user just found a DSDT which is broken by this way of doing things > (this is not really a regression since it was also broken before). > > _BCL contains a wierd "Or (VDRV, 0x02, VDRV)". > So if you call _BLC once (video.ko will), it set a flag that affect > the behavior of all backlight related stuff, and it breaks > samsung-laptop's backlight even if samsung-laptop unload the acpi > backlight. > Using acpi_backlight=vendor solves that since it prevents the module > from being loaded. My previous patch also fix that since it use > acpi_backlight= mechanism. > > Do you think using acpi_backlight=vendor is a good enought solution > here ? Should we use my first patch instead ? I've recently noticed another problem with using acpi_video_unregister() to disable known broken backlights -- another module might call acpi_video_register() and make it reappear. i915 does this, so when I EFI boot the MacBook Pro 8,2 the acpi backlights reappear (under a BIOS compatible boot the Intel GPU doesn't show up on the bus). So Corentin's solution does seem like a better way to go, or else something similar that forces the ACPI video driver to behave as with acpi_video=vendor. Seth ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] samsung-laptop: unregister ACPI video module for some well known laptops 2012-04-06 14:34 ` Seth Forshee @ 2012-04-17 8:31 ` Corentin Chary 0 siblings, 0 replies; 7+ messages in thread From: Corentin Chary @ 2012-04-17 8:31 UTC (permalink / raw) To: Matthew Garrett, Corentin Chary, platform-driver-x86, linux-kernel, linux acpi, Len Brown On Fri, Apr 6, 2012 at 4:34 PM, Seth Forshee <seth.forshee@canonical.com> wrote: > On Fri, Apr 06, 2012 at 11:42:18AM +0200, Corentin Chary wrote: >> On Tue, Mar 27, 2012 at 1:21 PM, Matthew Garrett <mjg59@srcf.ucam.org> wrote: >> > On Tue, Mar 27, 2012 at 11:11:18AM +0200, Corentin Chary wrote: >> >> Matthew, is this one ok ? I really hope this patch can go in 3.4 so we >> >> don't introduce a regression for old laptops. >> > >> > Yes, I've got this now. >> > >> > Thanks, >> >> >> A user just found a DSDT which is broken by this way of doing things >> (this is not really a regression since it was also broken before). >> >> _BCL contains a wierd "Or (VDRV, 0x02, VDRV)". >> So if you call _BLC once (video.ko will), it set a flag that affect >> the behavior of all backlight related stuff, and it breaks >> samsung-laptop's backlight even if samsung-laptop unload the acpi >> backlight. >> Using acpi_backlight=vendor solves that since it prevents the module >> from being loaded. My previous patch also fix that since it use >> acpi_backlight= mechanism. >> >> Do you think using acpi_backlight=vendor is a good enought solution >> here ? Should we use my first patch instead ? > > I've recently noticed another problem with using acpi_video_unregister() > to disable known broken backlights -- another module might call > acpi_video_register() and make it reappear. i915 does this, so when I > EFI boot the MacBook Pro 8,2 the acpi backlights reappear (under a BIOS > compatible boot the Intel GPU doesn't show up on the bus). > > So Corentin's solution does seem like a better way to go, or else > something similar that forces the ACPI video driver to behave as with > acpi_video=vendor. > > Seth > Matthew, Len, any input on that ? Should we keep the current code even if broken with some (also broken) hardware or should we move the blacklist in acpi/video.c ? -- Corentin Chary http://xf.iksaif.net ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-04-17 8:31 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1332233594-13099-1-git-send-email-corentin.chary@gmail.com>
2012-03-20 8:53 ` [PATCH 01/14] ACPI / Video: blacklist some samsung laptops Corentin Chary
2012-03-20 16:05 ` Matthew Garrett
2012-03-20 16:28 ` Corentin Chary
2012-03-20 16:30 ` Matthew Garrett
[not found] ` <1332421699-5315-1-git-send-email-corentincj@iksaif.net>
[not found] ` <CAHR064hc4AdFUeoO8Szg0FG6CwLK+xauGn9VMJntWV1Gik=ACQ@mail.gmail.com>
[not found] ` <20120327112105.GA2845@srcf.ucam.org>
2012-04-06 9:42 ` [PATCH] samsung-laptop: unregister ACPI video module for some well known laptops Corentin Chary
2012-04-06 14:34 ` Seth Forshee
2012-04-17 8:31 ` Corentin Chary
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox