View | Details | Raw Unified | Return to bug 6105 | Differences between
and this patch

Collapse All | Expand All

(-)drivers/input/mouse/psmouse.h.old (+1 lines)
Lines 43-48 Link Here
43
	char *vendor;
43
	char *vendor;
44
	char *name;
44
	char *name;
45
	unsigned char packet[8];
45
	unsigned char packet[8];
46
	int badchecksum;
46
	unsigned char badbyte;
47
	unsigned char badbyte;
47
	unsigned char pktcnt;
48
	unsigned char pktcnt;
48
	unsigned char pktsize;
49
	unsigned char pktsize;
(-)drivers/input/mouse/psmouse-base.c.old (-2 / +13 lines)
Lines 132-137 Link Here
132
 * Full packet accumulated, process it
132
 * Full packet accumulated, process it
133
 */
133
 */
134
134
135
	if (psmouse->badchecksum)
136
		return PSMOUSE_FULL_PACKET;
137
135
/*
138
/*
136
 * Scroll wheel on IntelliMice, scroll buttons on NetMice
139
 * Scroll wheel on IntelliMice, scroll buttons on NetMice
137
 */
140
 */
Lines 216-221 Link Here
216
static inline void __psmouse_set_state(struct psmouse *psmouse, enum psmouse_state new_state)
219
static inline void __psmouse_set_state(struct psmouse *psmouse, enum psmouse_state new_state)
217
{
220
{
218
	psmouse->state = new_state;
221
	psmouse->state = new_state;
222
	psmouse->badchecksum = 0;
219
	psmouse->pktcnt = psmouse->out_of_sync = 0;
223
	psmouse->pktcnt = psmouse->out_of_sync = 0;
220
	psmouse->ps2dev.flags = 0;
224
	psmouse->ps2dev.flags = 0;
221
	psmouse->last = jiffies;
225
	psmouse->last = jiffies;
Lines 256-265 Link Here
256
					return -1;
260
					return -1;
257
				}
261
				}
258
			}
262
			}
263
			psmouse->badchecksum = 0;
259
			psmouse->pktcnt = 0;
264
			psmouse->pktcnt = 0;
260
			break;
265
			break;
261
266
262
		case PSMOUSE_FULL_PACKET:
267
		case PSMOUSE_FULL_PACKET:
268
			psmouse->badchecksum = 0;
263
			psmouse->pktcnt = 0;
269
			psmouse->pktcnt = 0;
264
			if (psmouse->out_of_sync) {
270
			if (psmouse->out_of_sync) {
265
				psmouse->out_of_sync = 0;
271
				psmouse->out_of_sync = 0;
Lines 269-274 Link Here
269
			break;
275
			break;
270
276
271
		case PSMOUSE_GOOD_DATA:
277
		case PSMOUSE_GOOD_DATA:
278
			psmouse->badchecksum = 0;
272
			break;
279
			break;
273
	}
280
	}
274
	return 0;
281
	return 0;
Lines 292-299 Link Here
292
			printk(KERN_WARNING "psmouse.c: bad data from KBC -%s%s\n",
299
			printk(KERN_WARNING "psmouse.c: bad data from KBC -%s%s\n",
293
				flags & SERIO_TIMEOUT ? " timeout" : "",
300
				flags & SERIO_TIMEOUT ? " timeout" : "",
294
				flags & SERIO_PARITY ? " bad parity" : "");
301
				flags & SERIO_PARITY ? " bad parity" : "");
295
		ps2_cmd_aborted(&psmouse->ps2dev);
302
		if (flags & SERIO_TIMEOUT) {
296
		goto out;
303
			ps2_cmd_aborted(&psmouse->ps2dev);
304
			goto out;
305
		} else {
306
			psmouse->badchecksum = 1;
307
		}
297
	}
308
	}
298
309
299
	if (unlikely(psmouse->ps2dev.flags & PS2_FLAG_ACK))
310
	if (unlikely(psmouse->ps2dev.flags & PS2_FLAG_ACK))

Return to bug 6105