All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] Pegatron Lucid tablet acceleromter/ALS
@ 2011-01-24 22:48 Andy Ross
  2011-01-24 22:48 ` [PATCH 2/4] asus-laptop: Pegatron Lucid ALS support Andy Ross
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Andy Ross @ 2011-01-24 22:48 UTC (permalink / raw)
  To: Dmitry Torokhov, Corentin Chary, linux-input, acpi4asus-user,
	platform-driver-x86

Resubmission and update of the Pegatron Lucid tablet accelerometer and
ambient light sensor drivers.

Patches 1-3 are against asus-laptop, and apply in order.

Patch 4 is against input, and can be commited separately (obviously
relies on the detection code in asus-laptop at runtime, but will build
and load independently).

Andy

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/4] asus-laptop: Device detection for Pegatron Lucid tablets
       [not found] ` <1295909288-32650-1-git-send-email-andy.ross-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
@ 2011-01-24 22:48   ` Andy Ross
  2011-01-24 23:05   ` [PATCH 0/4] Pegatron Lucid tablet acceleromter/ALS Dmitry Torokhov
  1 sibling, 0 replies; 12+ messages in thread
From: Andy Ross @ 2011-01-24 22:48 UTC (permalink / raw)
  To: Dmitry Torokhov, Corentin Chary,
	linux-input-u79uwXL29TY76Z2rM5mHXA,
	acpi4asus-user-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	platform-driver-x86-u79uwXL29TY76Z2rM5mHXA

Recognize the Pegatron Lucid tablet devices (which share the same
"\_SB.ATKD" namespace) by the result of their INIT method and the
presence of some specific methods.

Signed-off-by: Andy Ross <andy.ross-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
---
 drivers/platform/x86/asus-laptop.c |   25 ++++++++++++++++++++++++-
 1 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
index d235f44..6f542af 100644
--- a/drivers/platform/x86/asus-laptop.c
+++ b/drivers/platform/x86/asus-laptop.c
@@ -4,6 +4,7 @@
  *
  *  Copyright (C) 2002-2005 Julien Lerouge, 2003-2006 Karol Kozimor
  *  Copyright (C) 2006-2007 Corentin Chary
