svn commit: r244852 - projects/altix2/sys/ia64/sgisn
Marcel Moolenaar
marcel at FreeBSD.org
Sun Dec 30 06:00:56 UTC 2012
Author: marcel
Date: Sun Dec 30 06:00:55 2012
New Revision: 244852
URL: http://svnweb.freebsd.org/changeset/base/244852
Log:
Use 64-bit direct mapped DMA for devices that support it (e.g. isp(4)).
Modified:
projects/altix2/sys/ia64/sgisn/sgisn_pcib.c
Modified: projects/altix2/sys/ia64/sgisn/sgisn_pcib.c
==============================================================================
--- projects/altix2/sys/ia64/sgisn/sgisn_pcib.c Sun Dec 30 05:59:10 2012 (r244851)
+++ projects/altix2/sys/ia64/sgisn/sgisn_pcib.c Sun Dec 30 06:00:55 2012 (r244852)
@@ -506,12 +506,22 @@ sgisn_pcib_iommu_xlate(device_t dev, bus
static int
sgisn_pcib_iommu_map(device_t dev, busdma_md_t md, u_int idx, bus_addr_t *ba_p)
{
- bus_addr_t bndry = 0x80000000UL;
+ struct sgisn_pcib_softc *sc = device_get_softc(dev);
+ busdma_tag_t tag;
+ bus_addr_t maxaddr = 0x80000000UL;
bus_addr_t ba;
ba = *ba_p;
- if (ba < bndry) {
- ba |= bndry;
+ if (ba < maxaddr) {
+ ba |= maxaddr;
+ *ba_p = ba;
+ return (0);
+ }
+
+ tag = busdma_md_get_tag(md);
+ maxaddr = busdma_tag_get_maxaddr(tag);
+ if (maxaddr == ~0UL) {
+ ba |= ((u_long)sc->sc_fwbus->fw_hub_xid << 60) | (1UL << 59);
*ba_p = ba;
return (0);
}
More information about the svn-src-projects
mailing list