Shem Multinymous | 8 Oct 06:41

ThinkPad input device IDs

Hi Dmitry and Henrique,

We seem to have a bit of a mess in regard to input device
identification on ThinkPad-specific devices.

thinkpad-acpi does essentially the following (Henrique's commit
7f5d1cd62 from July 2007, after macro expansion):

        tpacpi_inputdev->name = "ThinkPad Extra Buttons";
        tpacpi_inputdev->phys = "thinkpad_acpi/input0";
        tpacpi_inputdev->id.bustype = BUS_HOST;
        tpacpi_inputdev->id.vendor = PCI_VENDOR_ID_IBM or PCI_VENDOR_ID_LENOVO;
        tpacpi_inputdev->id.product = 0x5054 /* "TP" */;
        tpacpi_inputdev->id.version = 0x4101;

But mainline hdaps uses a different convention (Dmitry's commit
d2fc60d692 from May 2008):

        idev->name = "hdaps";
        idev->phys = "isa1600/input0";
        idev->id.bustype = BUS_ISA;

What's the rationale for the different bus and phys convention?
Also, where does the "isa1600" come from, and why BUS_ISA? As far as I
can tell, the input device polls the ThinkPad embedded controller via
the LPC bus interface of the chipset, so no ISA-like bus is involved.

More concretely:
The out-of-tree tp_smapi version of hdaps followed the thinkpad-acpi
convention so it now conflicts with mainline hdaps. Which should I
(Continue reading)

Pieter du Preez | 6 Oct 23:07

[PATCH] Input: Remove keyboard warning if CONFIG_INPUT_KEYBOARD is not set.

Many embedded systems have no keyboard and will have the
CONFIG_INPUT_KEYBOARD option unset. On compilation, they
however get nagged as follows:

#warning "Cannot generate rawmode keyboard for your architecture yet."

There is no reason for this, as there is no keyboard.

This patch removes this warning if CONFIG_INPUT_KEYBOARD
is not set.

Signed-off-by: Pieter du Preez <pdupreez <at> gmail.com>
---
 drivers/char/keyboard.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c
index 7b3a212..d0a8961 100644
--- a/drivers/char/keyboard.c
+++ b/drivers/char/keyboard.c
@@ -1123,7 +1123,9 @@ static int emulate_raw(struct vc_data *vc, unsigned int keycode,

 #define HW_RAW(dev)	0

+#if defined CONFIG_INPUT_KEYBOARD
 #warning "Cannot generate rawmode keyboard for your architecture yet."
+#endif

 static int emulate_raw(struct vc_data *vc, unsigned int keycode, unsigned char up_flag)
 {
(Continue reading)

Peter Korsgaard | 6 Oct 10:06

[PATCH] hid: add appletv IR receiver quirk

Similar to the existing IRCONTROL4 handling

Signed-off-by: Peter Korsgaard <jacmet <at> sunsite.dk>
---
 drivers/hid/hid-apple.c |    2 ++
 drivers/hid/hid-ids.h   |    1 +
 2 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
index a808e57..fd7f896 100644
--- a/drivers/hid/hid-apple.c
+++ b/drivers/hid/hid-apple.c
@@ -359,6 +359,8 @@ static void apple_remove(struct hid_device *hdev)
 }

 static const struct hid_device_id apple_devices[] = {
+	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ATV_IRCONTROL),
+		.driver_data = APPLE_HIDDEV | APPLE_IGNORE_HIDINPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4),
 		.driver_data = APPLE_HIDDEV | APPLE_IGNORE_HIDINPUT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MIGHTYMOUSE),
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index fa4e4fd..9fc2636 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -84,6 +84,7 @@
 #define USB_DEVICE_ID_APPLE_WELLSPRING2_JIS	0x0232
 #define USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY	0x030a
 #define USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY	0x030b
+#define USB_DEVICE_ID_APPLE_ATV_IRCONTROL	0x8241
(Continue reading)

Jiri Kosina | 4 Oct 23:24

[PATCH] Input: document i8042.debug in kernel-parameters.txt

From: Jiri Kosina <jkosina <at> suse.cz>

Input: document i8042.debug in kernel-parameters.txt

i8042.debug parameter was missing in Documentation/kernel-parameters.txt. 
Add it.

Signed-off-by: Jiri Kosina <jkosina <at> suse.cz>

--- 

 Documentation/kernel-parameters.txt |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 1150444..c44bf65 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -796,6 +796,7 @@ and is between 256 and 4096 characters. It is defined in the file
 			Defaults to the default architecture's huge page size
 			if not specified.

