From: Greg KH <gregkh@linuxfoundation.org>
To: Mario Limonciello <mario_limonciello@dell.com>
Cc: matthew.garrett@nebula.com, LKML <linux-kernel@vger.kernel.org>,
platform-driver-x86@vger.kernel.org
Subject: Re: [PATCH 3/3] Capture cable events created by Alienware GFX Amplifier.
Date: Thu, 28 May 2015 11:29:42 -0700 [thread overview]
Message-ID: <20150528182942.GA25345@kroah.com> (raw)
In-Reply-To: <1432755422-26024-4-git-send-email-mario_limonciello@dell.com>
On Wed, May 27, 2015 at 02:37:02PM -0500, Mario Limonciello wrote:
> These events are outputted via the keyboard controller.
> Right now the only actionable event is to restart the system
> if the cable is removed,
What? No, that's not an acceptable "event" at all. You don't reboot
for something as "simple" as this.
Please do the correct thing and properly handle the hotplug event, just
like all other platforms do.
> but the others are documented in
> case they will be bubbled up to other parts of the kernel or
> userspace later on.
>
> Signed-off-by: Mario Limonciello <mario_limonciello@dell.com>
> ---
> drivers/platform/x86/Kconfig | 1 +
> drivers/platform/x86/alienware-wmi.c | 45 ++++++++++++++++++++++++++++++++++++
> 2 files changed, 46 insertions(+)
>
> diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
> index f9f205c..8a7bd7c 100644
> --- a/drivers/platform/x86/Kconfig
> +++ b/drivers/platform/x86/Kconfig
> @@ -60,6 +60,7 @@ config ALIENWARE_WMI
> depends on LEDS_CLASS
> depends on NEW_LEDS
> depends on ACPI_WMI
> + depends on SERIO_I8042
> ---help---
> This is a driver for controlling Alienware BIOS driven
> features. It exposes an interface for controlling the AlienFX
> diff --git a/drivers/platform/x86/alienware-wmi.c b/drivers/platform/x86/alienware-wmi.c
> index 5bd8faf..ffccbd9 100644
> --- a/drivers/platform/x86/alienware-wmi.c
> +++ b/drivers/platform/x86/alienware-wmi.c
> @@ -23,6 +23,8 @@
> #include <linux/dmi.h>
> #include <linux/acpi.h>
> #include <linux/leds.h>
> +#include <linux/i8042.h>
> +#include <linux/reboot.h>
>
> #define LEGACY_CONTROL_GUID "A90597CE-A997-11DA-B012-B622A1EF5492"
> #define LEGACY_POWER_CONTROL_GUID "A80593CE-A997-11DA-B012-B622A1EF5492"
> @@ -650,6 +652,44 @@ error_create_amplifier:
> return ret;
> }
>
> +static bool alienware_i8042_filter(unsigned char data, unsigned char str,
> + struct serio *port)
> +{
> + static bool extended;
> +
> + if (str & I8042_STR_AUXDATA)
> + return false;
> +
> + if (unlikely(data == 0xe0)) {
> + extended = true;
> + return false;
> + } else if (unlikely(extended)) {
> + switch (data) {
> + /*Connect */
> + case 0x3F:
> + pr_debug("Received connect event\n");
> + break;
> + /* Disconnect by hotkey */
> + case 0x40:
> + pr_debug("Received disconnect hotkey event\n");
> + break;
> + /*disconnect by cable undock button */
> + case 0x41:
> + pr_debug("Received disconnect button event\n");
> + break;
> + /* surprise disconnect */
> + case 0x42:
> + pr_crit("Graphics amplifier removed, initiating reboot.\n");
> + emergency_restart();
Ick, no, do the correct GPU change. Other platforms can do this, why
can't you?
Especially as you have access to the hardware specs, do the correct
thing. We have supported pci hotplug for well over a decade, why would
we want to regress to this type of "solution"?
You will note, other operating systems don't do this, why do you think
that Linux should do this?
greg k-h
next prev parent reply other threads:[~2015-05-28 18:29 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-27 19:36 [PATCH 0/3] Add support for X51-R3 to alienware-wmi Mario Limonciello
2015-05-27 19:37 ` [PATCH 1/3] Add support for X51-R3 Mario Limonciello
2015-05-27 19:37 ` [PATCH 2/3] Add support for Alienware graphics amplifier Mario Limonciello
2015-05-27 19:37 ` [PATCH 3/3] Capture cable events created by Alienware GFX Amplifier Mario Limonciello
2015-05-27 23:46 ` Mario Limonciello
2015-05-28 18:30 ` Greg KH
2015-05-28 18:50 ` Mario Limonciello
2015-05-28 20:34 ` Greg KH
2015-05-28 18:29 ` Greg KH [this message]
2015-06-03 23:17 ` [PATCH 0/3] Add support for X51-R3 to alienware-wmi Mario Limonciello
2015-06-16 5:25 ` Mario Limonciello
2015-06-30 19:02 ` Mario Limonciello
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=20150528182942.GA25345@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mario_limonciello@dell.com \
--cc=matthew.garrett@nebula.com \
--cc=platform-driver-x86@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.