+ *  Copyright (C) 2011 Wind River Systems
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -210,6 +211,18 @@ static char *display_get_paths[] = {
 #define METHOD_KBD_LIGHT_SET	"SLKB"
 #define METHOD_KBD_LIGHT_GET	"GLKB"
 
+/* For Pegatron Lucid tablet */
+#define DEVICE_NAME_PEGA	"Lucid"
+
+#define METHOD_PEGA_ENABLE	"ENPR"
+#define METHOD_PEGA_DISABLE	"DAPR"
+#define PEGA_ALS	0x04
+#define PEGA_ALS_POWER	0x05
+
+#define METHOD_PEGA_READ	"RDLN"
+#define PEGA_READ_ALS_H	0x02
+#define PEGA_READ_ALS_L	0x03
+
 /*
  * Define a specific led structure to keep the main structure clean
  */
@@ -246,6 +259,7 @@ struct asus_laptop {
 
 	int wireless_status;
 	bool have_rsts;
+	bool have_pega_lucid;
 	int lcd_state;
 
 	struct rfkill *gps_rfkill;
@@ -361,6 +375,14 @@ static int acpi_check_handle(acpi_handle handle, const char *method,
 	return 0;
 }
 
+static bool asus_check_pega_lucid(struct asus_laptop *asus)
+{
+	return !strcmp(asus->name, DEVICE_NAME_PEGA) &&
+	   !acpi_check_handle(asus->handle, METHOD_PEGA_ENABLE, NULL) &&
+	   !acpi_check_handle(asus->handle, METHOD_PEGA_DISABLE, NULL) &&
+	   !acpi_check_handle(asus->handle, METHOD_PEGA_READ, NULL);
+}
+
 /* Generic LED function */
 static int asus_led_set(struct asus_laptop *asus, const char *method,
 			 int value)
@@ -1334,7 +1356,6 @@ static mode_t asus_sysfs_is_visible(struct kobject *kobj,
 		   attr == &dev_attr_ls_level.attr) {
 		supported = !acpi_check_handle(handle, METHOD_ALS_CONTROL, NULL) &&
 			    !acpi_check_handle(handle, METHOD_ALS_LEVEL, NULL);
-
 	} else if (attr == &dev_attr_gps.attr) {
 		supported = !acpi_check_handle(handle, METHOD_GPS_ON, NULL) &&
 			    !acpi_check_handle(handle, METHOD_GPS_OFF, NULL) &&
@@ -1605,6 +1626,8 @@ static int __devinit asus_acpi_add(struct acpi_device *device)
 	if (result)
 		goto fail_rfkill;
 
+	asus->have_pega_lucid = asus_check_pega_lucid(asus);
+
 	asus_device_present = true;
 	return 0;
 
-- 
1.7.1


------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/4] asus-laptop: Pegatron Lucid ALS support
  2011-01-24 22:48 [PATCH 0/4] Pegatron Lucid tablet acceleromter/ALS Andy Ross
@ 2011-01-24 22:48 ` Andy Ross
  2011-01-24 22:48 ` [PATCH 3/4] asus-laptop: Support pega_accel accelerometer driver Andy Ross
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 12+ messages in thread
From: Andy Ross @ 2011-01-24 22:48 UTC (permalink / raw)
  To: Dmitry Torokhov, Corentin Chary, linux-input, acpi4asus-user,
	platform-driver-x86

Add support for the ambient light sensor on the Pegatron Lucid tablet.
This uses a different inteface but the same sysfs interface for
ls_switch, has no equivalent to the existing ls_value threshold
setting, and exports the actual brightness via a new attribute
"ls_value".

Signed-off-by: Andy Ross <andy.ross@windriver.com>
---
 drivers/platform/x86/asus-laptop.c |   64 +++++++++++++++++++++++++++++++++---
 1 files changed, 59 insertions(+), 5 deletions(-)

diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
index 6f542af..b397a4c 100644
--- a/drivers/platform/x86/asus-laptop.c
+++ b/drivers/platform/x86/asus-laptop.c
@@ -383,6 +383,12 @@ static bool asus_check_pega_lucid(struct asus_laptop *asus)
 	   !acpi_check_handle(asus->handle, METHOD_PEGA_READ, NULL);
 }
 
+static int asus_pega_lucid_set(struct asus_laptop *asus, int unit, bool enable)
+{
+	char *method = enable ? METHOD_PEGA_ENABLE : METHOD_PEGA_DISABLE;
+	return write_acpi_int(asus->handle, method, unit);
+}
+
 /* Generic LED function */
 static int asus_led_set(struct asus_laptop *asus, const char *method,
 			 int value)
@@ -1051,7 +1057,15 @@ static ssize_t store_disp(struct device *dev, struct device_attribute *attr,
  */
 static void asus_als_switch(struct asus_laptop *asus, int value)
 {
-	if (write_acpi_int(asus->handle, METHOD_ALS_CONTROL, value))
+	int ret;
+	if (asus->have_pega_lucid) {
+		ret = asus_pega_lucid_set(asus, PEGA_ALS, value);
+		if (!ret)
+			ret = asus_pega_lucid_set(asus, PEGA_ALS_POWER, value);
+	} else {
+		ret = write_acpi_int(asus->handle, METHOD_ALS_CONTROL, value);
+	}
+	if (ret)
 		pr_warning("Error setting light sensor switch\n");
 	asus->light_switch = value;
 }
@@ -1108,6 +1122,35 @@ static ssize_t store_lslvl(struct device *dev, struct device_attribute *attr,
 	return rv;
 }
 
+static int pega_int_read(struct asus_laptop *asus, int arg, int *result)
+{
+	struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
+	int err = write_acpi_int_ret(asus->handle, METHOD_PEGA_READ, arg,
+				     &buffer);
+	if (!err) {
+		union acpi_object *obj = buffer.pointer;
+		if (obj && obj->type == ACPI_TYPE_INTEGER)
+			*result = obj->integer.value;
+		else
+			err = -EIO;
+	}
+	return err;
+}
+
+static ssize_t show_lsvalue(struct device *dev,
+			    struct device_attribute *attr, char *buf)
+{
+	struct asus_laptop *asus = dev_get_drvdata(dev);
+	int err, hi, lo;
+
+	err = pega_int_read(asus, PEGA_READ_ALS_H, &hi);
+	if (!err)
+		err = pega_int_read(asus, PEGA_READ_ALS_L, &lo);
+	if (!err)
+		return sprintf(buf, "%d\n", 10 * hi + lo);
+	return err;
+}
+
 /*
  * GPS
  */
@@ -1305,6 +1348,7 @@ static DEVICE_ATTR(wimax, S_IRUGO | S_IWUSR, show_wimax, store_wimax);
 static DEVICE_ATTR(wwan, S_IRUGO | S_IWUSR, show_wwan, store_wwan);
 static DEVICE_ATTR(display, S_IRUGO | S_IWUSR, show_disp, store_disp);
 static DEVICE_ATTR(ledd, S_IRUGO | S_IWUSR, show_ledd, store_ledd);
+static DEVICE_ATTR(ls_value, S_IRUGO, show_lsvalue, NULL);
 static DEVICE_ATTR(ls_level, S_IRUGO | S_IWUSR, show_lslvl, store_lslvl);
 static DEVICE_ATTR(ls_switch, S_IRUGO | S_IWUSR, show_lssw, store_lssw);
 static DEVICE_ATTR(gps, S_IRUGO | S_IWUSR, show_gps, store_gps);
@@ -1317,6 +1361,7 @@ static struct attribute *asus_attributes[] = {
 	&dev_attr_wwan.attr,
 	&dev_attr_display.attr,
 	&dev_attr_ledd.attr,
+	&dev_attr_ls_value.attr,
 	&dev_attr_ls_level.attr,
 	&dev_attr_ls_switch.attr,
 	&dev_attr_gps.attr,
@@ -1354,8 +1399,15 @@ static mode_t asus_sysfs_is_visible(struct kobject *kobj,
 
 	} else if (attr == &dev_attr_ls_switch.attr ||
 		   attr == &dev_attr_ls_level.attr) {
-		supported = !acpi_check_handle(handle, METHOD_ALS_CONTROL, NULL) &&
-			    !acpi_check_handle(handle, METHOD_ALS_LEVEL, NULL);
+		if (asus_check_pega_lucid(asus)) {
+			/* no ls_level interface on the Lucid */
+			supported = attr == &dev_attr_ls_switch.attr;
+		} else {
+			supported = !acpi_check_handle(handle, METHOD_ALS_CONTROL, NULL) &&
+				    !acpi_check_handle(handle, METHOD_ALS_LEVEL, NULL);
+		}
+	} else if (attr == &dev_attr_ls_value.attr) {
+		supported = asus_check_pega_lucid(asus);
 	} else if (attr == &dev_attr_gps.attr) {
 		supported = !acpi_check_handle(handle, METHOD_GPS_ON, NULL) &&
 			    !acpi_check_handle(handle, METHOD_GPS_OFF, NULL) &&
@@ -1567,8 +1619,10 @@ static int __devinit asus_acpi_init(struct asus_laptop *asus)
 	asus->light_switch = 0;	/* Default to light sensor disabled */
 	asus->light_level = 5;	/* level 5 for sensor sensitivity */
 
-	if (!acpi_check_handle(asus->handle, METHOD_ALS_CONTROL, NULL) &&
-	    !acpi_check_handle(asus->handle, METHOD_ALS_LEVEL, NULL)) {
+	if (asus->have_pega_lucid) {
+		asus_als_switch(asus, asus->light_switch);
+	} else if (!acpi_check_handle(asus->handle, METHOD_ALS_CONTROL, NULL) &&
+		   !acpi_check_handle(asus->handle, METHOD_ALS_LEVEL, NULL)) {
 		asus_als_switch(asus, asus->light_switch);
 		asus_als_level(asus, asus->light_level);
 	}
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 3/4] asus-laptop: Support pega_accel accelerometer driver
  2011-01-24 22:48 [PATCH 0/4] Pegatron Lucid tablet acceleromter/ALS Andy Ross
  2011-01-24 22:48 ` [PATCH 2/4] asus-laptop: Pegatron Lucid ALS support Andy Ross
@ 2011-01-24 22:48 ` Andy Ross
  2011-01-24 22:48 ` [PATCH 4/4] input: Pegatron Lucid accelerometer Andy Ross
       [not found] ` <1295909288-32650-1-git-send-email-andy.ross-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
  3 siblings, 0 replies; 12+ messages in thread
From: Andy Ross @ 2011-01-24 22:48 UTC (permalink / raw)
  To: Dmitry Torokhov, Corentin Chary, linux-input, acpi4asus-user,
	platform-driver-x86

Add device detecton for the ACPI accelerometer interface on Pegatron
Lucid tablets.

Signed-off-by: Andy Ross <andy.ross@windriver.com>
---
 drivers/platform/x86/asus-laptop.c |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c
index b397a4c..75c84f8 100644
--- a/drivers/platform/x86/asus-laptop.c
+++ b/drivers/platform/x86/asus-laptop.c
@@ -261,6 +261,7 @@ struct asus_laptop {
 	bool have_rsts;
 	bool have_pega_lucid;
 	int lcd_state;
+	struct platform_device *pega_accel;
 
 	struct rfkill *gps_rfkill;
 
@@ -1631,6 +1632,19 @@ static int __devinit asus_acpi_init(struct asus_laptop *asus)
 	return result;
 }
 
+static void __devinit asus_pega_accel_init(struct asus_laptop *asus)
+{
+	/* Pegatron Lucid tablets expose their accelerometer through ACPI.
+	 * Check for XLR{X,Y,Z} methods */
+	if (acpi_check_handle(asus->handle, "XLRX", NULL) ||
+	    acpi_check_handle(asus->handle, "XLRY", NULL) ||
+	    acpi_check_handle(asus->handle, "XLRZ", NULL))
+		return;
+
+	asus->pega_accel = platform_device_register_simple("pega_accel", -1,
+							   NULL, 0);
+}
+
 static bool asus_device_present;
 
 static int __devinit asus_acpi_add(struct acpi_device *device)
@@ -1681,6 +1695,8 @@ static int __devinit asus_acpi_add(struct acpi_device *device)
 		goto fail_rfkill;
 
 	asus->have_pega_lucid = asus_check_pega_lucid(asus);
+	if (asus->have_pega_lucid)
+		asus_pega_accel_init(asus);
 
 	asus_device_present = true;
 	return 0;
@@ -1704,6 +1720,9 @@ static int asus_acpi_remove(struct acpi_device *device, int type)
 {
 	struct asus_laptop *asus = acpi_driver_data(device);
 
+	if (asus->pega_accel)
+		platform_device_unregister(asus->pega_accel);
+
 	asus_backlight_exit(asus);
 	asus_rfkill_exit(asus);
 	asus_led_exit(asus);
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 4/4] input: Pegatron Lucid accelerometer
  2011-01-24 22:48 [PATCH 0/4] Pegatron Lucid tablet acceleromter/ALS Andy Ross
  2011-01-24 22:48 ` [PATCH 2/4] asus-laptop: Pegatron Lucid ALS support Andy Ross
  2011-01-24 22:48 ` [PATCH 3/4] asus-laptop: Support pega_accel accelerometer driver Andy Ross
@ 2011-01-24 22:48 ` Andy Ross
       [not found] ` <1295909288-32650-1-git-send-email-andy.ross-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
  3 siblings, 0 replies; 12+ messages in thread
From: Andy Ross @ 2011-01-24 22:48 UTC (permalink / raw)
  To: Dmitry Torokhov, Corentin Chary, linux-input, acpi4asus-user,
	platform-driver-x86

Add driver for the ACPI accelerometer interface on the Pegatron Lucid
tablet.

Signed-off-by: Andy Ross <andy.ross@windriver.com>
---
 drivers/input/misc/Kconfig      |   10 +++
 drivers/input/misc/Makefile     |    2 +-
 drivers/input/misc/pega-accel.c |  130 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 141 insertions(+), 1 deletions(-)
 create mode 100644 drivers/input/misc/pega-accel.c

diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index b99b8cb..e60af95 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -74,6 +74,16 @@ config INPUT_PCSPKR
 	  To compile this driver as a module, choose M here: the
 	  module will be called pcspkr.
 
+config INPUT_PEGA_ACCEL
+       tristate "Support Pegatron Lucid accelerometer"
+       depends on ASUS_LAPTOP
+       help
+         Say Y here if you want support for the built-in ACPI
+         accelerometer device on Pegatron Lucid tablet devices.
+
+	 To compile this driver as a module, choose M here: the module
+	 will be called pega_accel.
+
 config INPUT_SPARCSPKR
 	tristate "SPARC Speaker support"
 	depends on PCI && SPARC64
diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile
index 1fe1f6c..79aca4d 100644
--- a/drivers/input/misc/Makefile
+++ b/drivers/input/misc/Makefile
@@ -29,6 +29,7 @@ obj-$(CONFIG_INPUT_PCAP)		+= pcap_keys.o
 obj-$(CONFIG_INPUT_PCF50633_PMU)	+= pcf50633-input.o
 obj-$(CONFIG_INPUT_PCF8574)		+= pcf8574_keypad.o
 obj-$(CONFIG_INPUT_PCSPKR)		+= pcspkr.o
+obj-$(CONFIG_INPUT_PEGA_ACCEL)		+= pega-accel.o
 obj-$(CONFIG_INPUT_POWERMATE)		+= powermate.o
 obj-$(CONFIG_INPUT_PWM_BEEPER)		+= pwm-beeper.o
 obj-$(CONFIG_INPUT_RB532_BUTTON)	+= rb532_button.o
@@ -42,4 +43,3 @@ obj-$(CONFIG_INPUT_WINBOND_CIR)		+= winbond-cir.o
 obj-$(CONFIG_INPUT_WISTRON_BTNS)	+= wistron_btns.o
 obj-$(CONFIG_INPUT_WM831X_ON)		+= wm831x-on.o
 obj-$(CONFIG_INPUT_YEALINK)		+= yealink.o
-
diff --git a/drivers/input/misc/pega-accel.c b/drivers/input/misc/pega-accel.c
new file mode 100644
index 0000000..7005b46
--- /dev/null
+++ b/drivers/input/misc/pega-accel.c
@@ -0,0 +1,130 @@
+/*
+ * Driver for accelerometer in Pegatron Lucid tablets
+ *
+ * Copyright (c) 2011 Wind River Systems
+ *
+ * Author: Andy Ross <andy.ross@windriver.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include <linux/input-polldev.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <acpi/acpi_bus.h>
+
+#define DRIVER_NAME "pega_accel"
+#define DRIVER_DESC "Pegatron Lucid Tablet Accelerometer"
+
+/* 1G accel is reported as ~256, so clamp to 2G */
+#define CLAMP 512
+
+static struct input_polled_dev *ipdev;
+
+/* FIXME: this mechanism is *very* slow: ~50ms to read the three
+ * values.  Pre-caching an acpi handle with acpi_get_handle has no
+ * effect, so the issue isn't in the parsing or tree walking... */
+static int acpi_s16(char *method)
+{
+	unsigned long long val = 0;
+	acpi_evaluate_integer(NULL, method, NULL, &val);
+	return (short)val;
+}
+
+static void pega_accel_poll(struct input_polled_dev *ipdev)
+{
+	/* Note transform, convert to "right/up/out" in the native
+	 * landscape orientation (i.e. the vector is the direction of
+	 * "real up" in the device's cartiesian coordinates).  FIXME:
+	 * is there a relevant convention to adhere to? */
+	int x = -acpi_s16("\\_SB.ATKD.XLRX");
+	int y = -acpi_s16("\\_SB.ATKD.XLRY");
+	int z =  acpi_s16("\\_SB.ATKD.XLRZ");
+
+	x = clamp_val(x, -CLAMP, CLAMP);
+	y = clamp_val(y, -CLAMP, CLAMP);
+	z = clamp_val(z, -CLAMP, CLAMP);
+
+	input_report_abs(ipdev->input, ABS_X, x);
+	input_report_abs(ipdev->input, ABS_Y, y);
+	input_report_abs(ipdev->input, ABS_Z, z);
+	input_sync(ipdev->input);
+}
+
+static int __devinit platform_probe(struct platform_device *pd)
+{
+	int err;
+
+	ipdev = input_allocate_polled_device();
+	if (!ipdev)
+		return -ENOMEM;
+
+	ipdev->poll = pega_accel_poll;
+	ipdev->poll_interval = 100;
+	ipdev->poll_interval_min = 10;
+	ipdev->poll_interval_max = 2000;
+
+	ipdev->input->dev.parent = &pd->dev;
+	ipdev->input->id.bustype = BUS_HOST;
+
+	ipdev->input->name = DRIVER_DESC;
+	ipdev->input->phys = DRIVER_NAME "/input0";
+
+	set_bit(EV_ABS, ipdev->input->evbit);
+	input_set_abs_params(ipdev->input, ABS_X, -CLAMP, CLAMP, 0, 0);
+	input_set_abs_params(ipdev->input, ABS_Y, -CLAMP, CLAMP, 0, 0);
+	input_set_abs_params(ipdev->input, ABS_Z, -CLAMP, CLAMP, 0, 0);
+
+	err = input_register_polled_device(ipdev);
+	if (err)
+		input_free_polled_device(ipdev);
+
+	return err;
+}
+
+static int __devexit platform_remove(struct platform_device *pd)
+{
+	input_unregister_polled_device(ipdev);
+	input_free_polled_device(ipdev);
+	ipdev = NULL;
+	return 0;
+}
+
+static struct platform_driver platform_driver = {
+	.driver = {
+		.owner = THIS_MODULE,
+		.name  = DRIVER_NAME,
+	},
+	.probe  = platform_probe,
+	.remove = __devexit_p(platform_remove),
+};
+
+static int __init mod_init(void)
+{
+	return platform_driver_register(&platform_driver);
+}
+
+static void __exit mod_exit(void)
+{
+	platform_driver_unregister(&platform_driver);
+}
+
+module_init(mod_init);
+module_exit(mod_exit);
+
+MODULE_AUTHOR("Andy Ross <andy.ross@windriver.com>");
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION(DRIVER_DESC);
+MODULE_ALIAS("dmi:*:bvrLucid-CE-133:*");
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/4] Pegatron Lucid tablet acceleromter/ALS
       [not found] ` <1295909288-32650-1-git-send-email-andy.ross-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
  2011-01-24 22:48   ` [PATCH 1/4] asus-laptop: Device detection for Pegatron Lucid tablets Andy Ross
@ 2011-01-24 23:05   ` Dmitry Torokhov
  2011-01-25  7:30     ` Corentin Chary
  1 sibling, 1 reply; 12+ messages in thread
From: Dmitry Torokhov @ 2011-01-24 23:05 UTC (permalink / raw)
  To: Andy Ross
  Cc: acpi4asus-user-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	platform-driver-x86-u79uwXL29TY76Z2rM5mHXA,
	linux-input-u79uwXL29TY76Z2rM5mHXA

On Mon, Jan 24, 2011 at 02:48:04PM -0800, Andy Ross wrote:
> Resubmission and update of the Pegatron Lucid tablet accelerometer and
> ambient light sensor drivers.
> 
> Patches 1-3 are against asus-laptop, and apply in order.
> 
> Patch 4 is against input, and can be commited separately (obviously
> relies on the detection code in asus-laptop at runtime, but will build
> and load independently).
> 

I am happy with the input part but I wonder if it really needs to be
separate? If you roll it up into asus-laptop you would not need a new
platform device and then it would be what - 20 lines of code?

Corentin, what do you think?

Thanks.

-- 
Dmitry

------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/4] Pegatron Lucid tablet acceleromter/ALS
  2011-01-24 23:05   ` [PATCH 0/4] Pegatron Lucid tablet acceleromter/ALS Dmitry Torokhov
@ 2011-01-25  7:30     ` Corentin Chary
  2011-01-25 16:43       ` Andy Ross
  0 siblings, 1 reply; 12+ messages in thread
From: Corentin Chary @ 2011-01-25  7:30 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Andy Ross, linux-input, acpi4asus-user, platform-driver-x86

On Tue, Jan 25, 2011 at 12:05 AM, Dmitry Torokhov
<dmitry.torokhov@gmail.com> wrote:
> On Mon, Jan 24, 2011 at 02:48:04PM -0800, Andy Ross wrote:
>> Resubmission and update of the Pegatron Lucid tablet accelerometer and
>> ambient light sensor drivers.
>>
>> Patches 1-3 are against asus-laptop, and apply in order.
>>
>> Patch 4 is against input, and can be commited separately (obviously
>> relies on the detection code in asus-laptop at runtime, but will build
>> and load independently).
>>
>
> I am happy with the input part but I wonder if it really needs to be
> separate? If you roll it up into asus-laptop you would not need a new
> platform device and then it would be what - 20 lines of code?
>
> Corentin, what do you think?

I think that it should be consistent, if there is already some code
for pegatron tablet in asus-laptop, then why a new platform device
only for the accelerometer ?

On the other side, having to load "asus-laptop" on a pegatron tablet
(or on a lenovo laptop) isn't very intuitive.

The real name of this module should be atk010x_acpi, but it's not
really better, and it's probably too late for that.

Andy, what is shared with asus-laptop exactly ? What sysfs files are
working and enabled ?
Are backlight and led classes working ?

Thanks,
-- 
Corentin Chary
http://xf.iksaif.net

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/4] Pegatron Lucid tablet acceleromter/ALS
  2011-01-25  7:30     ` Corentin Chary
@ 2011-01-25 16:43       ` Andy Ross
  2011-01-25 17:05         ` Corentin Chary
  0 siblings, 1 reply; 12+ messages in thread
From: Andy Ross @ 2011-01-25 16:43 UTC (permalink / raw)
  To: Corentin Chary
  Cc: Dmitry Torokhov, linux-input, acpi4asus-user, platform-driver-x86

On 01/24/2011 11:30 PM, Corentin Chary wrote:
> Dmitry Torokhov wrote:
> > I am happy with the input part but I wonder if it really needs to be
> > separate? If you roll it up into asus-laptop you would not need a new
> > platform device and then it would be what - 20 lines of code?
> >
> > Corentin, what do you think?
>
> I think that it should be consistent, if there is already some code
> for pegatron tablet in asus-laptop, then why a new platform device
> only for the accelerometer ?

No strong feelings here.  I made it a separate file because
asus-laptop.c is already very large and this was something that could
be fairly easily split out, but obviously it's a really trivial
device.

> Andy, what is shared with asus-laptop exactly ? What sysfs files are
> working and enabled ?  Are backlight and led classes working ?

Just the key device, which exports the single touch area in the corner
of the tablet as KEY_MEDIA.  Some of the other sysfs devices
(bluetooth, display, leds) appear because the methods exist, but
they're stubbed out in the ASL and thus noops.

Andy

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/4] Pegatron Lucid tablet acceleromter/ALS
  2011-01-25 16:43       ` Andy Ross
@ 2011-01-25 17:05         ` Corentin Chary
       [not found]           ` <AANLkTi=tQpQ0wjfx-Cp13FuCSQNFitN7XAg-V2AcSHz2-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  2011-01-25 17:12           ` Dmitry Torokhov
  0 siblings, 2 replies; 12+ messages in thread
From: Corentin Chary @ 2011-01-25 17:05 UTC (permalink / raw)
  To: Andy Ross
  Cc: Dmitry Torokhov, linux-input, acpi4asus-user, platform-driver-x86

On Tue, Jan 25, 2011 at 4:43 PM, Andy Ross <andy.ross@windriver.com> wrote:
> On 01/24/2011 11:30 PM, Corentin Chary wrote:
>> Dmitry Torokhov wrote:
>> > I am happy with the input part but I wonder if it really needs to be
>> > separate? If you roll it up into asus-laptop you would not need a new
>> > platform device and then it would be what - 20 lines of code?
>> >
>> > Corentin, what do you think?
>>
>> I think that it should be consistent, if there is already some code
>> for pegatron tablet in asus-laptop, then why a new platform device
>> only for the accelerometer ?
>
> No strong feelings here.  I made it a separate file because
> asus-laptop.c is already very large and this was something that could
> be fairly easily split out, but obviously it's a really trivial
> device.
>
>> Andy, what is shared with asus-laptop exactly ? What sysfs files are
>> working and enabled ?  Are backlight and led classes working ?
>
> Just the key device, which exports the single touch area in the corner
> of the tablet as KEY_MEDIA.  Some of the other sysfs devices
> (bluetooth, display, leds) appear because the methods exist, but
> they're stubbed out in the ASL and thus noops.
>
> Andy

If everybody is ok with that, I think you should move the code back
into asus-laptop.c. But if you do so, don't forget to modify the help
text of ASUS_LAPTOP section in KConfig.

Should we also change the description to
"Asus/Medion/JVC/Lenovo/Pegatron Extra" ? That seems really ugly
but....

-- 
Corentin Chary
http://xf.iksaif.net

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/4] Pegatron Lucid tablet acceleromter/ALS
       [not found]           ` <AANLkTi=tQpQ0wjfx-Cp13FuCSQNFitN7XAg-V2AcSHz2-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2011-01-25 17:09             ` Andy Ross
       [not found]               ` <4D3F03B0.7030607-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
  0 siblings, 1 reply; 12+ messages in thread
From: Andy Ross @ 2011-01-25 17:09 UTC (permalink / raw)
  To: Corentin Chary
  Cc: platform-driver-x86-u79uwXL29TY76Z2rM5mHXA, Dmitry Torokhov,
	acpi4asus-user-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	linux-input-u79uwXL29TY76Z2rM5mHXA

On 01/25/2011 09:05 AM, Corentin Chary wrote:
> If everybody is ok with that, I think you should move the code back
> into asus-laptop.c. But if you do so, don't forget to modify the help
> text of ASUS_LAPTOP section in KConfig.

OK.  Though one gotcha I just realized is that this will pull input-polldev
into the dependency list for asus-laptop, which may not be desirable just to
support one obscure device.  But again, that's a small module...

I have a few things to take care of this morning first, hopefully I'll have
another version ready in a few hours.

Andy

------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/4] Pegatron Lucid tablet acceleromter/ALS
       [not found]               ` <4D3F03B0.7030607-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