+	i8042.debug	[HW] Toggle i8042 debug mode
 	i8042.direct	[HW] Put keyboard port into non-translated mode
 	i8042.dumbkbd	[HW] Pretend that controller can only read data from
 			     keyboard and cannot control its state
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
(Continue reading)

Anssi Hannula | 4 Oct 14:41

Re: Sleeping inside spinlock in force feedback input event code

Jiri Kosina wrote:
> On Sat, 4 Oct 2008, Anssi Hannula wrote:
>
>   
>>> There were some changes in the code due to hidbus getting finally 
>>> merged, but it should be rather trivial to solve.
>>>       
>> AFAICS no changes are needed, it applies to hid.git#mm fine.
>>     
>
> You are right.
>
> Could you please send me the patch with the changelog? I will then merge 
> it for 2.6.28.
>
> Thanks,
>
>   

From: Anssi Hannula <anssi.hannula <at> gmail.com>
Subject: HID: fix a lockup regression when using force feedback on a PID device

Commit 8006479c9b75fb6594a7b746af3d7f1fbb68f18f introduced a spinlock in
input_dev->event_lock, which is locked when handling input events.
However, the hid-pidff driver sleeps when handling events as it waits for
reports being sent to the device before changing the report contents
again.
This causes a system lockup when trying to use force feedback with a PID
device, a regression introduced in 2.6.24 and 2.6.23.15.

(Continue reading)

Greg KH | 26 Sep 01:21

[PATCH] Input: add mmio xi driver


From: Greg Kroah-Hartman <gregkh <at> suse.de>

This patch adds the Mimio Xi interactive whiteboard driver to the tree.

It was originally written by mwilder <at> cs.nmsu.edu, but cleaned up and
forward ported by me to the latest kernel version.

Cc: Phil Hannent <phil <at> hannent.co.uk>
Cc: <mwilder <at> cs.nmsu.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh <at> suse.de>

---
 drivers/input/misc/Kconfig  |   11 
 drivers/input/misc/Makefile |    1 
 drivers/input/misc/mimio.c  |  913 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 925 insertions(+)

--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -164,6 +164,17 @@ config INPUT_POWERMATE
 	  To compile this driver as a module, choose M here: the
 	  module will be called powermate.

+config INPUT_MIMIO
+	tristate "Mimio Xi interactive whiteboard support"
+	depends on USB_ARCH_HAS_HCD
+	select USB
+	help
+	  Say Y here if you want to use a Mimio Xi interactive
(Continue reading)

Michael S. Tsirkin | 24 Sep 21:16

possible recursive locking in ps2_command

I got the following on resume on my T60p, this might indicate
a potential deadlock I think.

[33491.050660] psmouse.c: Failed to enable mouse on isa0060/serio1
[33491.054938] PM: Removing info for No Bus:mouse1
[33491.064134] PM: Removing info for No Bus:event8
[33491.080154] PM: Removing info for No Bus:input8
[33491.089117]
[33491.089120] =============================================
[33491.089128] [ INFO: possible recursive locking detected ]
[33491.089133] 2.6.27-rc7-mst #53
[33491.089137] ---------------------------------------------
[33491.089141] kseriod/147 is trying to acquire lock:
[33491.089146]  (&ps2dev->cmd_mutex){--..}, at: [<c028cdf3>] ps2_command+0x43/0x3a0
[33491.089162] 
[33491.089163] but task is already holding lock:
[33491.089168]  (&ps2dev->cmd_mutex){--..}, at: [<c028cdf3>] ps2_command+0x43/0x3a0
[33491.089179] 
[33491.089180] other info that might help us debug this:
[33491.089185] 4 locks held by kseriod/147:
[33491.089189]  #0:  (serio_mutex){--..}, at: [<c028b612>] serio_thread+0x22/0x340
[33491.089204]  #1:  (&serio->drv_mutex){--..}, at: [<c028aad4>] serio_connect_driver+0x24/0x50
[33491.089218]  #2:  (psmouse_mutex){--..}, at: [<f8a355ca>] psmouse_connect+0x1a/0x250 [psmouse]
[33491.089246]  #3:  (&ps2dev->cmd_mutex){--..}, at: [<c028cdf3>] ps2_command+0x43/0x3a0
[33491.089259] 
[33491.089260] stack backtrace:
[33491.089266] Pid: 147, comm: kseriod Not tainted 2.6.27-rc7-mst #53
[33491.089272]  [<c014b924>] validate_chain+0xbd4/0xeb0
[33491.089282]  [<c014978a>] ? find_usage_backwards+0x1a/0x100
[33491.089293]  [<c014be39>] __lock_acquire+0x239/0x950
(Continue reading)

(unknown)


