summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/ohcireg.h
diff options
context:
space:
mode:
authorn_hibma <n_hibma@FreeBSD.org>2000-02-10 18:50:19 +0000
committern_hibma <n_hibma@FreeBSD.org>2000-02-10 18:50:19 +0000
commite8b624173afd0d3abbffcee785b504b298ae4b4b (patch)
treef52d0cdd18364528cfc25ca3ccdb2c2656d5aff8 /sys/dev/usb/ohcireg.h
parentca6bc8a505ef28bf23c51720be7efccdec424c56 (diff)
downloadFreeBSD-src-e8b624173afd0d3abbffcee785b504b298ae4b4b.zip
FreeBSD-src-e8b624173afd0d3abbffcee785b504b298ae4b4b.tar.gz
Correctly handle the conversion from virtual to physical addresses. The
problem was basically (for offset > 4096): vtophys(addr) + offset != vtophys(addr + offset) Also, use TD's with a maximum size of 4k instead of 8kb for OHCI controllers. This problem occurs in drivers that use large transfer sizes: umass, host2host and ethernet with jumbo frames.
Diffstat (limited to 'sys/dev/usb/ohcireg.h')
-rw-r--r--sys/dev/usb/ohcireg.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/usb/ohcireg.h b/sys/dev/usb/ohcireg.h
index 30bfb2c..e61f050 100644
--- a/sys/dev/usb/ohcireg.h
+++ b/sys/dev/usb/ohcireg.h
@@ -143,6 +143,7 @@ struct ohci_hcca {
#define OHCI_PAGE_SIZE 0x1000
#define OHCI_PAGE(x) ((x) &~ 0xfff)
+#define OHCI_PAGE_MASK(x) ((x) & 0xfff)
typedef struct {
u_int32_t ed_flags;
OpenPOWER on IntegriCloud