@ 2011-01-25 17:10                 ` Corentin Chary
  0 siblings, 0 replies; 12+ messages in thread
From: Corentin Chary @ 2011-01-25 17:10 UTC (permalink / raw)
  To: Andy Ross
  Cc: platform-driver-x86-u79uwXL29TY76Z2rM5mHXA, Dmitry Torokhov,
	acpi4asus-user-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	linux-input-u79uwXL29TY76Z2rM5mHXA

On Tue, Jan 25, 2011 at 5:09 PM, Andy Ross <andy.ross@windriver.com> wrote:
> On 01/25/2011 09:05 AM, Corentin Chary wrote:
>> If everybody is ok with that, I think you should move the code back
>> into asus-laptop.c. But if you do so, don't forget to modify the help
>> text of ASUS_LAPTOP section in KConfig.
>
> OK.  Though one gotcha I just realized is that this will pull input-polldev
> into the dependency list for asus-laptop, which may not be desirable just to
> support one obscure device.  But again, that's a small module...

Maybe you can make pegatron support optional in asus-laptop ? (with a
checkbox or something like that)

-- 
Corentin Chary
http://xf.iksaif.net

------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Acpi4asus-user mailing list
Acpi4asus-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi4asus-user

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/4] Pegatron Lucid tablet acceleromter/ALS
  2011-01-25 17:05         ` Corentin Chary
       [not found]           ` <AANLkTi=tQpQ0wjfx-Cp13FuCSQNFitN7XAg-V2AcSHz2-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2011-01-25 17:12           ` Dmitry Torokhov
  1 sibling, 0 replies; 12+ messages in thread
