From c6f8d7066d18ac86ff88627d858b749d9ba168bc Mon Sep 17 00:00:00 2001 From: Ondrej Zary Date: Tue, 12 Jun 2007 00:33:13 -0400 Subject: [PATCH 1/4] Input: usbtouchscreen - fix fallout caused by move from drivers/usb During the move from drivers/usb/input into drivers/input/touchscreen Kconfig variables were shuffled a bit to use a new namespace (CONFIG_TOUCHSCREEN) while usbtouchscreen was still using old ones. Also noticed by Robert P. J. Day Signed-off-by: Ondrej Zary Signed-off-by: Daniel Ritz Signed-off-by: Dmitry Torokhov --- drivers/input/touchscreen/usbtouchscreen.c | 44 +++++++++++----------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/drivers/input/touchscreen/usbtouchscreen.c b/drivers/input/touchscreen/usbtouchscreen.c index 8e18e6c64777..e3f22852bd09 100644 --- a/drivers/input/touchscreen/usbtouchscreen.c +++ b/drivers/input/touchscreen/usbtouchscreen.c @@ -91,7 +91,7 @@ struct usbtouch_usb { }; -#if defined(CONFIG_USB_TOUCHSCREEN_EGALAX) || defined(CONFIG_USB_TOUCHSCREEN_ETURBO) +#if defined(CONFIG_TOUCHSCREEN_USB_EGALAX) || defined(CONFIG_TOUCHSCREEN_USB_ETURBO) #define MULTI_PACKET #endif @@ -113,7 +113,7 @@ enum { }; static struct usb_device_id usbtouch_devices[] = { -#ifdef CONFIG_USB_TOUCHSCREEN_EGALAX +#ifdef CONFIG_TOUCHSCREEN_USB_EGALAX {USB_DEVICE(0x3823, 0x0001), .driver_info = DEVTYPE_EGALAX}, {USB_DEVICE(0x3823, 0x0002), .driver_info = DEVTYPE_EGALAX}, {USB_DEVICE(0x0123, 0x0001), .driver_info = DEVTYPE_EGALAX}, @@ -123,30 +123,30 @@ static struct usb_device_id usbtouch_devices[] = { {USB_DEVICE(0x1234, 0x0002), .driver_info = DEVTYPE_EGALAX}, #endif -#ifdef CONFIG_USB_TOUCHSCREEN_PANJIT +#ifdef CONFIG_TOUCHSCREEN_USB_PANJIT {USB_DEVICE(0x134c, 0x0001), .driver_info = DEVTYPE_PANJIT}, {USB_DEVICE(0x134c, 0x0002), .driver_info = DEVTYPE_PANJIT}, {USB_DEVICE(0x134c, 0x0003), .driver_info = DEVTYPE_PANJIT}, {USB_DEVICE(0x134c, 0x0004), .driver_info = DEVTYPE_PANJIT}, #endif -#ifdef CONFIG_USB_TOUCHSCREEN_3M +#ifdef CONFIG_TOUCHSCREEN_USB_3M {USB_DEVICE(0x0596, 0x0001), .driver_info = DEVTYPE_3M}, #endif -#ifdef CONFIG_USB_TOUCHSCREEN_ITM +#ifdef CONFIG_TOUCHSCREEN_USB_ITM {USB_DEVICE(0x0403, 0xf9e9), .driver_info = DEVTYPE_ITM}, #endif -#ifdef CONFIG_USB_TOUCHSCREEN_ETURBO +#ifdef CONFIG_TOUCHSCREEN_USB_ETURBO {USB_DEVICE(0x1234, 0x5678), .driver_info = DEVTYPE_ETURBO}, #endif -#ifdef CONFIG_USB_TOUCHSCREEN_GUNZE +#ifdef CONFIG_TOUCHSCREEN_USB_GUNZE {USB_DEVICE(0x0637, 0x0001), .driver_info = DEVTYPE_GUNZE}, #endif -#ifdef CONFIG_USB_TOUCHSCREEN_DMC_TSC10 +#ifdef CONFIG_TOUCHSCREEN_USB_DMC_TSC10 {USB_DEVICE(0x0afa, 0x03e8), .driver_info = DEVTYPE_DMC_TSC10}, #endif @@ -158,7 +158,7 @@ static struct usb_device_id usbtouch_devices[] = { * eGalax part */ -#ifdef CONFIG_USB_TOUCHSCREEN_EGALAX +#ifdef CONFIG_TOUCHSCREEN_USB_EGALAX #define EGALAX_PKT_TYPE_MASK 0xFE #define EGALAX_PKT_TYPE_REPT 0x80 @@ -197,7 +197,7 @@ static int egalax_get_pkt_len(unsigned char *buf, int len) /***************************************************************************** * PanJit Part */ -#ifdef CONFIG_USB_TOUCHSCREEN_PANJIT +#ifdef CONFIG_TOUCHSCREEN_USB_PANJIT static int panjit_read_data(struct usbtouch_usb *dev, unsigned char *pkt) { dev->x = ((pkt[2] & 0x0F) << 8) | pkt[1]; @@ -212,7 +212,7 @@ static int panjit_read_data(struct usbtouch_usb *dev, unsigned char *pkt) /***************************************************************************** * 3M/Microtouch Part */ -#ifdef CONFIG_USB_TOUCHSCREEN_3M +#ifdef CONFIG_TOUCHSCREEN_USB_3M #define MTOUCHUSB_ASYNC_REPORT 1 #define MTOUCHUSB_RESET 7 @@ -262,7 +262,7 @@ static int mtouch_init(struct usbtouch_usb *usbtouch) /***************************************************************************** * ITM Part */ -#ifdef CONFIG_USB_TOUCHSCREEN_ITM +#ifdef CONFIG_TOUCHSCREEN_USB_ITM static int itm_read_data(struct usbtouch_usb *dev, unsigned char *pkt) { int touch; @@ -296,7 +296,7 @@ static int itm_read_data(struct usbtouch_usb *dev, unsigned char *pkt) /***************************************************************************** * eTurboTouch part */ -#ifdef CONFIG_USB_TOUCHSCREEN_ETURBO +#ifdef CONFIG_TOUCHSCREEN_USB_ETURBO static int eturbo_read_data(struct usbtouch_usb *dev, unsigned char *pkt) { unsigned int shift; @@ -327,7 +327,7 @@ static int eturbo_get_pkt_len(unsigned char *buf, int len) /***************************************************************************** * Gunze part */ -#ifdef CONFIG_USB_TOUCHSCREEN_GUNZE +#ifdef CONFIG_TOUCHSCREEN_USB_GUNZE static int gunze_read_data(struct usbtouch_usb *dev, unsigned char *pkt) { if (!(pkt[0] & 0x80) || ((pkt[1] | pkt[2] | pkt[3]) & 0x80)) @@ -348,7 +348,7 @@ static int gunze_read_data(struct usbtouch_usb *dev, unsigned char *pkt) * http://www.dmccoltd.com/files/controler/tsc10usb_pi_e.pdf * http://www.dmccoltd.com/files/controler/tsc25_usb_e.pdf */ -#ifdef CONFIG_USB_TOUCHSCREEN_DMC_TSC10 +#ifdef CONFIG_TOUCHSCREEN_USB_DMC_TSC10 /* supported data rates. currently using 130 */ #define TSC10_RATE_POINT 0x50 @@ -419,7 +419,7 @@ static int dmc_tsc10_read_data(struct usbtouch_usb *dev, unsigned char *pkt) * the different device descriptors */ static struct usbtouch_device_info usbtouch_dev_info[] = { -#ifdef CONFIG_USB_TOUCHSCREEN_EGALAX +#ifdef CONFIG_TOUCHSCREEN_USB_EGALAX [DEVTYPE_EGALAX] = { .min_xc = 0x0, .max_xc = 0x07ff, @@ -433,7 +433,7 @@ static struct usbtouch_device_info usbtouch_dev_info[] = { }, #endif -#ifdef CONFIG_USB_TOUCHSCREEN_PANJIT +#ifdef CONFIG_TOUCHSCREEN_USB_PANJIT [DEVTYPE_PANJIT] = { .min_xc = 0x0, .max_xc = 0x0fff, @@ -444,7 +444,7 @@ static struct usbtouch_device_info usbtouch_dev_info[] = { }, #endif -#ifdef CONFIG_USB_TOUCHSCREEN_3M +#ifdef CONFIG_TOUCHSCREEN_USB_3M [DEVTYPE_3M] = { .min_xc = 0x0, .max_xc = 0x4000, @@ -456,7 +456,7 @@ static struct usbtouch_device_info usbtouch_dev_info[] = { }, #endif -#ifdef CONFIG_USB_TOUCHSCREEN_ITM +#ifdef CONFIG_TOUCHSCREEN_USB_ITM [DEVTYPE_ITM] = { .min_xc = 0x0, .max_xc = 0x0fff, @@ -468,7 +468,7 @@ static struct usbtouch_device_info usbtouch_dev_info[] = { }, #endif -#ifdef CONFIG_USB_TOUCHSCREEN_ETURBO +#ifdef CONFIG_TOUCHSCREEN_USB_ETURBO [DEVTYPE_ETURBO] = { .min_xc = 0x0, .max_xc = 0x07ff, @@ -482,7 +482,7 @@ static struct usbtouch_device_info usbtouch_dev_info[] = { }, #endif -#ifdef CONFIG_USB_TOUCHSCREEN_GUNZE +#ifdef CONFIG_TOUCHSCREEN_USB_GUNZE [DEVTYPE_GUNZE] = { .min_xc = 0x0, .max_xc = 0x0fff, @@ -493,7 +493,7 @@ static struct usbtouch_device_info usbtouch_dev_info[] = { }, #endif -#ifdef CONFIG_USB_TOUCHSCREEN_DMC_TSC10 +#ifdef CONFIG_TOUCHSCREEN_USB_DMC_TSC10 [DEVTYPE_DMC_TSC10] = { .min_xc = 0x0, .max_xc = 0x03ff, From 90245c17d3170438a0445614cbc5f72c1717d583 Mon Sep 17 00:00:00 2001 From: Dmitry Torokhov Date: Tue, 12 Jun 2007 00:33:27 -0400 Subject: [PATCH 2/4] Input: i8042 - add ASUS P65UP5 to the noloop list This board does not raise AUX IRQ in response to AUX LOOP command which interferes with our test for proper AUX IRQ wiring. Put it in the blacklist and assume mouse is present. Signed-off-by: Dmitry Torokhov --- drivers/input/serio/i8042-x86ia64io.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h index 6858bc58f0fd..9fe92ed4d2b9 100644 --- a/drivers/input/serio/i8042-x86ia64io.h +++ b/drivers/input/serio/i8042-x86ia64io.h @@ -68,6 +68,15 @@ static inline void i8042_write_command(int val) #include static struct dmi_system_id __initdata i8042_dmi_noloop_table[] = { + { + /* AUX LOOP command does not raise AUX IRQ */ + .ident = "ASUS P65UP5", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), + DMI_MATCH(DMI_BOARD_NAME, "P/I-P65UP5"), + DMI_MATCH(DMI_BOARD_VERSION, "REV 2.X"), + }, + }, { .ident = "Compaq Proliant 8500", .matches = { From 8c4df74e02b0853ad86d1595fb6065d6c26fb196 Mon Sep 17 00:00:00 2001 From: Dmitry Torokhov Date: Tue, 12 Jun 2007 00:33:32 -0400 Subject: [PATCH 3/4] Input: i8042 - add ULI EV4873 to noloop list The box does not implement AUX LOOP command properly and so we can't test for AUX IRQ delivery so blacklist it via DMI and assume that AUX port is present. Signed-off-by: Dmitry Torokhov --- drivers/input/serio/i8042-x86ia64io.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h index 9fe92ed4d2b9..f4a2517925e4 100644 --- a/drivers/input/serio/i8042-x86ia64io.h +++ b/drivers/input/serio/i8042-x86ia64io.h @@ -101,6 +101,15 @@ static struct dmi_system_id __initdata i8042_dmi_noloop_table[] = { DMI_MATCH(DMI_PRODUCT_VERSION, "00"), }, }, + { + /* AUX LOOP does not work properly */ + .ident = "ULI EV4873", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ULI"), + DMI_MATCH(DMI_PRODUCT_NAME, "EV4873"), + DMI_MATCH(DMI_PRODUCT_VERSION, "5a"), + }, + }, { } }; From 893e7c2db05f14032f2390ef7c59a499fc25ccae Mon Sep 17 00:00:00 2001 From: Dmitry Torokhov Date: Wed, 13 Jun 2007 01:49:58 -0400 Subject: [PATCH 4/4] Input: move input-polldev to drivers/input To work around deficiences in Kconfig that allows to "select" a symbol without automatically selecting all dependencies for that symbol move input-polldev from drivers/input/misc to drivers/input thus removing extra dependency on CONFIG_INPUT_MISC. Signed-off-by: Dmitry Torokhov --- drivers/input/Kconfig | 13 +++++++++++++ drivers/input/Makefile | 1 + drivers/input/{misc => }/input-polldev.c | 0 drivers/input/misc/Kconfig | 11 ----------- drivers/input/misc/Makefile | 1 - 5 files changed, 14 insertions(+), 12 deletions(-) rename drivers/input/{misc => }/input-polldev.c (100%) diff --git a/drivers/input/Kconfig b/drivers/input/Kconfig index 0e9b69535ad6..3cfff40695ec 100644 --- a/drivers/input/Kconfig +++ b/drivers/input/Kconfig @@ -38,6 +38,19 @@ config INPUT_FF_MEMLESS To compile this driver as a module, choose M here: the module will be called ff-memless. +config INPUT_POLLDEV + tristate "Polled input device skeleton" + help + Say Y here if you are using a driver for an input + device that periodically polls hardware state. This + option is only useful for out-of-tree drivers since + in-tree drivers select it automatically. + + If unsure, say N. + + To compile this driver as a module, choose M here: the + module will be called input-polldev. + comment "Userland interfaces" config INPUT_MOUSEDEV diff --git a/drivers/input/Makefile b/drivers/input/Makefile index 8a2dd987546c..15eb752697b3 100644 --- a/drivers/input/Makefile +++ b/drivers/input/Makefile @@ -8,6 +8,7 @@ obj-$(CONFIG_INPUT) += input-core.o input-core-objs := input.o ff-core.o obj-$(CONFIG_INPUT_FF_MEMLESS) += ff-memless.o +obj-$(CONFIG_INPUT_POLLDEV) += input-polldev.o obj-$(CONFIG_INPUT_MOUSEDEV) += mousedev.o obj-$(CONFIG_INPUT_JOYDEV) += joydev.o diff --git a/drivers/input/misc/input-polldev.c b/drivers/input/input-polldev.c similarity index 100% rename from drivers/input/misc/input-polldev.c rename to drivers/input/input-polldev.c diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig index 6013ace94d98..98ddafa30535 100644 --- a/drivers/input/misc/Kconfig +++ b/drivers/input/misc/Kconfig @@ -165,17 +165,6 @@ config INPUT_UINPUT To compile this driver as a module, choose M here: the module will be called uinput. -config INPUT_POLLDEV - tristate "Polled input device skeleton" - help - Say Y here if you are using a driver for an input - device that periodically polls hardware state. This - option is only useful for out-of-tree drivers since - in-tree drivers select it automatically. - - To compile this driver as a module, choose M here: the - module will be called input-polldev. - config HP_SDC_RTC tristate "HP SDC Real Time Clock" depends on GSC || HP300 diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile index 8b2f7799e25c..3585b5038418 100644 --- a/drivers/input/misc/Makefile +++ b/drivers/input/misc/Makefile @@ -4,7 +4,6 @@ # Each configuration option enables a list of files. -obj-$(CONFIG_INPUT_POLLDEV) += input-polldev.o obj-$(CONFIG_INPUT_SPARCSPKR) += sparcspkr.o obj-$(CONFIG_INPUT_PCSPKR) += pcspkr.o obj-$(CONFIG_INPUT_M68K_BEEP) += m68kspkr.o