From: Matthew Garrett <mjg59@srcf.ucam.org>
To: linux-input@vger.kernel.org
Cc: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org,
kristen.c.accardi@intel.com
Subject: Version 2: [PATCH 2/3] ACPI: Send switch event on dock events
Date: Thu, 29 May 2008 09:22:02 +0100 [thread overview]
Message-ID: <20080529082202.GD16444@srcf.ucam.org> (raw)
In-Reply-To: <20080528132152.GB32646@srcf.ucam.org>
Send a switch event on docking for consistency with docks that don't
present as a separate device.
Signed-off-by: Matthew Garrett <mjg@redhat.com>
---
Added a dependency on CONFIG_INPUT for the dock driver. This is
consistent with the other ACPI modules that send input events.
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index c52fca8..df8de04 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -160,6 +160,7 @@ config ACPI_FAN
config ACPI_DOCK
tristate "Dock"
+ depends on INPUT
depends on EXPERIMENTAL
help
This driver adds support for ACPI controlled docking stations
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index fa44fb9..a67e74c 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -25,6 +25,7 @@
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
+#include <linux/input.h>
#include <linux/types.h>
#include <linux/notifier.h>
#include <linux/platform_device.h>
@@ -65,6 +66,7 @@ struct dock_station {
struct mutex hp_lock;
struct list_head dependent_devices;
struct list_head hotplug_devices;
+ struct input_dev *dock_input;
};
struct dock_dependent_device {
@@ -345,10 +347,13 @@ static void dock_event(struct dock_station *ds, u32 event, int num)
char event_string[13];
char *envp[] = { event_string, NULL };
- if (num == UNDOCK_EVENT)
+ if (num == UNDOCK_EVENT) {
+ input_report_switch(dock_station->dock_input, SW_DOCK, 0);
sprintf(event_string, "EVENT=undock");
- else
+ } else {
+ input_report_switch(dock_station->dock_input, SW_DOCK, 1);
sprintf(event_string, "EVENT=dock");
+ }
/*
* Indicate that the status of the dock station has
@@ -834,6 +839,19 @@ static int dock_add(acpi_handle handle)
goto dock_add_err;
}
+ /* Set up input device */
+ dock_station->dock_input = input_allocate_device();
+ dock_station->dock_input->name = "ACPI dock";
+ dock_station->dock_input->phys = "dock/input0";
+ dock_station->dock_input->id.bustype = BUS_HOST;
+ dock_station->dock_input->dev.parent = &dock_device->dev;
+ set_bit(EV_SW, dock_station->dock_input->evbit);
+ set_bit(SW_DOCK, dock_station->dock_input->swbit);
+ ret = input_register_device(dock_station->dock_input);
+
+ if (ret)
+ input_free_device(dock_station->dock_input);
+
printk(KERN_INFO PREFIX "%s \n", ACPI_DOCK_DRIVER_DESCRIPTION);
return 0;
@@ -881,6 +899,8 @@ static int dock_remove(void)
device_remove_file(&dock_device->dev, &dev_attr_flags);
platform_device_unregister(dock_device);
+ input_unregister_device(dock_station->dock_input);
+
/* free dock station memory */
kfree(dock_station);
dock_station = NULL;
--
Matthew Garrett | mjg59@srcf.ucam.org
next prev parent reply other threads:[~2008-05-29 8:22 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-23 16:09 [PATCH] Add switch for dock events Matthew Garrett
2008-05-24 1:23 ` Andrew Morton
2008-05-28 13:06 ` [PATCH 1/3] Input: " Matthew Garrett
2008-05-28 13:21 ` [PATCH 2/3] ACPI: Send switch event on " Matthew Garrett
2008-05-28 13:29 ` [PATCH 3/3] Misc: Add HP WMI laptop extras driver Matthew Garrett
2008-05-29 5:42 ` RESEND: " Andrew Morton
2008-05-29 8:07 ` Matthew Garrett
2008-05-29 8:23 ` Matthew Garrett
2008-06-02 23:30 ` Andrew Morton
2008-06-07 10:00 ` Carlos Corbacho
2008-05-28 13:34 ` Matthew Garrett
2008-05-29 5:32 ` RESEND: [PATCH 2/3] ACPI: Send switch event on dock events Andrew Morton
2008-05-29 8:15 ` Matthew Garrett
2008-05-29 8:22 ` Matthew Garrett [this message]
2008-06-09 9:48 ` Version 2: " Andrew Morton
2008-05-28 13:33 ` RESEND: " Matthew Garrett
2008-05-29 8:20 ` Version 2: [PATCH 1/3] Input: Add switch for " Matthew Garrett
2008-05-28 13:32 ` RESEND: " Matthew Garrett
2008-05-28 13:33 ` Matthew Garrett
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=20080529082202.GD16444@srcf.ucam.org \
--to=mjg59@srcf.ucam.org \
--cc=kristen.c.accardi@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@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.