From: Dmitry Torokhov @ 2011-01-25 17:12 UTC (permalink / raw)
  To: Corentin Chary
  Cc: Andy Ross, linux-input, acpi4asus-user, platform-driver-x86

On Tue, Jan 25, 2011 at 05:05:05PM +0000, Corentin Chary wrote:
> On Tue, Jan 25, 2011 at 4:43 PM, Andy Ross <andy.ross@windriver.com> wrote:
> > On 01/24/2011 11:30 PM, Corentin Chary wrote:
> >> Dmitry Torokhov wrote:
> >> > I am happy with the input part but I wonder if it really needs to be
> >> > separate? If you roll it up into asus-laptop you would not need a new
> >> > platform device and then it would be what - 20 lines of code?
> >> >
> >> > Corentin, what do you think?
> >>
> >> I think that it should be consistent, if there is already some code
> >> for pegatron tablet in asus-laptop, then why a new platform device
> >> only for the accelerometer ?
> >
> > No strong feelings here.  I made it a separate file because
> > asus-laptop.c is already very large and this was something that could
> > be fairly easily split out, but obviously it's a really trivial
> > device.
> >
> >> Andy, what is shared with asus-laptop exactly ? What sysfs files are
> >> working and enabled ?  Are backlight and led classes working ?
> >
> > Just the key device, which exports the single touch area in the corner
> > of the tablet as KEY_MEDIA.  Some of the other sysfs devices
> > (bluetooth, display, leds) appear because the methods exist, but
> > they're stubbed out in the ASL and thus noops.
> >
> > Andy
> 
> If everybody is ok with that, I think you should move the code back
> into asus-laptop.c. But if you do so, don't forget to modify the help
> text of ASUS_LAPTOP section in KConfig.
> 
> Should we also change the description to
> "Asus/Medion/JVC/Lenovo/Pegatron Extra" ? That seems really ugly
> but....

