diff mbox

[2/2] acer-wmi: add Acer Aspire 5750G to video vendor list but keep acpi video driver

Message ID 1366634355-26482-1-git-send-email-jlee@suse.com (mailing list archive)
State Changes Requested, archived
Headers show

Commit Message

Chun-Yi Lee April 22, 2013, 12:39 p.m. UTC
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(-)

Comments

Dmitry Torokhov April 23, 2013, 4:04 a.m. UTC | #1
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.
joeyli April 29, 2013, 9:21 a.m. UTC | #2
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 mbox

Patch

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();