mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 16:54:20 +08:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input layer fixes from Dmitry Torokhov: "The main change is to fix breakage in Elantech driver introduced by the recent commit adding trackpoint reporting to protocol v4. Now we are trusting the hardware to advertise the trackpoint properly and do not try to decode the data as trackpoint if firmware told us it is not present" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: xpad - use proper endpoint type Input: elantech - trust firmware about trackpoint presence Input: synaptics - adjust min/max on Thinkpad E540
This commit is contained in:
commit
0210bb6083
@ -1179,9 +1179,19 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
|
||||
}
|
||||
|
||||
ep_irq_in = &intf->cur_altsetting->endpoint[1].desc;
|
||||
usb_fill_bulk_urb(xpad->bulk_out, udev,
|
||||
usb_sndbulkpipe(udev, ep_irq_in->bEndpointAddress),
|
||||
xpad->bdata, XPAD_PKT_LEN, xpad_bulk_out, xpad);
|
||||
if (usb_endpoint_is_bulk_out(ep_irq_in)) {
|
||||
usb_fill_bulk_urb(xpad->bulk_out, udev,
|
||||
usb_sndbulkpipe(udev,
|
||||
ep_irq_in->bEndpointAddress),
|
||||
xpad->bdata, XPAD_PKT_LEN,
|
||||
xpad_bulk_out, xpad);
|
||||
} else {
|
||||
usb_fill_int_urb(xpad->bulk_out, udev,
|
||||
usb_sndintpipe(udev,
|
||||
ep_irq_in->bEndpointAddress),
|
||||
xpad->bdata, XPAD_PKT_LEN,
|
||||
xpad_bulk_out, xpad, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Submit the int URB immediately rather than waiting for open
|
||||
|
@ -428,14 +428,6 @@ static void elantech_report_trackpoint(struct psmouse *psmouse,
|
||||
int x, y;
|
||||
u32 t;
|
||||
|
||||
if (dev_WARN_ONCE(&psmouse->ps2dev.serio->dev,
|
||||
!tp_dev,
|
||||
psmouse_fmt("Unexpected trackpoint message\n"))) {
|
||||
if (etd->debug == 1)
|
||||
elantech_packet_dump(psmouse);
|
||||
return;
|
||||
}
|
||||
|
||||
t = get_unaligned_le32(&packet[0]);
|
||||
|
||||
switch (t & ~7U) {
|
||||
@ -793,7 +785,7 @@ static int elantech_packet_check_v4(struct psmouse *psmouse)
|
||||
unsigned char packet_type = packet[3] & 0x03;
|
||||
bool sanity_check;
|
||||
|
||||
if ((packet[3] & 0x0f) == 0x06)
|
||||
if (etd->tp_dev && (packet[3] & 0x0f) == 0x06)
|
||||
return PACKET_TRACKPOINT;
|
||||
|
||||
/*
|
||||
|
@ -143,6 +143,10 @@ static const struct min_max_quirk min_max_pnpid_table[] = {
|
||||
(const char * const []){"LEN2001", NULL},
|
||||
1024, 5022, 2508, 4832
|
||||
},
|
||||
{
|
||||
(const char * const []){"LEN2006", NULL},
|
||||
1264, 5675, 1171, 4688
|
||||
},
|
||||
{ }
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user