1
From 3cabf78a971e1113edb07f94b80a9a631d27e1a5 Mon Sep 17 00:00:00 2001
2
From: Kevin O'Connor <kevin@koconnor.net>
3
Date: Sun, 29 May 2011 09:48:28 -0400
4
Subject: [PATCH 14/91] Fix OHCI keyboard repeat key issue.
6
Mask toggleCarry and Halted flags in endpoint descriptor dword #2 so that
7
the remaining head pointer field is valid for comparing with the next
10
Signed-off-by: Scott Duplichan <scott@notabs.org>
11
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
14
1 files changed, 1 insertions(+), 1 deletions(-)
16
diff --git a/src/usb-ohci.c b/src/usb-ohci.c
17
index 86eba0d..72b9f68 100644
20
@@ -501,7 +501,7 @@ ohci_poll_intr(struct usb_pipe *p, void *data)
22
struct ohci_pipe *pipe = container_of(p, struct ohci_pipe, pipe);
23
struct ohci_td *tds = GET_FLATPTR(pipe->tds);
24
- struct ohci_td *head = (void*)GET_FLATPTR(pipe->ed.hwHeadP);
25
+ struct ohci_td *head = (void*)(GET_FLATPTR(pipe->ed.hwHeadP) & ~(ED_C|ED_H));
26
struct ohci_td *tail = (void*)GET_FLATPTR(pipe->ed.hwTailP);
27
int count = GET_FLATPTR(pipe->count);
28
int pos = (tail - tds + 1) % count;