mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: usbtouchscreen - extend coordinate range for Generaltouch devices Input: polldev can cause crash in case when polling disabled
This commit is contained in:
commit
627fa177a1
@ -100,6 +100,12 @@ static void input_close_polled_device(struct input_dev *input)
|
||||
struct input_polled_dev *dev = input_get_drvdata(input);
|
||||
|
||||
cancel_delayed_work_sync(&dev->work);
|
||||
/*
|
||||
* Clean up work struct to remove references to the workqueue.
|
||||
* It may be destroyed by the next call. This causes problems
|
||||
* at next device open-close in case of poll_interval == 0.
|
||||
*/
|
||||
INIT_DELAYED_WORK(&dev->work, dev->work.work.func);
|
||||
input_polldev_stop_workqueue();
|
||||
|
||||
if (dev->close)
|
||||
|
@ -618,8 +618,8 @@ static int idealtek_read_data(struct usbtouch_usb *dev, unsigned char *pkt)
|
||||
#ifdef CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH
|
||||
static int general_touch_read_data(struct usbtouch_usb *dev, unsigned char *pkt)
|
||||
{
|
||||
dev->x = ((pkt[2] & 0x0F) << 8) | pkt[1] ;
|
||||
dev->y = ((pkt[4] & 0x0F) << 8) | pkt[3] ;
|
||||
dev->x = (pkt[2] << 8) | pkt[1];
|
||||
dev->y = (pkt[4] << 8) | pkt[3];
|
||||
dev->press = pkt[5] & 0xff;
|
||||
dev->touch = pkt[0] & 0x01;
|
||||
|
||||
@ -809,9 +809,9 @@ static struct usbtouch_device_info usbtouch_dev_info[] = {
|
||||
#ifdef CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH
|
||||
[DEVTYPE_GENERAL_TOUCH] = {
|
||||
.min_xc = 0x0,
|
||||
.max_xc = 0x0500,
|
||||
.max_xc = 0x7fff,
|
||||
.min_yc = 0x0,
|
||||
.max_yc = 0x0500,
|
||||
.max_yc = 0x7fff,
|
||||
.rept_size = 7,
|
||||
.read_data = general_touch_read_data,
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user