Merge master.kernel.org:/pub/scm/linux/kernel/git/dtor/input
* master.kernel.org:/pub/scm/linux/kernel/git/dtor/input: Input: move USB miscellaneous devices under drivers/input/misc Input: move USB mice under drivers/input/mouse Input: move USB gamepads under drivers/input/joystick Input: move USB touchscreens under drivers/input/touchscreen Input: move USB tablets under drivers/input/tablet Input: i8042 - fix AUX port detection with some chips Input: aaed2000_kbd - convert to use polldev library Input: drivers/usb/input - usb_buffer_free() cleanup Input: synaptics - don't complain about failed resets Input: pull input.h into uinpit.h Input: drivers/usb/input - fix sparse warnings (signedness) Input: evdev - fix some sparse warnings (signedness, shadowing) Input: drivers/joystick - fix various sparse warnings Input: force feedback - make sure effect is present before playing
This commit is contained in:
@@ -153,6 +153,8 @@ source "drivers/input/mouse/Kconfig"
|
|||||||
|
|
||||||
source "drivers/input/joystick/Kconfig"
|
source "drivers/input/joystick/Kconfig"
|
||||||
|
|
||||||
|
source "drivers/input/tablet/Kconfig"
|
||||||
|
|
||||||
source "drivers/input/touchscreen/Kconfig"
|
source "drivers/input/touchscreen/Kconfig"
|
||||||
|
|
||||||
source "drivers/input/misc/Kconfig"
|
source "drivers/input/misc/Kconfig"
|
||||||
|
@@ -18,6 +18,7 @@ obj-$(CONFIG_INPUT_EVBUG) += evbug.o
|
|||||||
obj-$(CONFIG_INPUT_KEYBOARD) += keyboard/
|
obj-$(CONFIG_INPUT_KEYBOARD) += keyboard/
|
||||||
obj-$(CONFIG_INPUT_MOUSE) += mouse/
|
obj-$(CONFIG_INPUT_MOUSE) += mouse/
|
||||||
obj-$(CONFIG_INPUT_JOYSTICK) += joystick/
|
obj-$(CONFIG_INPUT_JOYSTICK) += joystick/
|
||||||
|
obj-$(CONFIG_INPUT_TABLET) += tablet/
|
||||||
obj-$(CONFIG_INPUT_TOUCHSCREEN) += touchscreen/
|
obj-$(CONFIG_INPUT_TOUCHSCREEN) += touchscreen/
|
||||||
obj-$(CONFIG_INPUT_MISC) += misc/
|
obj-$(CONFIG_INPUT_MISC) += misc/
|
||||||
|
|
||||||
|
@@ -511,7 +511,7 @@ static long evdev_ioctl_handler(struct file *file, unsigned int cmd,
|
|||||||
|
|
||||||
if ((_IOC_NR(cmd) & ~EV_MAX) == _IOC_NR(EVIOCGBIT(0,0))) {
|
if ((_IOC_NR(cmd) & ~EV_MAX) == _IOC_NR(EVIOCGBIT(0,0))) {
|
||||||
|
|
||||||
long *bits;
|
unsigned long *bits;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
switch (_IOC_NR(cmd) & EV_MAX) {
|
switch (_IOC_NR(cmd) & EV_MAX) {
|
||||||
@@ -556,7 +556,7 @@ static long evdev_ioctl_handler(struct file *file, unsigned int cmd,
|
|||||||
|
|
||||||
if ((_IOC_NR(cmd) & ~ABS_MAX) == _IOC_NR(EVIOCGABS(0))) {
|
if ((_IOC_NR(cmd) & ~ABS_MAX) == _IOC_NR(EVIOCGABS(0))) {
|
||||||
|
|
||||||
int t = _IOC_NR(cmd) & ABS_MAX;
|
t = _IOC_NR(cmd) & ABS_MAX;
|
||||||
|
|
||||||
abs.value = dev->abs[t];
|
abs.value = dev->abs[t];
|
||||||
abs.minimum = dev->absmin[t];
|
abs.minimum = dev->absmin[t];
|
||||||
@@ -576,7 +576,7 @@ static long evdev_ioctl_handler(struct file *file, unsigned int cmd,
|
|||||||
|
|
||||||
if ((_IOC_NR(cmd) & ~ABS_MAX) == _IOC_NR(EVIOCSABS(0))) {
|
if ((_IOC_NR(cmd) & ~ABS_MAX) == _IOC_NR(EVIOCSABS(0))) {
|
||||||
|
|
||||||
int t = _IOC_NR(cmd) & ABS_MAX;
|
t = _IOC_NR(cmd) & ABS_MAX;
|
||||||
|
|
||||||
if (copy_from_user(&abs, p, sizeof(struct input_absinfo)))
|
if (copy_from_user(&abs, p, sizeof(struct input_absinfo)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
@@ -281,7 +281,8 @@ int input_ff_event(struct input_dev *dev, unsigned int type,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ff->playback(dev, code, value);
|
if (check_effect_access(ff, code, NULL) == 0)
|
||||||
|
ff->playback(dev, code, value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
# Joystick driver configuration
|
# Joystick driver configuration
|
||||||
#
|
#
|
||||||
menuconfig INPUT_JOYSTICK
|
menuconfig INPUT_JOYSTICK
|
||||||
bool "Joysticks"
|
bool "Joysticks/Gamepads"
|
||||||
help
|
help
|
||||||
If you have a joystick, 6dof controller, gamepad, steering wheel,
|
If you have a joystick, 6dof controller, gamepad, steering wheel,
|
||||||
weapon control system or something like that you can say Y here
|
weapon control system or something like that you can say Y here
|
||||||
@@ -196,7 +196,7 @@ config JOYSTICK_TWIDJOY
|
|||||||
config JOYSTICK_DB9
|
config JOYSTICK_DB9
|
||||||
tristate "Multisystem, Sega Genesis, Saturn joysticks and gamepads"
|
tristate "Multisystem, Sega Genesis, Saturn joysticks and gamepads"
|
||||||
depends on PARPORT
|
depends on PARPORT
|
||||||
---help---
|
help
|
||||||
Say Y here if you have a Sega Master System gamepad, Sega Genesis
|
Say Y here if you have a Sega Master System gamepad, Sega Genesis
|
||||||
gamepad, Sega Saturn gamepad, or a Multisystem -- Atari, Amiga,
|
gamepad, Sega Saturn gamepad, or a Multisystem -- Atari, Amiga,
|
||||||
Commodore, Amstrad CPC joystick connected to your parallel port.
|
Commodore, Amstrad CPC joystick connected to your parallel port.
|
||||||
@@ -253,4 +253,18 @@ config JOYSTICK_JOYDUMP
|
|||||||
To compile this driver as a module, choose M here: the
|
To compile this driver as a module, choose M here: the
|
||||||
module will be called joydump.
|
module will be called joydump.
|
||||||
|
|
||||||
|
config JOYSTICK_XPAD
|
||||||
|
tristate "X-Box gamepad support"
|
||||||
|
select USB
|
||||||
|
help
|
||||||
|
Say Y here if you want to use the X-Box pad with your computer.
|
||||||
|
Make sure to say Y to "Joystick support" (CONFIG_INPUT_JOYDEV)
|
||||||
|
and/or "Event interface support" (CONFIG_INPUT_EVDEV) as well.
|
||||||
|
|
||||||
|
For information about how to connect the X-Box pad to USB, see
|
||||||
|
<file:Documentation/input/xpad.txt>.
|
||||||
|
|
||||||
|
To compile this driver as a module, choose M here: the
|
||||||
|
module will be called xpad.
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
@@ -26,5 +26,6 @@ obj-$(CONFIG_JOYSTICK_TMDC) += tmdc.o
|
|||||||
obj-$(CONFIG_JOYSTICK_TURBOGRAFX) += turbografx.o
|
obj-$(CONFIG_JOYSTICK_TURBOGRAFX) += turbografx.o
|
||||||
obj-$(CONFIG_JOYSTICK_TWIDJOY) += twidjoy.o
|
obj-$(CONFIG_JOYSTICK_TWIDJOY) += twidjoy.o
|
||||||
obj-$(CONFIG_JOYSTICK_WARRIOR) += warrior.o
|
obj-$(CONFIG_JOYSTICK_WARRIOR) += warrior.o
|
||||||
|
obj-$(CONFIG_JOYSTICK_XPAD) += xpad.o
|
||||||
|
|
||||||
obj-$(CONFIG_JOYSTICK_IFORCE) += iforce/
|
obj-$(CONFIG_JOYSTICK_IFORCE) += iforce/
|
||||||
|
@@ -53,7 +53,7 @@ MODULE_LICENSE("GPL");
|
|||||||
#define ANALOG_PORTS 16
|
#define ANALOG_PORTS 16
|
||||||
|
|
||||||
static char *js[ANALOG_PORTS];
|
static char *js[ANALOG_PORTS];
|
||||||
static int js_nargs;
|
static unsigned int js_nargs;
|
||||||
static int analog_options[ANALOG_PORTS];
|
static int analog_options[ANALOG_PORTS];
|
||||||
module_param_array_named(map, js, charp, &js_nargs, 0);
|
module_param_array_named(map, js, charp, &js_nargs, 0);
|
||||||
MODULE_PARM_DESC(map, "Describes analog joysticks type/capabilities");
|
MODULE_PARM_DESC(map, "Describes analog joysticks type/capabilities");
|
||||||
|
@@ -46,17 +46,17 @@ MODULE_LICENSE("GPL");
|
|||||||
|
|
||||||
struct db9_config {
|
struct db9_config {
|
||||||
int args[2];
|
int args[2];
|
||||||
int nargs;
|
unsigned int nargs;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DB9_MAX_PORTS 3
|
#define DB9_MAX_PORTS 3
|
||||||
static struct db9_config db9[DB9_MAX_PORTS] __initdata;
|
static struct db9_config db9_cfg[DB9_MAX_PORTS] __initdata;
|
||||||
|
|
||||||
module_param_array_named(dev, db9[0].args, int, &db9[0].nargs, 0);
|
module_param_array_named(dev, db9_cfg[0].args, int, &db9_cfg[0].nargs, 0);
|
||||||
MODULE_PARM_DESC(dev, "Describes first attached device (<parport#>,<type>)");
|
MODULE_PARM_DESC(dev, "Describes first attached device (<parport#>,<type>)");
|
||||||
module_param_array_named(dev2, db9[1].args, int, &db9[0].nargs, 0);
|
module_param_array_named(dev2, db9_cfg[1].args, int, &db9_cfg[0].nargs, 0);
|
||||||
MODULE_PARM_DESC(dev2, "Describes second attached device (<parport#>,<type>)");
|
MODULE_PARM_DESC(dev2, "Describes second attached device (<parport#>,<type>)");
|
||||||
module_param_array_named(dev3, db9[2].args, int, &db9[2].nargs, 0);
|
module_param_array_named(dev3, db9_cfg[2].args, int, &db9_cfg[2].nargs, 0);
|
||||||
MODULE_PARM_DESC(dev3, "Describes third attached device (<parport#>,<type>)");
|
MODULE_PARM_DESC(dev3, "Describes third attached device (<parport#>,<type>)");
|
||||||
|
|
||||||
#define DB9_ARG_PARPORT 0
|
#define DB9_ARG_PARPORT 0
|
||||||
@@ -680,17 +680,17 @@ static int __init db9_init(void)
|
|||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
for (i = 0; i < DB9_MAX_PORTS; i++) {
|
for (i = 0; i < DB9_MAX_PORTS; i++) {
|
||||||
if (db9[i].nargs == 0 || db9[i].args[DB9_ARG_PARPORT] < 0)
|
if (db9_cfg[i].nargs == 0 || db9_cfg[i].args[DB9_ARG_PARPORT] < 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (db9[i].nargs < 2) {
|
if (db9_cfg[i].nargs < 2) {
|
||||||
printk(KERN_ERR "db9.c: Device type must be specified.\n");
|
printk(KERN_ERR "db9.c: Device type must be specified.\n");
|
||||||
err = -EINVAL;
|
err = -EINVAL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
db9_base[i] = db9_probe(db9[i].args[DB9_ARG_PARPORT],
|
db9_base[i] = db9_probe(db9_cfg[i].args[DB9_ARG_PARPORT],
|
||||||
db9[i].args[DB9_ARG_MODE]);
|
db9_cfg[i].args[DB9_ARG_MODE]);
|
||||||
if (IS_ERR(db9_base[i])) {
|
if (IS_ERR(db9_base[i])) {
|
||||||
err = PTR_ERR(db9_base[i]);
|
err = PTR_ERR(db9_base[i]);
|
||||||
break;
|
break;
|
||||||
|
@@ -48,16 +48,16 @@ MODULE_LICENSE("GPL");
|
|||||||
|
|
||||||
struct gc_config {
|
struct gc_config {
|
||||||
int args[GC_MAX_DEVICES + 1];
|
int args[GC_MAX_DEVICES + 1];
|
||||||
int nargs;
|
unsigned int nargs;
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct gc_config gc[GC_MAX_PORTS] __initdata;
|
static struct gc_config gc_cfg[GC_MAX_PORTS] __initdata;
|
||||||
|
|
||||||
module_param_array_named(map, gc[0].args, int, &gc[0].nargs, 0);
|
module_param_array_named(map, gc_cfg[0].args, int, &gc_cfg[0].nargs, 0);
|
||||||
MODULE_PARM_DESC(map, "Describes first set of devices (<parport#>,<pad1>,<pad2>,..<pad5>)");
|
MODULE_PARM_DESC(map, "Describes first set of devices (<parport#>,<pad1>,<pad2>,..<pad5>)");
|
||||||
module_param_array_named(map2, gc[1].args, int, &gc[1].nargs, 0);
|
module_param_array_named(map2, gc_cfg[1].args, int, &gc_cfg[1].nargs, 0);
|
||||||
MODULE_PARM_DESC(map2, "Describes second set of devices");
|
MODULE_PARM_DESC(map2, "Describes second set of devices");
|
||||||
module_param_array_named(map3, gc[2].args, int, &gc[2].nargs, 0);
|
module_param_array_named(map3, gc_cfg[2].args, int, &gc_cfg[2].nargs, 0);
|
||||||
MODULE_PARM_DESC(map3, "Describes third set of devices");
|
MODULE_PARM_DESC(map3, "Describes third set of devices");
|
||||||
|
|
||||||
/* see also gs_psx_delay parameter in PSX support section */
|
/* see also gs_psx_delay parameter in PSX support section */
|
||||||
@@ -810,16 +810,17 @@ static int __init gc_init(void)
|
|||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
for (i = 0; i < GC_MAX_PORTS; i++) {
|
for (i = 0; i < GC_MAX_PORTS; i++) {
|
||||||
if (gc[i].nargs == 0 || gc[i].args[0] < 0)
|
if (gc_cfg[i].nargs == 0 || gc_cfg[i].args[0] < 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (gc[i].nargs < 2) {
|
if (gc_cfg[i].nargs < 2) {
|
||||||
printk(KERN_ERR "gamecon.c: at least one device must be specified\n");
|
printk(KERN_ERR "gamecon.c: at least one device must be specified\n");
|
||||||
err = -EINVAL;
|
err = -EINVAL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
gc_base[i] = gc_probe(gc[i].args[0], gc[i].args + 1, gc[i].nargs - 1);
|
gc_base[i] = gc_probe(gc_cfg[i].args[0],
|
||||||
|
gc_cfg[i].args + 1, gc_cfg[i].nargs - 1);
|
||||||
if (IS_ERR(gc_base[i])) {
|
if (IS_ERR(gc_base[i])) {
|
||||||
err = PTR_ERR(gc_base[i]);
|
err = PTR_ERR(gc_base[i]);
|
||||||
break;
|
break;
|
||||||
|
@@ -124,7 +124,7 @@ struct iforce {
|
|||||||
/* Buffer used for asynchronous sending of bytes to the device */
|
/* Buffer used for asynchronous sending of bytes to the device */
|
||||||
struct circ_buf xmit;
|
struct circ_buf xmit;
|
||||||
unsigned char xmit_data[XMIT_SIZE];
|
unsigned char xmit_data[XMIT_SIZE];
|
||||||
long xmit_flags[1];
|
unsigned long xmit_flags[1];
|
||||||
|
|
||||||
/* Force Feedback */
|
/* Force Feedback */
|
||||||
wait_queue_head_t wait;
|
wait_queue_head_t wait;
|
||||||
|
@@ -48,16 +48,16 @@ MODULE_LICENSE("GPL");
|
|||||||
|
|
||||||
struct tgfx_config {
|
struct tgfx_config {
|
||||||
int args[TGFX_MAX_DEVICES + 1];
|
int args[TGFX_MAX_DEVICES + 1];
|
||||||
int nargs;
|
unsigned int nargs;
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct tgfx_config tgfx[TGFX_MAX_PORTS] __initdata;
|
static struct tgfx_config tgfx_cfg[TGFX_MAX_PORTS] __initdata;
|
||||||
|
|
||||||
module_param_array_named(map, tgfx[0].args, int, &tgfx[0].nargs, 0);
|
module_param_array_named(map, tgfx_cfg[0].args, int, &tgfx_cfg[0].nargs, 0);
|
||||||
MODULE_PARM_DESC(map, "Describes first set of devices (<parport#>,<js1>,<js2>,..<js7>");
|
MODULE_PARM_DESC(map, "Describes first set of devices (<parport#>,<js1>,<js2>,..<js7>");
|
||||||
module_param_array_named(map2, tgfx[1].args, int, &tgfx[1].nargs, 0);
|
module_param_array_named(map2, tgfx_cfg[1].args, int, &tgfx_cfg[1].nargs, 0);
|
||||||
MODULE_PARM_DESC(map2, "Describes second set of devices");
|
MODULE_PARM_DESC(map2, "Describes second set of devices");
|
||||||
module_param_array_named(map3, tgfx[2].args, int, &tgfx[2].nargs, 0);
|
module_param_array_named(map3, tgfx_cfg[2].args, int, &tgfx_cfg[2].nargs, 0);
|
||||||
MODULE_PARM_DESC(map3, "Describes third set of devices");
|
MODULE_PARM_DESC(map3, "Describes third set of devices");
|
||||||
|
|
||||||
#define TGFX_REFRESH_TIME HZ/100 /* 10 ms */
|
#define TGFX_REFRESH_TIME HZ/100 /* 10 ms */
|
||||||
@@ -283,16 +283,18 @@ static int __init tgfx_init(void)
|
|||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
for (i = 0; i < TGFX_MAX_PORTS; i++) {
|
for (i = 0; i < TGFX_MAX_PORTS; i++) {
|
||||||
if (tgfx[i].nargs == 0 || tgfx[i].args[0] < 0)
|
if (tgfx_cfg[i].nargs == 0 || tgfx_cfg[i].args[0] < 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (tgfx[i].nargs < 2) {
|
if (tgfx_cfg[i].nargs < 2) {
|
||||||
printk(KERN_ERR "turbografx.c: at least one joystick must be specified\n");
|
printk(KERN_ERR "turbografx.c: at least one joystick must be specified\n");
|
||||||
err = -EINVAL;
|
err = -EINVAL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
tgfx_base[i] = tgfx_probe(tgfx[i].args[0], tgfx[i].args + 1, tgfx[i].nargs - 1);
|
tgfx_base[i] = tgfx_probe(tgfx_cfg[i].args[0],
|
||||||
|
tgfx_cfg[i].args + 1,
|
||||||
|
tgfx_cfg[i].nargs - 1);
|
||||||
if (IS_ERR(tgfx_base[i])) {
|
if (IS_ERR(tgfx_base[i])) {
|
||||||
err = PTR_ERR(tgfx_base[i]);
|
err = PTR_ERR(tgfx_base[i]);
|
||||||
break;
|
break;
|
||||||
|
@@ -226,6 +226,7 @@ config KEYBOARD_PXA27x
|
|||||||
config KEYBOARD_AAED2000
|
config KEYBOARD_AAED2000
|
||||||
tristate "AAED-2000 keyboard"
|
tristate "AAED-2000 keyboard"
|
||||||
depends on MACH_AAED2000
|
depends on MACH_AAED2000
|
||||||
|
select INPUT_POLLDEV
|
||||||
default y
|
default y
|
||||||
help
|
help
|
||||||
Say Y here to enable the keyboard on the Agilent AAED-2000
|
Say Y here to enable the keyboard on the Agilent AAED-2000
|
||||||
|
@@ -14,12 +14,11 @@
|
|||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/input.h>
|
#include <linux/input-polldev.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/jiffies.h>
|
#include <linux/jiffies.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/workqueue.h>
|
|
||||||
|
|
||||||
#include <asm/arch/hardware.h>
|
#include <asm/arch/hardware.h>
|
||||||
#include <asm/arch/aaed2000.h>
|
#include <asm/arch/aaed2000.h>
|
||||||
@@ -46,8 +45,7 @@ static unsigned char aaedkbd_keycode[NR_SCANCODES] = {
|
|||||||
|
|
||||||
struct aaedkbd {
|
struct aaedkbd {
|
||||||
unsigned char keycode[ARRAY_SIZE(aaedkbd_keycode)];
|
unsigned char keycode[ARRAY_SIZE(aaedkbd_keycode)];
|
||||||
struct input_dev *input;
|
struct input_polled_dev *poll_dev;
|
||||||
struct work_struct workq;
|
|
||||||
int kbdscan_state[KB_COLS];
|
int kbdscan_state[KB_COLS];
|
||||||
int kbdscan_count[KB_COLS];
|
int kbdscan_count[KB_COLS];
|
||||||
};
|
};
|
||||||
@@ -64,14 +62,15 @@ static void aaedkbd_report_col(struct aaedkbd *aaedkbd,
|
|||||||
scancode = SCANCODE(row, col);
|
scancode = SCANCODE(row, col);
|
||||||
pressed = rowd & KB_ROWMASK(row);
|
pressed = rowd & KB_ROWMASK(row);
|
||||||
|
|
||||||
input_report_key(aaedkbd->input, aaedkbd->keycode[scancode], pressed);
|
input_report_key(aaedkbd->poll_dev->input,
|
||||||
|
aaedkbd->keycode[scancode], pressed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Scan the hardware keyboard and push any changes up through the input layer */
|
/* Scan the hardware keyboard and push any changes up through the input layer */
|
||||||
static void aaedkbd_work(void *data)
|
static void aaedkbd_poll(struct input_polled_dev *dev)
|
||||||
{
|
{
|
||||||
struct aaedkbd *aaedkbd = data;
|
struct aaedkbd *aaedkbd = dev->private;
|
||||||
unsigned int col, rowd;
|
unsigned int col, rowd;
|
||||||
|
|
||||||
col = 0;
|
col = 0;
|
||||||
@@ -90,51 +89,34 @@ static void aaedkbd_work(void *data)
|
|||||||
} while (col < KB_COLS);
|
} while (col < KB_COLS);
|
||||||
|
|
||||||
AAEC_GPIO_KSCAN = 0x07;
|
AAEC_GPIO_KSCAN = 0x07;
|
||||||
input_sync(aaedkbd->input);
|
input_sync(dev->input);
|
||||||
|
|
||||||
schedule_delayed_work(&aaedkbd->workq, msecs_to_jiffies(SCAN_INTERVAL));
|
|
||||||
}
|
|
||||||
|
|
||||||
static int aaedkbd_open(struct input_dev *indev)
|
|
||||||
{
|
|
||||||
struct aaedkbd *aaedkbd = input_get_drvdata(indev);
|
|
||||||
|
|
||||||
schedule_delayed_work(&aaedkbd->workq, msecs_to_jiffies(SCAN_INTERVAL));
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void aaedkbd_close(struct input_dev *indev)
|
|
||||||
{
|
|
||||||
struct aaedkbd *aaedkbd = input_get_drvdata(indev);
|
|
||||||
|
|
||||||
cancel_delayed_work(&aaedkbd->workq);
|
|
||||||
flush_scheduled_work();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __devinit aaedkbd_probe(struct platform_device *pdev)
|
static int __devinit aaedkbd_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct aaedkbd *aaedkbd;
|
struct aaedkbd *aaedkbd;
|
||||||
|
struct input_polled_dev *poll_dev;
|
||||||
struct input_dev *input_dev;
|
struct input_dev *input_dev;
|
||||||
int i;
|
int i;
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
aaedkbd = kzalloc(sizeof(struct aaedkbd), GFP_KERNEL);
|
aaedkbd = kzalloc(sizeof(struct aaedkbd), GFP_KERNEL);
|
||||||
input_dev = input_allocate_device();
|
poll_dev = input_allocate_polled_device();
|
||||||
if (!aaedkbd || !input_dev) {
|
if (!aaedkbd || !poll_dev) {
|
||||||
error = -ENOMEM;
|
error = -ENOMEM;
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
platform_set_drvdata(pdev, aaedkbd);
|
platform_set_drvdata(pdev, aaedkbd);
|
||||||
|
|
||||||
aaedkbd->input = input_dev;
|
aaedkbd->poll_dev = poll_dev;
|
||||||
|
|
||||||
/* Init keyboard rescan workqueue */
|
|
||||||
INIT_WORK(&aaedkbd->workq, aaedkbd_work, aaedkbd);
|
|
||||||
|
|
||||||
memcpy(aaedkbd->keycode, aaedkbd_keycode, sizeof(aaedkbd->keycode));
|
memcpy(aaedkbd->keycode, aaedkbd_keycode, sizeof(aaedkbd->keycode));
|
||||||
|
|
||||||
|
poll_dev->private = aaedkbd;
|
||||||
|
poll_dev->poll = aaedkbd_poll;
|
||||||
|
poll_dev->poll_interval = SCAN_INTERVAL;
|
||||||
|
|
||||||
|
input_dev = poll_dev->input;
|
||||||
input_dev->name = "AAED-2000 Keyboard";
|
input_dev->name = "AAED-2000 Keyboard";
|
||||||
input_dev->phys = "aaedkbd/input0";
|
input_dev->phys = "aaedkbd/input0";
|
||||||
input_dev->id.bustype = BUS_HOST;
|
input_dev->id.bustype = BUS_HOST;
|
||||||
@@ -143,8 +125,6 @@ static int __devinit aaedkbd_probe(struct platform_device *pdev)
|
|||||||
input_dev->id.version = 0x0100;
|
input_dev->id.version = 0x0100;
|
||||||
input_dev->dev.parent = &pdev->dev;
|
input_dev->dev.parent = &pdev->dev;
|
||||||
|
|
||||||
input_set_drvdata(input_dev, aaedkbd);
|
|
||||||
|
|
||||||
input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REP);
|
input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REP);
|
||||||
input_dev->keycode = aaedkbd->keycode;
|
input_dev->keycode = aaedkbd->keycode;
|
||||||
input_dev->keycodesize = sizeof(unsigned char);
|
input_dev->keycodesize = sizeof(unsigned char);
|
||||||
@@ -154,17 +134,14 @@ static int __devinit aaedkbd_probe(struct platform_device *pdev)
|
|||||||
set_bit(aaedkbd->keycode[i], input_dev->keybit);
|
set_bit(aaedkbd->keycode[i], input_dev->keybit);
|
||||||
clear_bit(0, input_dev->keybit);
|
clear_bit(0, input_dev->keybit);
|
||||||
|
|
||||||
input_dev->open = aaedkbd_open;
|
error = input_register_polled_device(aaedkbd->poll_dev);
|
||||||
input_dev->close = aaedkbd_close;
|
|
||||||
|
|
||||||
error = input_register_device(aaedkbd->input);
|
|
||||||
if (error)
|
if (error)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fail: kfree(aaedkbd);
|
fail: kfree(aaedkbd);
|
||||||
input_free_device(input_dev);
|
input_free_polled_device(poll_dev);
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,7 +149,8 @@ static int __devexit aaedkbd_remove(struct platform_device *pdev)
|
|||||||
{
|
{
|
||||||
struct aaedkbd *aaedkbd = platform_get_drvdata(pdev);
|
struct aaedkbd *aaedkbd = platform_get_drvdata(pdev);
|
||||||
|
|
||||||
input_unregister_device(aaedkbd->input);
|
input_unregister_polled_device(aaedkbd->poll_dev);
|
||||||
|
input_free_polled_device(aaedkbd->poll_dev);
|
||||||
kfree(aaedkbd);
|
kfree(aaedkbd);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -40,6 +40,18 @@ config INPUT_M68K_BEEP
|
|||||||
tristate "M68k Beeper support"
|
tristate "M68k Beeper support"
|
||||||
depends on M68K
|
depends on M68K
|
||||||
|
|
||||||
|
config INPUT_IXP4XX_BEEPER
|
||||||
|
tristate "IXP4XX Beeper support"
|
||||||
|
depends on ARCH_IXP4XX
|
||||||
|
help
|
||||||
|
If you say yes here, you can connect a beeper to the
|
||||||
|
ixp4xx gpio pins. This is used by the LinkSys NSLU2.
|
||||||
|
|
||||||
|
If unsure, say Y.
|
||||||
|
|
||||||
|
To compile this driver as a module, choose M here: the
|
||||||
|
module will be called ixp4xx-beeper.
|
||||||
|
|
||||||
config INPUT_COBALT_BTNS
|
config INPUT_COBALT_BTNS
|
||||||
tristate "Cobalt button interface"
|
tristate "Cobalt button interface"
|
||||||
depends on MIPS_COBALT
|
depends on MIPS_COBALT
|
||||||
@@ -70,17 +82,79 @@ config INPUT_ATLAS_BTNS
|
|||||||
To compile this driver as a module, choose M here: the module will
|
To compile this driver as a module, choose M here: the module will
|
||||||
be called atlas_btns.
|
be called atlas_btns.
|
||||||
|
|
||||||
config INPUT_IXP4XX_BEEPER
|
config INPUT_ATI_REMOTE
|
||||||
tristate "IXP4XX Beeper support"
|
tristate "ATI / X10 USB RF remote control"
|
||||||
depends on ARCH_IXP4XX
|
select USB
|
||||||
help
|
help
|
||||||
If you say yes here, you can connect a beeper to the
|
Say Y here if you want to use an ATI or X10 "Lola" USB remote control.
|
||||||
ixp4xx gpio pins. This is used by the LinkSys NSLU2.
|
These are RF remotes with USB receivers.
|
||||||
|
The ATI remote comes with many of ATI's All-In-Wonder video cards.
|
||||||
|
The X10 "Lola" remote is available at:
|
||||||
|
<http://www.x10.com/products/lola_sg1.htm>
|
||||||
|
This driver provides mouse pointer, left and right mouse buttons,
|
||||||
|
and maps all the other remote buttons to keypress events.
|
||||||
|
|
||||||
If unsure, say Y.
|
To compile this driver as a module, choose M here: the module will be
|
||||||
|
called ati_remote.
|
||||||
|
|
||||||
|
config INPUT_ATI_REMOTE2
|
||||||
|
tristate "ATI / Philips USB RF remote control"
|
||||||
|
select USB
|
||||||
|
help
|
||||||
|
Say Y here if you want to use an ATI or Philips USB RF remote control.
|
||||||
|
These are RF remotes with USB receivers.
|
||||||
|
ATI Remote Wonder II comes with some ATI's All-In-Wonder video cards
|
||||||
|
and is also available as a separate product.
|
||||||
|
This driver provides mouse pointer, left and right mouse buttons,
|
||||||
|
and maps all the other remote buttons to keypress events.
|
||||||
|
|
||||||
|
To compile this driver as a module, choose M here: the module will be
|
||||||
|
called ati_remote2.
|
||||||
|
|
||||||
|
config INPUT_KEYSPAN_REMOTE
|
||||||
|
tristate "Keyspan DMR USB remote control (EXPERIMENTAL)"
|
||||||
|
depends on EXPERIMENTAL
|
||||||
|
select USB
|
||||||
|
help
|
||||||
|
Say Y here if you want to use a Keyspan DMR USB remote control.
|
||||||
|
Currently only the UIA-11 type of receiver has been tested. The tag
|
||||||
|
on the receiver that connects to the USB port should have a P/N that
|
||||||
|
will tell you what type of DMR you have. The UIA-10 type is not
|
||||||
|
supported at this time. This driver maps all buttons to keypress
|
||||||
|
events.
|
||||||
|
|
||||||
|
To compile this driver as a module, choose M here: the module will
|
||||||
|
be called keyspan_remote.
|
||||||
|
|
||||||
|
config INPUT_POWERMATE
|
||||||
|
tristate "Griffin PowerMate and Contour Jog support"
|
||||||
|
select USB
|
||||||
|
help
|
||||||
|
Say Y here if you want to use Griffin PowerMate or Contour Jog devices.
|
||||||
|
These are aluminum dials which can measure clockwise and anticlockwise
|
||||||
|
rotation. The dial also acts as a pushbutton. The base contains an LED
|
||||||
|
which can be instructed to pulse or to switch to a particular intensity.
|
||||||
|
|
||||||
|
You can download userspace tools from
|
||||||
|
<http://sowerbutts.com/powermate/>.
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the
|
To compile this driver as a module, choose M here: the
|
||||||
module will be called ixp4xx-beeper.
|
module will be called powermate.
|
||||||
|
|
||||||
|
config INPUT_YEALINK
|
||||||
|
tristate "Yealink usb-p1k voip phone"
|
||||||
|
depends EXPERIMENTAL
|
||||||
|
select USB
|
||||||
|
help
|
||||||
|
Say Y here if you want to enable keyboard and LCD functions of the
|
||||||
|
Yealink usb-p1k usb phones. The audio part is enabled by the generic
|
||||||
|
usb sound driver, so you might want to enable that as well.
|
||||||
|
|
||||||
|
For information about how to use these additional functions, see
|
||||||
|
<file:Documentation/input/yealink.txt>.
|
||||||
|
|
||||||
|
To compile this driver as a module, choose M here: the module will be
|
||||||
|
called yealink.
|
||||||
|
|
||||||
config INPUT_UINPUT
|
config INPUT_UINPUT
|
||||||
tristate "User level driver support"
|
tristate "User level driver support"
|
||||||
|
@@ -8,9 +8,14 @@ obj-$(CONFIG_INPUT_POLLDEV) += input-polldev.o
|
|||||||
obj-$(CONFIG_INPUT_SPARCSPKR) += sparcspkr.o
|
obj-$(CONFIG_INPUT_SPARCSPKR) += sparcspkr.o
|
||||||
obj-$(CONFIG_INPUT_PCSPKR) += pcspkr.o
|
obj-$(CONFIG_INPUT_PCSPKR) += pcspkr.o
|
||||||
obj-$(CONFIG_INPUT_M68K_BEEP) += m68kspkr.o
|
obj-$(CONFIG_INPUT_M68K_BEEP) += m68kspkr.o
|
||||||
obj-$(CONFIG_INPUT_UINPUT) += uinput.o
|
obj-$(CONFIG_INPUT_IXP4XX_BEEPER) += ixp4xx-beeper.o
|
||||||
obj-$(CONFIG_INPUT_COBALT_BTNS) += cobalt_btns.o
|
obj-$(CONFIG_INPUT_COBALT_BTNS) += cobalt_btns.o
|
||||||
obj-$(CONFIG_INPUT_WISTRON_BTNS) += wistron_btns.o
|
obj-$(CONFIG_INPUT_WISTRON_BTNS) += wistron_btns.o
|
||||||
obj-$(CONFIG_INPUT_ATLAS_BTNS) += atlas_btns.o
|
obj-$(CONFIG_INPUT_ATLAS_BTNS) += atlas_btns.o
|
||||||
|
obj-$(CONFIG_INPUT_ATI_REMOTE) += ati_remote.o
|
||||||
|
obj-$(CONFIG_INPUT_ATI_REMOTE2) += ati_remote2.o
|
||||||
|
obj-$(CONFIG_INPUT_KEYSPAN_REMOTE) += keyspan_remote.o
|
||||||
|
obj-$(CONFIG_INPUT_POWERMATE) += powermate.o
|
||||||
|
obj-$(CONFIG_INPUT_YEALINK) += yealink.o
|
||||||
obj-$(CONFIG_HP_SDC_RTC) += hp_sdc_rtc.o
|
obj-$(CONFIG_HP_SDC_RTC) += hp_sdc_rtc.o
|
||||||
obj-$(CONFIG_INPUT_IXP4XX_BEEPER) += ixp4xx-beeper.o
|
obj-$(CONFIG_INPUT_UINPUT) += uinput.o
|
||||||
|
@@ -405,9 +405,7 @@ static void ati_remote2_urb_cleanup(struct ati_remote2 *ar2)
|
|||||||
|
|
||||||
for (i = 0; i < 2; i++) {
|
for (i = 0; i < 2; i++) {
|
||||||
usb_free_urb(ar2->urb[i]);
|
usb_free_urb(ar2->urb[i]);
|
||||||
|
usb_buffer_free(ar2->udev, 4, ar2->buf[i], ar2->buf_dma[i]);
|
||||||
if (ar2->buf[i])
|
|
||||||
usb_buffer_free(ar2->udev, 4, ar2->buf[i], ar2->buf_dma[i]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@@ -291,12 +291,10 @@ static int powermate_alloc_buffers(struct usb_device *udev, struct powermate_dev
|
|||||||
|
|
||||||
static void powermate_free_buffers(struct usb_device *udev, struct powermate_device *pm)
|
static void powermate_free_buffers(struct usb_device *udev, struct powermate_device *pm)
|
||||||
{
|
{
|
||||||
if (pm->data)
|
usb_buffer_free(udev, POWERMATE_PAYLOAD_SIZE_MAX,
|
||||||
usb_buffer_free(udev, POWERMATE_PAYLOAD_SIZE_MAX,
|
pm->data, pm->data_dma);
|
||||||
pm->data, pm->data_dma);
|
usb_buffer_free(udev, sizeof(*(pm->configcr)),
|
||||||
if (pm->configcr)
|
pm->configcr, pm->configcr_dma);
|
||||||
usb_buffer_free(udev, sizeof(*(pm->configcr)),
|
|
||||||
pm->configcr, pm->configcr_dma);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Called whenever a USB device matching one in our supported devices table is connected */
|
/* Called whenever a USB device matching one in our supported devices table is connected */
|
@@ -33,7 +33,6 @@
|
|||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/input.h>
|
|
||||||
#include <linux/smp_lock.h>
|
#include <linux/smp_lock.h>
|
||||||
#include <linux/fs.h>
|
#include <linux/fs.h>
|
||||||
#include <linux/miscdevice.h>
|
#include <linux/miscdevice.h>
|
||||||
|
@@ -29,7 +29,7 @@
|
|||||||
* This driver is based on:
|
* This driver is based on:
|
||||||
* - the usbb2k-api http://savannah.nongnu.org/projects/usbb2k-api/
|
* - the usbb2k-api http://savannah.nongnu.org/projects/usbb2k-api/
|
||||||
* - information from http://memeteau.free.fr/usbb2k
|
* - information from http://memeteau.free.fr/usbb2k
|
||||||
* - the xpad-driver drivers/usb/input/xpad.c
|
* - the xpad-driver drivers/input/joystick/xpad.c
|
||||||
*
|
*
|
||||||
* Thanks to:
|
* Thanks to:
|
||||||
* - Olivier Vandorpe, for providing the usbb2k-api.
|
* - Olivier Vandorpe, for providing the usbb2k-api.
|
||||||
@@ -818,18 +818,17 @@ static int usb_cleanup(struct yealink_dev *yld, int err)
|
|||||||
else
|
else
|
||||||
input_unregister_device(yld->idev);
|
input_unregister_device(yld->idev);
|
||||||
}
|
}
|
||||||
if (yld->ctl_req)
|
|
||||||
usb_buffer_free(yld->udev, sizeof(*(yld->ctl_req)),
|
|
||||||
yld->ctl_req, yld->ctl_req_dma);
|
|
||||||
if (yld->ctl_data)
|
|
||||||
usb_buffer_free(yld->udev, USB_PKT_LEN,
|
|
||||||
yld->ctl_data, yld->ctl_dma);
|
|
||||||
if (yld->irq_data)
|
|
||||||
usb_buffer_free(yld->udev, USB_PKT_LEN,
|
|
||||||
yld->irq_data, yld->irq_dma);
|
|
||||||
|
|
||||||
usb_free_urb(yld->urb_irq); /* parameter validation in core/urb */
|
usb_free_urb(yld->urb_irq);
|
||||||
usb_free_urb(yld->urb_ctl); /* parameter validation in core/urb */
|
usb_free_urb(yld->urb_ctl);
|
||||||
|
|
||||||
|
usb_buffer_free(yld->udev, sizeof(*(yld->ctl_req)),
|
||||||
|
yld->ctl_req, yld->ctl_req_dma);
|
||||||
|
usb_buffer_free(yld->udev, USB_PKT_LEN,
|
||||||
|
yld->ctl_data, yld->ctl_dma);
|
||||||
|
usb_buffer_free(yld->udev, USB_PKT_LEN,
|
||||||
|
yld->irq_data, yld->irq_dma);
|
||||||
|
|
||||||
kfree(yld);
|
kfree(yld);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
@@ -2,7 +2,7 @@
|
|||||||
# Mouse driver configuration
|
# Mouse driver configuration
|
||||||
#
|
#
|
||||||
menuconfig INPUT_MOUSE
|
menuconfig INPUT_MOUSE
|
||||||
bool "Mouse"
|
bool "Mice"
|
||||||
default y
|
default y
|
||||||
help
|
help
|
||||||
Say Y here, and a list of supported mice will be displayed.
|
Say Y here, and a list of supported mice will be displayed.
|
||||||
@@ -19,7 +19,7 @@ config MOUSE_PS2
|
|||||||
select SERIO_LIBPS2
|
select SERIO_LIBPS2
|
||||||
select SERIO_I8042 if X86_PC
|
select SERIO_I8042 if X86_PC
|
||||||
select SERIO_GSCPS2 if GSC
|
select SERIO_GSCPS2 if GSC
|
||||||
---help---
|
help
|
||||||
Say Y here if you have a PS/2 mouse connected to your system. This
|
Say Y here if you have a PS/2 mouse connected to your system. This
|
||||||
includes the standard 2 or 3-button PS/2 mouse, as well as PS/2
|
includes the standard 2 or 3-button PS/2 mouse, as well as PS/2
|
||||||
mice with wheels and extra buttons, Microsoft, Logitech or Genius
|
mice with wheels and extra buttons, Microsoft, Logitech or Genius
|
||||||
@@ -41,7 +41,7 @@ config MOUSE_PS2_ALPS
|
|||||||
bool "ALPS PS/2 mouse protocol extension" if EMBEDDED
|
bool "ALPS PS/2 mouse protocol extension" if EMBEDDED
|
||||||
default y
|
default y
|
||||||
depends on MOUSE_PS2
|
depends on MOUSE_PS2
|
||||||
---help---
|
help
|
||||||
Say Y here if you have an ALPS PS/2 touchpad connected to
|
Say Y here if you have an ALPS PS/2 touchpad connected to
|
||||||
your system.
|
your system.
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ config MOUSE_PS2_LOGIPS2PP
|
|||||||
bool "Logictech PS/2++ mouse protocol extension" if EMBEDDED
|
bool "Logictech PS/2++ mouse protocol extension" if EMBEDDED
|
||||||
default y
|
default y
|
||||||
depends on MOUSE_PS2
|
depends on MOUSE_PS2
|
||||||
---help---
|
help
|
||||||
Say Y here if you have a Logictech PS/2++ mouse connected to
|
Say Y here if you have a Logictech PS/2++ mouse connected to
|
||||||
your system.
|
your system.
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ config MOUSE_PS2_SYNAPTICS
|
|||||||
bool "Synaptics PS/2 mouse protocol extension" if EMBEDDED
|
bool "Synaptics PS/2 mouse protocol extension" if EMBEDDED
|
||||||
default y
|
default y
|
||||||
depends on MOUSE_PS2
|
depends on MOUSE_PS2
|
||||||
---help---
|
help
|
||||||
Say Y here if you have a Synaptics PS/2 TouchPad connected to
|
Say Y here if you have a Synaptics PS/2 TouchPad connected to
|
||||||
your system.
|
your system.
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ config MOUSE_PS2_LIFEBOOK
|
|||||||
bool "Fujitsu Lifebook PS/2 mouse protocol extension" if EMBEDDED
|
bool "Fujitsu Lifebook PS/2 mouse protocol extension" if EMBEDDED
|
||||||
default y
|
default y
|
||||||
depends on MOUSE_PS2
|
depends on MOUSE_PS2
|
||||||
---help---
|
help
|
||||||
Say Y here if you have a Fujitsu B-series Lifebook PS/2
|
Say Y here if you have a Fujitsu B-series Lifebook PS/2
|
||||||
TouchScreen connected to your system.
|
TouchScreen connected to your system.
|
||||||
|
|
||||||
@@ -81,7 +81,7 @@ config MOUSE_PS2_TRACKPOINT
|
|||||||
bool "IBM Trackpoint PS/2 mouse protocol extension" if EMBEDDED
|
bool "IBM Trackpoint PS/2 mouse protocol extension" if EMBEDDED
|
||||||
default y
|
default y
|
||||||
depends on MOUSE_PS2
|
depends on MOUSE_PS2
|
||||||
---help---
|
help
|
||||||
Say Y here if you have an IBM Trackpoint PS/2 mouse connected
|
Say Y here if you have an IBM Trackpoint PS/2 mouse connected
|
||||||
to your system.
|
to your system.
|
||||||
|
|
||||||
@@ -90,7 +90,7 @@ config MOUSE_PS2_TRACKPOINT
|
|||||||
config MOUSE_PS2_TOUCHKIT
|
config MOUSE_PS2_TOUCHKIT
|
||||||
bool "eGalax TouchKit PS/2 protocol extension"
|
bool "eGalax TouchKit PS/2 protocol extension"
|
||||||
depends on MOUSE_PS2
|
depends on MOUSE_PS2
|
||||||
---help---
|
help
|
||||||
Say Y here if you have an eGalax TouchKit PS/2 touchscreen
|
Say Y here if you have an eGalax TouchKit PS/2 touchscreen
|
||||||
connected to your system.
|
connected to your system.
|
||||||
|
|
||||||
@@ -99,7 +99,7 @@ config MOUSE_PS2_TOUCHKIT
|
|||||||
config MOUSE_SERIAL
|
config MOUSE_SERIAL
|
||||||
tristate "Serial mouse"
|
tristate "Serial mouse"
|
||||||
select SERIO
|
select SERIO
|
||||||
---help---
|
help
|
||||||
Say Y here if you have a serial (RS-232, COM port) mouse connected
|
Say Y here if you have a serial (RS-232, COM port) mouse connected
|
||||||
to your system. This includes Sun, MouseSystems, Microsoft,
|
to your system. This includes Sun, MouseSystems, Microsoft,
|
||||||
Logitech and all other compatible serial mice.
|
Logitech and all other compatible serial mice.
|
||||||
@@ -109,6 +109,26 @@ config MOUSE_SERIAL
|
|||||||
To compile this driver as a module, choose M here: the
|
To compile this driver as a module, choose M here: the
|
||||||
module will be called sermouse.
|
module will be called sermouse.
|
||||||
|
|
||||||
|
config MOUSE_APPLETOUCH
|
||||||
|
tristate "Apple USB Touchpad support"
|
||||||
|
select USB
|
||||||
|
help
|
||||||
|
Say Y here if you want to use an Apple USB Touchpad.
|
||||||
|
|
||||||
|
These are the touchpads that can be found on post-February 2005
|
||||||
|
Apple Powerbooks (prior models have a Synaptics touchpad connected
|
||||||
|
to the ADB bus).
|
||||||
|
|
||||||
|
This driver provides a basic mouse driver but can be interfaced
|
||||||
|
with the synaptics X11 driver to provide acceleration and
|
||||||
|
scrolling in X11.
|
||||||
|
|
||||||
|
For further information, see
|
||||||
|
<file:Documentation/input/appletouch.txt>.
|
||||||
|
|
||||||
|
To compile this driver as a module, choose M here: the
|
||||||
|
module will be called appletouch.
|
||||||
|
|
||||||
config MOUSE_INPORT
|
config MOUSE_INPORT
|
||||||
tristate "InPort/MS/ATIXL busmouse"
|
tristate "InPort/MS/ATIXL busmouse"
|
||||||
depends on ISA
|
depends on ISA
|
||||||
|
@@ -5,6 +5,7 @@
|
|||||||
# Each configuration option enables a list of files.
|
# Each configuration option enables a list of files.
|
||||||
|
|
||||||
obj-$(CONFIG_MOUSE_AMIGA) += amimouse.o
|
obj-$(CONFIG_MOUSE_AMIGA) += amimouse.o
|
||||||
|
obj-$(CONFIG_MOUSE_APPLETOUCH) += appletouch.o
|
||||||
obj-$(CONFIG_MOUSE_ATARI) += atarimouse.o
|
obj-$(CONFIG_MOUSE_ATARI) += atarimouse.o
|
||||||
obj-$(CONFIG_MOUSE_RISCPC) += rpcmouse.o
|
obj-$(CONFIG_MOUSE_RISCPC) += rpcmouse.o
|
||||||
obj-$(CONFIG_MOUSE_INPORT) += inport.o
|
obj-$(CONFIG_MOUSE_INPORT) += inport.o
|
||||||
|
@@ -185,7 +185,7 @@ static int synaptics_query_hardware(struct psmouse *psmouse)
|
|||||||
int retries = 0;
|
int retries = 0;
|
||||||
|
|
||||||
while ((retries++ < 3) && psmouse_reset(psmouse))
|
while ((retries++ < 3) && psmouse_reset(psmouse))
|
||||||
printk(KERN_ERR "synaptics reset failed\n");
|
/* empty */;
|
||||||
|
|
||||||
if (synaptics_identify(psmouse))
|
if (synaptics_identify(psmouse))
|
||||||
return -1;
|
return -1;
|
||||||
|
@@ -526,6 +526,33 @@ static irqreturn_t __devinit i8042_aux_test_irq(int irq, void *dev_id)
|
|||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* i8042_toggle_aux - enables or disables AUX port on i8042 via command and
|
||||||
|
* verifies success by readinng CTR. Used when testing for presence of AUX
|
||||||
|
* port.
|
||||||
|
*/
|
||||||
|
static int __devinit i8042_toggle_aux(int on)
|
||||||
|
{
|
||||||
|
unsigned char param;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (i8042_command(¶m,
|
||||||
|
on ? I8042_CMD_AUX_ENABLE : I8042_CMD_AUX_DISABLE))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
/* some chips need some time to set the I8042_CTR_AUXDIS bit */
|
||||||
|
for (i = 0; i < 100; i++) {
|
||||||
|
udelay(50);
|
||||||
|
|
||||||
|
if (i8042_command(¶m, I8042_CMD_CTL_RCTR))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (!(param & I8042_CTR_AUXDIS) == on)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* i8042_check_aux() applies as much paranoia as it can at detecting
|
* i8042_check_aux() applies as much paranoia as it can at detecting
|
||||||
@@ -580,16 +607,12 @@ static int __devinit i8042_check_aux(void)
|
|||||||
* Bit assignment test - filters out PS/2 i8042's in AT mode
|
* Bit assignment test - filters out PS/2 i8042's in AT mode
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (i8042_command(¶m, I8042_CMD_AUX_DISABLE))
|
if (i8042_toggle_aux(0)) {
|
||||||
return -1;
|
|
||||||
if (i8042_command(¶m, I8042_CMD_CTL_RCTR) || (~param & I8042_CTR_AUXDIS)) {
|
|
||||||
printk(KERN_WARNING "Failed to disable AUX port, but continuing anyway... Is this a SiS?\n");
|
printk(KERN_WARNING "Failed to disable AUX port, but continuing anyway... Is this a SiS?\n");
|
||||||
printk(KERN_WARNING "If AUX port is really absent please use the 'i8042.noaux' option.\n");
|
printk(KERN_WARNING "If AUX port is really absent please use the 'i8042.noaux' option.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i8042_command(¶m, I8042_CMD_AUX_ENABLE))
|
if (i8042_toggle_aux(1))
|
||||||
return -1;
|
|
||||||
if (i8042_command(¶m, I8042_CMD_CTL_RCTR) || (param & I8042_CTR_AUXDIS))
|
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
74
drivers/input/tablet/Kconfig
Normal file
74
drivers/input/tablet/Kconfig
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
#
|
||||||
|
# Tablet driver configuration
|
||||||
|
#
|
||||||
|
menuconfig INPUT_TABLET
|
||||||
|
bool "Tablets"
|
||||||
|
help
|
||||||
|
Say Y here, and a list of supported tablets will be displayed.
|
||||||
|
This option doesn't affect the kernel.
|
||||||
|
|
||||||
|
If unsure, say Y.
|
||||||
|
|
||||||
|
if INPUT_TABLET
|
||||||
|
|
||||||
|
config TABLET_USB_ACECAD
|
||||||
|
tristate "Acecad Flair tablet support (USB)"
|
||||||
|
select USB
|
||||||
|
help
|
||||||
|
Say Y here if you want to use the USB version of the Acecad Flair
|
||||||
|
tablet. Make sure to say Y to "Mouse support"
|
||||||
|
(CONFIG_INPUT_MOUSEDEV) and/or "Event interface support"
|
||||||
|
(CONFIG_INPUT_EVDEV) as well.
|
||||||
|
|
||||||
|
To compile this driver as a module, choose M here: the
|
||||||
|
module will be called acecad.
|
||||||
|
|
||||||
|
config TABLET_USB_AIPTEK
|
||||||
|
tristate "Aiptek 6000U/8000U tablet support (USB)"
|
||||||
|
select USB
|
||||||
|
help
|
||||||
|
Say Y here if you want to use the USB version of the Aiptek 6000U
|
||||||
|
or Aiptek 8000U tablet. Make sure to say Y to "Mouse support"
|
||||||
|
(CONFIG_INPUT_MOUSEDEV) and/or "Event interface support"
|
||||||
|
(CONFIG_INPUT_EVDEV) as well.
|
||||||
|
|
||||||
|
To compile this driver as a module, choose M here: the
|
||||||
|
module will be called aiptek.
|
||||||
|
|
||||||
|
config TABLET_USB_GTCO
|
||||||
|
tristate "GTCO CalComp/InterWrite USB Support"
|
||||||
|
depends on USB && INPUT
|
||||||
|
help
|
||||||
|
Say Y here if you want to use the USB version of the GTCO
|
||||||
|
CalComp/InterWrite Tablet. Make sure to say Y to "Mouse support"
|
||||||
|
(CONFIG_INPUT_MOUSEDEV) and/or "Event interface support"
|
||||||
|
(CONFIG_INPUT_EVDEV) as well.
|
||||||
|
|
||||||
|
To compile this driver as a module, choose M here: the
|
||||||
|
module will be called gtco.
|
||||||
|
|
||||||
|
config TABLET_USB_KBTAB
|
||||||
|
tristate "KB Gear JamStudio tablet support (USB)"
|
||||||
|
select USB
|
||||||
|
help
|
||||||
|
Say Y here if you want to use the USB version of the KB Gear
|
||||||
|
JamStudio tablet. Make sure to say Y to "Mouse support"
|
||||||
|
(CONFIG_INPUT_MOUSEDEV) and/or "Event interface support"
|
||||||
|
(CONFIG_INPUT_EVDEV) as well.
|
||||||
|
|
||||||
|
To compile this driver as a module, choose M here: the
|
||||||
|
module will be called kbtab.
|
||||||
|
|
||||||
|
config TABLET_USB_WACOM
|
||||||
|
tristate "Wacom Intuos/Graphire tablet support (USB)"
|
||||||
|
select USB
|
||||||
|
help
|
||||||
|
Say Y here if you want to use the USB version of the Wacom Intuos
|
||||||
|
or Graphire tablet. Make sure to say Y to "Mouse support"
|
||||||
|
(CONFIG_INPUT_MOUSEDEV) and/or "Event interface support"
|
||||||
|
(CONFIG_INPUT_EVDEV) as well.
|
||||||
|
|
||||||
|
To compile this driver as a module, choose M here: the
|
||||||
|
module will be called wacom.
|
||||||
|
|
||||||
|
endif
|
12
drivers/input/tablet/Makefile
Normal file
12
drivers/input/tablet/Makefile
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#
|
||||||
|
# Makefile for the tablet drivers
|
||||||
|
#
|
||||||
|
|
||||||
|
# Multipart objects.
|
||||||
|
wacom-objs := wacom_wac.o wacom_sys.o
|
||||||
|
|
||||||
|
obj-$(CONFIG_TABLET_USB_ACECAD) += acecad.o
|
||||||
|
obj-$(CONFIG_TABLET_USB_AIPTEK) += aiptek.o
|
||||||
|
obj-$(CONFIG_TABLET_USB_GTCO) += gtco.o
|
||||||
|
obj-$(CONFIG_TABLET_USB_KBTAB) += kbtab.o
|
||||||
|
obj-$(CONFIG_TABLET_USB_WACOM) += wacom.o
|
@@ -54,7 +54,7 @@ struct usb_acecad {
|
|||||||
struct input_dev *input;
|
struct input_dev *input;
|
||||||
struct urb *irq;
|
struct urb *irq;
|
||||||
|
|
||||||
signed char *data;
|
unsigned char *data;
|
||||||
dma_addr_t data_dma;
|
dma_addr_t data_dma;
|
||||||
};
|
};
|
||||||
|
|
@@ -29,7 +29,7 @@ module_param(kb_pressure_click, int, 0);
|
|||||||
MODULE_PARM_DESC(kb_pressure_click, "pressure threshold for clicks");
|
MODULE_PARM_DESC(kb_pressure_click, "pressure threshold for clicks");
|
||||||
|
|
||||||
struct kbtab {
|
struct kbtab {
|
||||||
signed char *data;
|
unsigned char *data;
|
||||||
dma_addr_t data_dma;
|
dma_addr_t data_dma;
|
||||||
struct input_dev *dev;
|
struct input_dev *dev;
|
||||||
struct usb_device *usbdev;
|
struct usb_device *usbdev;
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* drivers/usb/input/wacom.h
|
* drivers/input/tablet/wacom.h
|
||||||
*
|
*
|
||||||
* USB Wacom Graphire and Wacom Intuos tablet support
|
* USB Wacom Graphire and Wacom Intuos tablet support
|
||||||
*
|
*
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* drivers/usb/input/wacom_sys.c
|
* drivers/input/tablet/wacom_sys.c
|
||||||
*
|
*
|
||||||
* USB Wacom Graphire and Wacom Intuos tablet support - system specific code
|
* USB Wacom Graphire and Wacom Intuos tablet support - system specific code
|
||||||
*/
|
*/
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* drivers/usb/input/wacom_wac.c
|
* drivers/input/tablet/wacom_wac.c
|
||||||
*
|
*
|
||||||
* USB Wacom Graphire and Wacom Intuos tablet support - Wacom specific code
|
* USB Wacom Graphire and Wacom Intuos tablet support - Wacom specific code
|
||||||
*
|
*
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* drivers/usb/input/wacom_wac.h
|
* drivers/input/tablet/wacom_wac.h
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -39,7 +39,7 @@ struct wacom_features {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct wacom_wac {
|
struct wacom_wac {
|
||||||
signed char *data;
|
unsigned char *data;
|
||||||
int tool[2];
|
int tool[2];
|
||||||
int id[2];
|
int id[2];
|
||||||
__u32 serial[2];
|
__u32 serial[2];
|
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Mouse driver configuration
|
# Touchscreen driver configuration
|
||||||
#
|
#
|
||||||
menuconfig INPUT_TOUCHSCREEN
|
menuconfig INPUT_TOUCHSCREEN
|
||||||
bool "Touchscreens"
|
bool "Touchscreens"
|
||||||
@@ -44,9 +44,9 @@ config TOUCHSCREEN_BITSY
|
|||||||
config TOUCHSCREEN_CORGI
|
config TOUCHSCREEN_CORGI
|
||||||
tristate "SharpSL (Corgi and Spitz series) touchscreen driver"
|
tristate "SharpSL (Corgi and Spitz series) touchscreen driver"
|
||||||
depends on PXA_SHARPSL
|
depends on PXA_SHARPSL
|
||||||
default y
|
default y
|
||||||
help
|
help
|
||||||
Say Y here to enable the driver for the touchscreen on the
|
Say Y here to enable the driver for the touchscreen on the
|
||||||
Sharp SL-C7xx and SL-Cxx00 series of PDAs.
|
Sharp SL-C7xx and SL-Cxx00 series of PDAs.
|
||||||
|
|
||||||
If unsure, say N.
|
If unsure, say N.
|
||||||
@@ -164,4 +164,58 @@ config TOUCHSCREEN_UCB1400
|
|||||||
To compile this driver as a module, choose M here: the
|
To compile this driver as a module, choose M here: the
|
||||||
module will be called ucb1400_ts.
|
module will be called ucb1400_ts.
|
||||||
|
|
||||||
|
config TOUCHSCREEN_USB_COMPOSITE
|
||||||
|
tristate "USB Touchscreen Driver"
|
||||||
|
select USB
|
||||||
|
help
|
||||||
|
USB Touchscreen driver for:
|
||||||
|
- eGalax Touchkit USB (also includes eTurboTouch CT-410/510/700)
|
||||||
|
- PanJit TouchSet USB
|
||||||
|
- 3M MicroTouch USB (EX II series)
|
||||||
|
- ITM
|
||||||
|
- some other eTurboTouch
|
||||||
|
- Gunze AHL61
|
||||||
|
- DMC TSC-10/25
|
||||||
|
|
||||||
|
Have a look at <http://linux.chapter7.ch/touchkit/> for
|
||||||
|
a usage description and the required user-space stuff.
|
||||||
|
|
||||||
|
To compile this driver as a module, choose M here: the
|
||||||
|
module will be called usbtouchscreen.
|
||||||
|
|
||||||
|
config TOUCHSCREEN_USB_EGALAX
|
||||||
|
default y
|
||||||
|
bool "eGalax, eTurboTouch CT-410/510/700 device support" if EMBEDDED
|
||||||
|
depends on TOUCHSCREEN_USB_COMPOSITE
|
||||||
|
|
||||||
|
config TOUCHSCREEN_USB_PANJIT
|
||||||
|
default y
|
||||||
|
bool "PanJit device support" if EMBEDDED
|
||||||
|
depends on TOUCHSCREEN_USB_COMPOSITE
|
||||||
|
|
||||||
|
config TOUCHSCREEN_USB_3M
|
||||||
|
default y
|
||||||
|
bool "3M/Microtouch EX II series device support" if EMBEDDED
|
||||||
|
depends on TOUCHSCREEN_USB_COMPOSITE
|
||||||
|
|
||||||
|
config TOUCHSCREEN_USB_ITM
|
||||||
|
default y
|
||||||
|
bool "ITM device support" if EMBEDDED
|
||||||
|
depends on TOUCHSCREEN_USB_COMPOSITE
|
||||||
|
|
||||||
|
config TOUCHSCREEN_USB_ETURBO
|
||||||
|
default y
|
||||||
|
bool "eTurboTouch (non-eGalax compatible) device support" if EMBEDDED
|
||||||
|
depends on TOUCHSCREEN_USB_COMPOSITE
|
||||||
|
|
||||||
|
config TOUCHSCREEN_USB_GUNZE
|
||||||
|
default y
|
||||||
|
bool "Gunze AHL61 device support" if EMBEDDED
|
||||||
|
depends on TOUCHSCREEN_USB_COMPOSITE
|
||||||
|
|
||||||
|
config TOUCHSCREEN_USB_DMC_TSC10
|
||||||
|
default y
|
||||||
|
bool "DMC TSC-10/25 device support" if EMBEDDED
|
||||||
|
depends on TOUCHSCREEN_USB_COMPOSITE
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
@@ -1,17 +1,18 @@
|
|||||||
#
|
#
|
||||||
# Makefile for the mouse drivers.
|
# Makefile for the touchscreen drivers.
|
||||||
#
|
#
|
||||||
|
|
||||||
# Each configuration option enables a list of files.
|
# Each configuration option enables a list of files.
|
||||||
|
|
||||||
obj-$(CONFIG_TOUCHSCREEN_ADS7846) += ads7846.o
|
obj-$(CONFIG_TOUCHSCREEN_ADS7846) += ads7846.o
|
||||||
obj-$(CONFIG_TOUCHSCREEN_BITSY) += h3600_ts_input.o
|
obj-$(CONFIG_TOUCHSCREEN_BITSY) += h3600_ts_input.o
|
||||||
obj-$(CONFIG_TOUCHSCREEN_CORGI) += corgi_ts.o
|
obj-$(CONFIG_TOUCHSCREEN_CORGI) += corgi_ts.o
|
||||||
obj-$(CONFIG_TOUCHSCREEN_GUNZE) += gunze.o
|
obj-$(CONFIG_TOUCHSCREEN_GUNZE) += gunze.o
|
||||||
obj-$(CONFIG_TOUCHSCREEN_ELO) += elo.o
|
obj-$(CONFIG_TOUCHSCREEN_ELO) += elo.o
|
||||||
obj-$(CONFIG_TOUCHSCREEN_MTOUCH) += mtouch.o
|
obj-$(CONFIG_TOUCHSCREEN_MTOUCH) += mtouch.o
|
||||||
obj-$(CONFIG_TOUCHSCREEN_MK712) += mk712.o
|
obj-$(CONFIG_TOUCHSCREEN_MK712) += mk712.o
|
||||||
obj-$(CONFIG_TOUCHSCREEN_HP600) += hp680_ts_input.o
|
obj-$(CONFIG_TOUCHSCREEN_HP600) += hp680_ts_input.o
|
||||||
|
obj-$(CONFIG_TOUCHSCREEN_USB_COMPOSITE) += usbtouchscreen.o
|
||||||
obj-$(CONFIG_TOUCHSCREEN_PENMOUNT) += penmount.o
|
obj-$(CONFIG_TOUCHSCREEN_PENMOUNT) += penmount.o
|
||||||
obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT) += touchright.o
|
obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT) += touchright.o
|
||||||
obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o
|
obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o
|
||||||
|
@@ -668,9 +668,8 @@ static void usbtouch_close(struct input_dev *input)
|
|||||||
static void usbtouch_free_buffers(struct usb_device *udev,
|
static void usbtouch_free_buffers(struct usb_device *udev,
|
||||||
struct usbtouch_usb *usbtouch)
|
struct usbtouch_usb *usbtouch)
|
||||||
{
|
{
|
||||||
if (usbtouch->data)
|
usb_buffer_free(udev, usbtouch->type->rept_size,
|
||||||
usb_buffer_free(udev, usbtouch->type->rept_size,
|
usbtouch->data, usbtouch->data_dma);
|
||||||
usbtouch->data, usbtouch->data_dma);
|
|
||||||
kfree(usbtouch->buffer);
|
kfree(usbtouch->buffer);
|
||||||
}
|
}
|
||||||
|
|
@@ -85,8 +85,6 @@ source "drivers/usb/class/Kconfig"
|
|||||||
|
|
||||||
source "drivers/usb/storage/Kconfig"
|
source "drivers/usb/storage/Kconfig"
|
||||||
|
|
||||||
source "drivers/usb/input/Kconfig"
|
|
||||||
|
|
||||||
source "drivers/usb/image/Kconfig"
|
source "drivers/usb/image/Kconfig"
|
||||||
|
|
||||||
source "drivers/usb/net/Kconfig"
|
source "drivers/usb/net/Kconfig"
|
||||||
|
@@ -23,15 +23,6 @@ obj-$(CONFIG_USB_PRINTER) += class/
|
|||||||
obj-$(CONFIG_USB_STORAGE) += storage/
|
obj-$(CONFIG_USB_STORAGE) += storage/
|
||||||
obj-$(CONFIG_USB) += storage/
|
obj-$(CONFIG_USB) += storage/
|
||||||
|
|
||||||
obj-$(CONFIG_USB_ACECAD) += input/
|
|
||||||
obj-$(CONFIG_USB_AIPTEK) += input/
|
|
||||||
obj-$(CONFIG_USB_ATI_REMOTE) += input/
|
|
||||||
obj-$(CONFIG_USB_KBTAB) += input/
|
|
||||||
obj-$(CONFIG_USB_MTOUCH) += input/
|
|
||||||
obj-$(CONFIG_USB_POWERMATE) += input/
|
|
||||||
obj-$(CONFIG_USB_WACOM) += input/
|
|
||||||
obj-$(CONFIG_USB_XPAD) += input/
|
|
||||||
|
|
||||||
obj-$(CONFIG_USB_CATC) += net/
|
obj-$(CONFIG_USB_CATC) += net/
|
||||||
obj-$(CONFIG_USB_KAWETH) += net/
|
obj-$(CONFIG_USB_KAWETH) += net/
|
||||||
obj-$(CONFIG_USB_PEGASUS) += net/
|
obj-$(CONFIG_USB_PEGASUS) += net/
|
||||||
|
@@ -1,225 +0,0 @@
|
|||||||
#
|
|
||||||
# USB Input driver configuration
|
|
||||||
#
|
|
||||||
comment "USB Input Devices"
|
|
||||||
depends on USB
|
|
||||||
|
|
||||||
config USB_AIPTEK
|
|
||||||
tristate "Aiptek 6000U/8000U tablet support"
|
|
||||||
depends on USB && INPUT
|
|
||||||
help
|
|
||||||
Say Y here if you want to use the USB version of the Aiptek 6000U
|
|
||||||
or Aiptek 8000U tablet. Make sure to say Y to "Mouse support"
|
|
||||||
(CONFIG_INPUT_MOUSEDEV) and/or "Event interface support"
|
|
||||||
(CONFIG_INPUT_EVDEV) as well.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the
|
|
||||||
module will be called aiptek.
|
|
||||||
|
|
||||||
config USB_WACOM
|
|
||||||
tristate "Wacom Intuos/Graphire tablet support"
|
|
||||||
depends on USB && INPUT
|
|
||||||
help
|
|
||||||
Say Y here if you want to use the USB version of the Wacom Intuos
|
|
||||||
or Graphire tablet. Make sure to say Y to "Mouse support"
|
|
||||||
(CONFIG_INPUT_MOUSEDEV) and/or "Event interface support"
|
|
||||||
(CONFIG_INPUT_EVDEV) as well.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the
|
|
||||||
module will be called wacom.
|
|
||||||
|
|
||||||
config USB_ACECAD
|
|
||||||
tristate "Acecad Flair tablet support"
|
|
||||||
depends on USB && INPUT
|
|
||||||
help
|
|
||||||
Say Y here if you want to use the USB version of the Acecad Flair
|
|
||||||
tablet. Make sure to say Y to "Mouse support"
|
|
||||||
(CONFIG_INPUT_MOUSEDEV) and/or "Event interface support"
|
|
||||||
(CONFIG_INPUT_EVDEV) as well.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the
|
|
||||||
module will be called acecad.
|
|
||||||
|
|
||||||
config USB_KBTAB
|
|
||||||
tristate "KB Gear JamStudio tablet support"
|
|
||||||
depends on USB && INPUT
|
|
||||||
help
|
|
||||||
Say Y here if you want to use the USB version of the KB Gear
|
|
||||||
JamStudio tablet. Make sure to say Y to "Mouse support"
|
|
||||||
(CONFIG_INPUT_MOUSEDEV) and/or "Event interface support"
|
|
||||||
(CONFIG_INPUT_EVDEV) as well.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the
|
|
||||||
module will be called kbtab.
|
|
||||||
|
|
||||||
config USB_POWERMATE
|
|
||||||
tristate "Griffin PowerMate and Contour Jog support"
|
|
||||||
depends on USB && INPUT
|
|
||||||
---help---
|
|
||||||
Say Y here if you want to use Griffin PowerMate or Contour Jog devices.
|
|
||||||
These are aluminum dials which can measure clockwise and anticlockwise
|
|
||||||
rotation. The dial also acts as a pushbutton. The base contains an LED
|
|
||||||
which can be instructed to pulse or to switch to a particular intensity.
|
|
||||||
|
|
||||||
You can download userspace tools from
|
|
||||||
<http://sowerbutts.com/powermate/>.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the
|
|
||||||
module will be called powermate.
|
|
||||||
|
|
||||||
config USB_TOUCHSCREEN
|
|
||||||
tristate "USB Touchscreen Driver"
|
|
||||||
depends on USB && INPUT
|
|
||||||
---help---
|
|
||||||
USB Touchscreen driver for:
|
|
||||||
- eGalax Touchkit USB (also includes eTurboTouch CT-410/510/700)
|
|
||||||
- PanJit TouchSet USB
|
|
||||||
- 3M MicroTouch USB (EX II series)
|
|
||||||
- ITM
|
|
||||||
- some other eTurboTouch
|
|
||||||
- Gunze AHL61
|
|
||||||
- DMC TSC-10/25
|
|
||||||
|
|
||||||
Have a look at <http://linux.chapter7.ch/touchkit/> for
|
|
||||||
a usage description and the required user-space stuff.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the
|
|
||||||
module will be called usbtouchscreen.
|
|
||||||
|
|
||||||
config USB_TOUCHSCREEN_EGALAX
|
|
||||||
default y
|
|
||||||
bool "eGalax, eTurboTouch CT-410/510/700 device support" if EMBEDDED
|
|
||||||
depends on USB_TOUCHSCREEN
|
|
||||||
|
|
||||||
config USB_TOUCHSCREEN_PANJIT
|
|
||||||
default y
|
|
||||||
bool "PanJit device support" if EMBEDDED
|
|
||||||
depends on USB_TOUCHSCREEN
|
|
||||||
|
|
||||||
config USB_TOUCHSCREEN_3M
|
|
||||||
default y
|
|
||||||
bool "3M/Microtouch EX II series device support" if EMBEDDED
|
|
||||||
depends on USB_TOUCHSCREEN
|
|
||||||
|
|
||||||
config USB_TOUCHSCREEN_ITM
|
|
||||||
default y
|
|
||||||
bool "ITM device support" if EMBEDDED
|
|
||||||
depends on USB_TOUCHSCREEN
|
|
||||||
|
|
||||||
config USB_TOUCHSCREEN_ETURBO
|
|
||||||
default y
|
|
||||||
bool "eTurboTouch (non-eGalax compatible) device support" if EMBEDDED
|
|
||||||
depends on USB_TOUCHSCREEN
|
|
||||||
|
|
||||||
config USB_TOUCHSCREEN_GUNZE
|
|
||||||
default y
|
|
||||||
bool "Gunze AHL61 device support" if EMBEDDED
|
|
||||||
depends on USB_TOUCHSCREEN
|
|
||||||
|
|
||||||
config USB_TOUCHSCREEN_DMC_TSC10
|
|
||||||
default y
|
|
||||||
bool "DMC TSC-10/25 device support" if EMBEDDED
|
|
||||||
depends on USB_TOUCHSCREEN
|
|
||||||
|
|
||||||
config USB_YEALINK
|
|
||||||
tristate "Yealink usb-p1k voip phone"
|
|
||||||
depends on USB && INPUT && EXPERIMENTAL
|
|
||||||
---help---
|
|
||||||
Say Y here if you want to enable keyboard and LCD functions of the
|
|
||||||
Yealink usb-p1k usb phones. The audio part is enabled by the generic
|
|
||||||
usb sound driver, so you might want to enable that as well.
|
|
||||||
|
|
||||||
For information about how to use these additional functions, see
|
|
||||||
<file:Documentation/input/yealink.txt>.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the module will be
|
|
||||||
called yealink.
|
|
||||||
|
|
||||||
config USB_XPAD
|
|
||||||
tristate "X-Box gamepad support"
|
|
||||||
depends on USB && INPUT
|
|
||||||
---help---
|
|
||||||
Say Y here if you want to use the X-Box pad with your computer.
|
|
||||||
Make sure to say Y to "Joystick support" (CONFIG_INPUT_JOYDEV)
|
|
||||||
and/or "Event interface support" (CONFIG_INPUT_EVDEV) as well.
|
|
||||||
|
|
||||||
For information about how to connect the X-Box pad to USB, see
|
|
||||||
<file:Documentation/input/xpad.txt>.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the
|
|
||||||
module will be called xpad.
|
|
||||||
|
|
||||||
config USB_ATI_REMOTE
|
|
||||||
tristate "ATI / X10 USB RF remote control"
|
|
||||||
depends on USB && INPUT
|
|
||||||
---help---
|
|
||||||
Say Y here if you want to use an ATI or X10 "Lola" USB remote control.
|
|
||||||
These are RF remotes with USB receivers.
|
|
||||||
The ATI remote comes with many of ATI's All-In-Wonder video cards.
|
|
||||||
The X10 "Lola" remote is available at:
|
|
||||||
<http://www.x10.com/products/lola_sg1.htm>
|
|
||||||
This driver provides mouse pointer, left and right mouse buttons,
|
|
||||||
and maps all the other remote buttons to keypress events.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the module will be
|
|
||||||
called ati_remote.
|
|
||||||
|
|
||||||
config USB_ATI_REMOTE2
|
|
||||||
tristate "ATI / Philips USB RF remote control"
|
|
||||||
depends on USB && INPUT
|
|
||||||
---help---
|
|
||||||
Say Y here if you want to use an ATI or Philips USB RF remote control.
|
|
||||||
These are RF remotes with USB receivers.
|
|
||||||
ATI Remote Wonder II comes with some ATI's All-In-Wonder video cards
|
|
||||||
and is also available as a separate product.
|
|
||||||
This driver provides mouse pointer, left and right mouse buttons,
|
|
||||||
and maps all the other remote buttons to keypress events.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the module will be
|
|
||||||
called ati_remote2.
|
|
||||||
|
|
||||||
config USB_KEYSPAN_REMOTE
|
|
||||||
tristate "Keyspan DMR USB remote control (EXPERIMENTAL)"
|
|
||||||
depends on USB && INPUT && EXPERIMENTAL
|
|
||||||
---help---
|
|
||||||
Say Y here if you want to use a Keyspan DMR USB remote control.
|
|
||||||
Currently only the UIA-11 type of receiver has been tested. The tag
|
|
||||||
on the receiver that connects to the USB port should have a P/N that
|
|
||||||
will tell you what type of DMR you have. The UIA-10 type is not
|
|
||||||
supported at this time. This driver maps all buttons to keypress
|
|
||||||
events.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the module will
|
|
||||||
be called keyspan_remote.
|
|
||||||
|
|
||||||
config USB_APPLETOUCH
|
|
||||||
tristate "Apple USB Touchpad support"
|
|
||||||
depends on USB && INPUT
|
|
||||||
---help---
|
|
||||||
Say Y here if you want to use an Apple USB Touchpad.
|
|
||||||
|
|
||||||
These are the touchpads that can be found on post-February 2005
|
|
||||||
Apple Powerbooks (prior models have a Synaptics touchpad connected
|
|
||||||
to the ADB bus).
|
|
||||||
|
|
||||||
This driver provides a basic mouse driver but can be interfaced
|
|
||||||
with the synaptics X11 driver to provide acceleration and
|
|
||||||
scrolling in X11.
|
|
||||||
|
|
||||||
For further information, see
|
|
||||||
<file:Documentation/input/appletouch.txt>.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the
|
|
||||||
module will be called appletouch.
|
|
||||||
|
|
||||||
config USB_GTCO
|
|
||||||
tristate "GTCO CalComp/InterWrite USB Support"
|
|
||||||
depends on USB && INPUT
|
|
||||||
---help---
|
|
||||||
Say Y here if you want to use the USB version of the GTCO
|
|
||||||
CalComp/InterWrite Tablet. Make sure to say Y to "Mouse support"
|
|
||||||
(CONFIG_INPUT_MOUSEDEV) and/or "Event interface support"
|
|
||||||
(CONFIG_INPUT_EVDEV) as well.
|
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the
|
|
||||||
module will be called gtco.
|
|
@@ -1,24 +0,0 @@
|
|||||||
#
|
|
||||||
# Makefile for the USB input drivers
|
|
||||||
#
|
|
||||||
|
|
||||||
# Multipart objects.
|
|
||||||
wacom-objs := wacom_wac.o wacom_sys.o
|
|
||||||
|
|
||||||
obj-$(CONFIG_USB_AIPTEK) += aiptek.o
|
|
||||||
obj-$(CONFIG_USB_ATI_REMOTE) += ati_remote.o
|
|
||||||
obj-$(CONFIG_USB_ATI_REMOTE2) += ati_remote2.o
|
|
||||||
obj-$(CONFIG_USB_KBTAB) += kbtab.o
|
|
||||||
obj-$(CONFIG_USB_KEYSPAN_REMOTE) += keyspan_remote.o
|
|
||||||
obj-$(CONFIG_USB_TOUCHSCREEN) += usbtouchscreen.o
|
|
||||||
obj-$(CONFIG_USB_POWERMATE) += powermate.o
|
|
||||||
obj-$(CONFIG_USB_WACOM) += wacom.o
|
|
||||||
obj-$(CONFIG_USB_ACECAD) += acecad.o
|
|
||||||
obj-$(CONFIG_USB_YEALINK) += yealink.o
|
|
||||||
obj-$(CONFIG_USB_XPAD) += xpad.o
|
|
||||||
obj-$(CONFIG_USB_APPLETOUCH) += appletouch.o
|
|
||||||
obj-$(CONFIG_USB_GTCO) += gtco.o
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_USB_DEBUG),y)
|
|
||||||
EXTRA_CFLAGS += -DDEBUG
|
|
||||||
endif
|
|
@@ -32,6 +32,8 @@
|
|||||||
* - first public version
|
* - first public version
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <linux/input.h>
|
||||||
|
|
||||||
#define UINPUT_VERSION 3
|
#define UINPUT_VERSION 3
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
|
Reference in New Issue
Block a user