diff options
author | n_hibma <n_hibma@FreeBSD.org> | 2000-02-10 18:50:19 +0000 |
---|---|---|
committer | n_hibma <n_hibma@FreeBSD.org> | 2000-02-10 18:50:19 +0000 |
commit | e8b624173afd0d3abbffcee785b504b298ae4b4b (patch) | |
tree | f52d0cdd18364528cfc25ca3ccdb2c2656d5aff8 /sys/dev/usb/ohcireg.h | |
parent | ca6bc8a505ef28bf23c51720be7efccdec424c56 (diff) | |
download | FreeBSD-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.h | 1 |
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; |