"Kitchen sink" so we do not need to adjust the description going
forward? ;P

-- 
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2011-01-25 17:12 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-24 22:48 [PATCH 0/4] Pegatron Lucid tablet acceleromter/ALS Andy Ross
2011-01-24 22:48 ` [PATCH 2/4] asus-laptop: Pegatron Lucid ALS support Andy Ross
2011-01-24 22:48 ` [PATCH 3/4] asus-laptop: Support pega_accel accelerometer driver Andy Ross
2011-01-24 22:48 ` [PATCH 4/4] input: Pegatron Lucid accelerometer Andy Ross
     [not found] ` <1295909288-32650-1-git-send-email-andy.ross-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
2011-01-24 22:48   ` [PATCH 1/4] asus-laptop: Device detection for Pegatron Lucid tablets Andy Ross
2011-01-24 23:05   ` [PATCH 0/4] Pegatron Lucid tablet acceleromter/ALS Dmitry Torokhov
2011-01-25  7:30     ` Corentin Chary
2011-01-25 16:43       ` Andy Ross
2011-01-25 17:05         ` Corentin Chary
     [not found]           ` <AANLkTi=tQpQ0wjfx-Cp13FuCSQNFitN7XAg-V2AcSHz2-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-01-25 17:09             ` Andy Ross
     [not found]               ` <4D3F03B0.7030607-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
2011-01-25 17:10                 ` Corentin Chary
2011-01-25 17:12           ` Dmitry Torokhov

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.