diff options
| author | Andy Botting <andy@andybotting.com> | 2011-03-12 20:27:22 -0800 | 
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2011-03-12 20:37:30 -0800 | 
| commit | 47340bd9fefb571888836da942b5aee0e85e959c (patch) | |
| tree | 102ff176847bfb851800c5ca1d5cefba9f545cab | |
| parent | 84eb5aa6ccb2a62c40722b8c5fb1338ea12155a3 (diff) | |
Input: bcm5974 - add support for MacBookPro8
This patch add multitouch support for the MacBookPro8,1 and
MacBookPro8,2 models.
Cc: stable@kernel.org
Signed-off-by: Andy Botting <andy@andybotting.com>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
| -rw-r--r-- | drivers/hid/hid-apple.c | 6 | ||||
| -rw-r--r-- | drivers/hid/hid-core.c | 6 | ||||
| -rw-r--r-- | drivers/hid/hid-ids.h | 3 | ||||
| -rw-r--r-- | drivers/input/mouse/bcm5974.c | 20 | 
4 files changed, 35 insertions, 0 deletions
| diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c index 61aa71233392..b85744fe8464 100644 --- a/drivers/hid/hid-apple.c +++ b/drivers/hid/hid-apple.c @@ -481,6 +481,12 @@ static const struct hid_device_id apple_devices[] = {  		.driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },  	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS),  		.driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS }, +	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI), +		.driver_data = APPLE_HAS_FN }, +	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ISO), +		.driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD }, +	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_JIS), +		.driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },  	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI),  		.driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },  	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO), diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index d678cf3d33d5..48a0a2f3e072 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -1302,6 +1302,9 @@ static const struct hid_device_id hid_have_special_driver[] = {  	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI) },  	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO) },  	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) }, +	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI) }, +	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ISO) }, +	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_JIS) },  	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI) },  	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO) },  	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS) }, @@ -1801,6 +1804,9 @@ static const struct hid_device_id hid_mouse_ignore_list[] = {  	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI) },  	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO) },  	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) }, +	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI) }, +	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_ISO) }, +	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5_JIS) },  	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) },  	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },  	{ } diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 92a0d61a7379..ca32ecbdce06 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -103,6 +103,9 @@  #define USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI	0x0242  #define USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO	0x0243  #define USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS	0x0244 +#define USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI	0x0245 +#define USB_DEVICE_ID_APPLE_WELLSPRING5_ISO	0x0246 +#define USB_DEVICE_ID_APPLE_WELLSPRING5_JIS	0x0247  #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI  0x0239  #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO   0x023a  #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS   0x023b diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c index ee82851afe3e..318531424848 100644 --- a/drivers/input/mouse/bcm5974.c +++ b/drivers/input/mouse/bcm5974.c @@ -63,6 +63,10 @@  #define USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI	0x0242  #define USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO	0x0243  #define USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS	0x0244 +/* Macbook8 (unibody, March 2011) */ +#define USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI	0x0245 +#define USB_DEVICE_ID_APPLE_WELLSPRING5_ISO	0x0246 +#define USB_DEVICE_ID_APPLE_WELLSPRING5_JIS	0x0247  #define BCM5974_DEVICE(prod) {					\  	.match_flags = (USB_DEVICE_ID_MATCH_DEVICE |		\ @@ -96,6 +100,10 @@ static const struct usb_device_id bcm5974_table[] = {  	BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4A_ANSI),  	BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4A_ISO),  	BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS), +	/* MacbookPro8 */ +	BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI), +	BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5_ISO), +	BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5_JIS),  	/* Terminating entry */  	{}  }; @@ -274,6 +282,18 @@ static const struct bcm5974_config bcm5974_config_table[] = {  		{ DIM_X, DIM_X / SN_COORD, -4616, 5112 },  		{ DIM_Y, DIM_Y / SN_COORD, -142, 5234 }  	}, +	{ +		USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI, +		USB_DEVICE_ID_APPLE_WELLSPRING5_ISO, +		USB_DEVICE_ID_APPLE_WELLSPRING5_JIS, +		HAS_INTEGRATED_BUTTON, +		0x84, sizeof(struct bt_data), +		0x81, TYPE2, FINGER_TYPE2, FINGER_TYPE2 + SIZEOF_ALL_FINGERS, +		{ DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 300 }, +		{ DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 }, +		{ DIM_X, DIM_X / SN_COORD, -4415, 5050 }, +		{ DIM_Y, DIM_Y / SN_COORD, -55, 6680 } +	},  	{}  }; | 