Hi, 

 
I have been trying to enable force feedback with my MS SideWinder FF2 for a while. My Linux system is a Xubuntu
8.04 (kernel 2.26) After a lot of problems, I have made some progress. First I figured out I had to recompile
the kernel with options to activate the force feedback support (PID Force feedback). Sorry, I suppose it
was obvious for you.

Then I tested my Sidewinder with ff-utils and geforce-0.3. I could get pretty convincing force effects but
only once: after the 1st effect is finished, if I ask for another one, the system freezes and I have to
reboot. This is a reproducible process.

I do not know whether I made some mistake during the compilation of the kernell (I have no sound and no wifi
with this kernel) or if this is a normal behaviour considering that the Sidewinder FF2 support is
experimental. I think it is not far from working since the force effects seem good to me

I have another computer with Vista and I installed fedit (to generate force feedback effects) and SniffUsb
2.0 to monitor the USB communications between the joystick and the computer. Maybe this could help
someone using my logs to improve the current driver?

Many thanks

 Créez votre adresse électronique prenom.nom <at> laposte.net 
 1 Go d'espace de stockage, anti-spam et anti-virus intégrés.

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
(Continue reading)

Dmitry Torokhov | 22 Sep 00:56

[git pull] Input updates for 2.6.27-rc7

Hi Linus,

Please pull from:

	git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git for-linus
or
	master.kernel.org:/pub/scm/linux/kernel/git/dtor/input.git for-linus

to receive updates for the input subsystem.

Changelog:
---------

Henrik Rydberg (1):
      Input: bcm5974 - switch back to normal mode when closing

Kristoffer Ericson (1):
      Input: jornada720_ts - fix build error ( LONG() usage )

Diffstat:
--------

 drivers/input/mouse/bcm5974.c             |   13 +++++++++----
 drivers/input/touchscreen/jornada720_ts.c |    4 ++--
 2 files changed, 11 insertions(+), 6 deletions(-)

--

-- 
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
(Continue reading)

Matteo Croce | 18 Sep 19:12

[PATCH] usbtouchscreen: option to swap X and Y axes

Here there is a patch to invert the X and Y axes, as my controller swaps it:

Signed-off-by: Matteo Croce <matteo <at> openwrt.org>

--- a/drivers/input/touchscreen/usbtouchscreen.c	2008-09-18
18:50:44.294868149 +0200
+++ b/drivers/input/touchscreen/usbtouchscreen.c	2008-09-18
18:50:44.226867816 +0200
@@ -56,8 +56,16 @@
 #define DRIVER_DESC		"USB Touchscreen Driver"

 static int swap_xy;
+static int invert_x;
+static int invert_y;
+
 module_param(swap_xy, bool, 0644);
+module_param(invert_x, bool, 0644);
+module_param(invert_y, bool, 0644);
+
 MODULE_PARM_DESC(swap_xy, "If set X and Y axes are swapped.");
+MODULE_PARM_DESC(invert_x, "If set X axe is inverted.");
+MODULE_PARM_DESC(invert_y, "If set Y axe is inverted.");

 /* device specifc data/functions */
 struct usbtouch_usb;
@@ -683,6 +691,7 @@
                                  unsigned char *pkt, int len)
 {
 	struct usbtouch_device_info *type = usbtouch->type;
+	int x, y;
(Continue reading)

Kristoffer Ericson | 17 Sep 05:05

[PATCH/HP7XX] - Fix touchscreen build error ( LONG() usage )

This patch removes the usage of LONG() which is deprecated inside
the jornada720_ts.c file.
We also replace BIT() with BIT_MASK().

signed-off-by: Kristoffer Ericson <kristoffer.ericson <at> gmail.com>

diff --git a/drivers/input/touchscreen/jornada720_ts.c b/drivers/input/touchscreen/jornada720_ts.c
index bf44f9d..c8b7e8a 100644
--- a/drivers/input/touchscreen/jornada720_ts.c
+++ b/drivers/input/touchscreen/jornada720_ts.c
@@ -119,8 +119,8 @@ static int __devinit jornada720_ts_probe(struct platform_device *pdev)
 	input_dev->id.bustype = BUS_HOST;
 	input_dev->dev.parent = &pdev->dev;

-	input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_ABS);
-	input_dev->keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH);
+	input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
+	input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
 	input_set_abs_params(input_dev, ABS_X, 270, 3900, 0, 0);
 	input_set_abs_params(input_dev, ABS_Y, 180, 3700, 0, 0);

--

-- 
Kristoffer Ericson <kristoffer.ericson <at> gmail.com>
Attachment (jornada720_ts-LONG.patch): application/octet-stream, 743 bytes

Gmane