Message ID | 1366634355-26482-1-git-send-email-jlee@suse.com (mailing list archive) |
---|---|
State | Changes Requested, archived |
Headers | show |
On Mon, Apr 22, 2013 at 08:39:14PM +0800, Chun-Yi Lee wrote: > From: Lee, Chun-Yi <jlee@suse.com> > > After Andrzej's testing, we found the acpi backlight methods broken on Acer > Aspire 5750G but the i915 backlight control works when we set to vendor mode. > And, we still want to keep the acpi/video driver for transfer acpi event to key > event but not unregister whole acpi/video driver. > > This patch introduced a new capability flag is ACER_CAP_KEEP_VIDEO_KEY, it > indicates the machine works fine with acpi/video driver for key event but want > to unregister the backlight interface of acpi/video. > > Reference: bko#35622 > https://bugzilla.kernel.org/show_bug.cgi?id=35622 > > Tested-by: Andrzej Krentosz <endrjux@gmail.com> > Cc: Carlos Corbacho <carlos@strangeworlds.co.uk> > Cc: Matthew Garrett <mjg@redhat.com> > Cc: Dmitry Torokhov <dtor@mail.ru> > Cc: Corentin Chary <corentincj@iksaif.net> > Cc: Rafael J. Wysocki <rjw@sisk.pl> > Cc: Aaron Lu <aaron.lu@intel.com> > Cc: Thomas Renninger <trenn@suse.de> > Signed-off-by: Lee, Chun-Yi <jlee@suse.com> > --- > drivers/platform/x86/acer-wmi.c | 20 ++++++++++++++++++++ > 1 files changed, 20 insertions(+), 0 deletions(-) > > diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c > index c9076bd..2a02409 100644 > --- a/drivers/platform/x86/acer-wmi.c > +++ b/drivers/platform/x86/acer-wmi.c > @@ -207,6 +207,7 @@ struct hotkey_function_type_aa { > #define ACER_CAP_BRIGHTNESS (1<<3) > #define ACER_CAP_THREEG (1<<4) > #define ACER_CAP_ACCEL (1<<5) > +#define ACER_CAP_KEEP_VIDEO_KEY (1<<6) > #define ACER_CAP_ANY (0xFFFFFFFF) > > /* > @@ -539,6 +540,15 @@ static int video_set_backlight_video_vendor(const struct dmi_system_id *d) > return 0; > } > > +static int video_set_backlight_video_vendor_keep_acpi_video( > + const struct dmi_system_id *d) > +{ > + video_set_backlight_video_vendor(d); > + interface->capability |= ACER_CAP_KEEP_VIDEO_KEY; > + pr_info("Keep acpi video driver for emit keycode against backlight change\n"); Huh? "Keeping acpi video driver active to emit backlight brightness change key events"? Thanks.
Hi Dmitry, Thanks for your review and suggestion! ? ??2013-04-22 ? 21:04 -0700?Dmitry Torokhov ??? > On Mon, Apr 22, 2013 at 08:39:14PM +0800, Chun-Yi Lee wrote: > > From: Lee, Chun-Yi <jlee@suse.com> > > > > After Andrzej's testing, we found the acpi backlight methods broken on Acer > > Aspire 5750G but the i915 backlight control works when we set to vendor mode. > > And, we still want to keep the acpi/video driver for transfer acpi event to key > > event but not unregister whole acpi/video driver. > > > > This patch introduced a new capability flag is ACER_CAP_KEEP_VIDEO_KEY, it > > indicates the machine works fine with acpi/video driver for key event but want > > to unregister the backlight interface of acpi/video. > > > > Reference: bko#35622 > > https://bugzilla.kernel.org/show_bug.cgi?id=35622 > > > > Tested-by: Andrzej Krentosz <endrjux@gmail.com> > > Cc: Carlos Corbacho <carlos@strangeworlds.co.uk> > > Cc: Matthew Garrett <mjg@redhat.com> > > Cc: Dmitry Torokhov <dtor@mail.ru> > > Cc: Corentin Chary <corentincj@iksaif.net> > > Cc: Rafael J. Wysocki <rjw@sisk.pl> > > Cc: Aaron Lu <aaron.lu@intel.com> > > Cc: Thomas Renninger <trenn@suse.de> > > Signed-off-by: Lee, Chun-Yi <jlee@suse.com> > > --- > > drivers/platform/x86/acer-wmi.c | 20 ++++++++++++++++++++ > > 1 files changed, 20 insertions(+), 0 deletions(-) > > > > diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c > > index c9076bd..2a02409 100644 > > --- a/drivers/platform/x86/acer-wmi.c > > +++ b/drivers/platform/x86/acer-wmi.c > > @@ -207,6 +207,7 @@ struct hotkey_function_type_aa { > > #define ACER_CAP_BRIGHTNESS (1<<3) > > #define ACER_CAP_THREEG (1<<4) > > #define ACER_CAP_ACCEL (1<<5) > > +#define ACER_CAP_KEEP_VIDEO_KEY (1<<6) > > #define ACER_CAP_ANY (0xFFFFFFFF) > > > > /* > > @@ -539,6 +540,15 @@ static int video_set_backlight_video_vendor(const struct dmi_system_id *d) > > return 0; > > } > > > > +static int video_set_backlight_video_vendor_keep_acpi_video( > > + const struct dmi_system_id *d) > > +{ > > + video_set_backlight_video_vendor(d); > > + interface->capability |= ACER_CAP_KEEP_VIDEO_KEY; > > + pr_info("Keep acpi video driver for emit keycode against backlight change\n"); > > Huh? > > "Keeping acpi video driver active to emit backlight brightness change > key events"? > > Thanks. > Yes, this statement is more fluent, I will put to v2 patch. Thanks a lot! Joey Lee -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index c9076bd..2a02409 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -207,6 +207,7 @@ struct hotkey_function_type_aa { #define ACER_CAP_BRIGHTNESS (1<<3) #define ACER_CAP_THREEG (1<<4) #define ACER_CAP_ACCEL (1<<5) +#define ACER_CAP_KEEP_VIDEO_KEY (1<<6) #define ACER_CAP_ANY (0xFFFFFFFF) /* @@ -539,6 +540,15 @@ static int video_set_backlight_video_vendor(const struct dmi_system_id *d) return 0; } +static int video_set_backlight_video_vendor_keep_acpi_video( + const struct dmi_system_id *d) +{ + video_set_backlight_video_vendor(d); + interface->capability |= ACER_CAP_KEEP_VIDEO_KEY; + pr_info("Keep acpi video driver for emit keycode against backlight change\n"); + return 0; +} + static const struct dmi_system_id video_vendor_dmi_table[] = { { .callback = video_set_backlight_video_vendor, @@ -572,6 +582,14 @@ static const struct dmi_system_id video_vendor_dmi_table[] = { DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5750"), }, }, + { + .callback = video_set_backlight_video_vendor_keep_acpi_video, + .ident = "Acer Aspire 5750G", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Acer"), + DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5750G"), + }, + }, {} }; @@ -2228,6 +2246,8 @@ static int __init acer_wmi_init(void) if (acpi_video_backlight_support()) { interface->capability &= ~ACER_CAP_BRIGHTNESS; pr_info("Brightness must be controlled by acpi video driver\n"); + } else if (interface->capability & ACER_CAP_KEEP_VIDEO_KEY) { + acpi_video_backlight_unregister(); } else { pr_info("Disabling ACPI video driver\n"); acpi_video_unregister();