Index: sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c =================================================================== RCS file: /cvsroot/src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c,v retrieving revision 1.3 diff -p -u -r1.3 nouveau_nv50_display.c --- sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c 25 Feb 2015 14:57:04 -0000 1.3 +++ sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c 13 Oct 2015 22:58:31 -0000 @@ -184,8 +184,8 @@ nv50_dmac_destroy(struct nouveau_object if (dmac->ptr) { struct pci_dev *pdev = nv_device(core)->pdev; #ifdef __NetBSD__ - /* XXX pa_dmat or pa_dmat64? */ - const bus_dma_tag_t dmat = pdev->pd_pa.pa_dmat64; + const bus_dma_tag_t dmat = pci_dma64_available(&pdev->pd_pa) ? + pdev->pd_pa.pa_dmat64 : pdev->pd_pa.pa_dmat; bus_dmamap_unload(dmat, dmac->dmamap); bus_dmamem_unmap(dmat, dmac->dmakva, PAGE_SIZE); @@ -343,7 +343,10 @@ nv50_dmac_create(struct nouveau_object * #ifdef __NetBSD__ { - const bus_dma_tag_t dmat = nv_device(core)->pdev->pd_pa.pa_dmat64; + struct nouveau_device *device = nv_device(core); + const bus_dma_tag_t dmat = pci_dma64_available(&device->pdev->pd_pa) ? + device->pdev->pd_pa.pa_dmat64 : device->pdev->pd_pa.pa_dmat; + int rsegs; /* XXX errno NetBSD->Linux */ Index: sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv50.c =================================================================== RCS file: /cvsroot/src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv50.c,v retrieving revision 1.2 diff -p -u -r1.2 nouveau_subdev_fb_nv50.c --- sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv50.c 25 Feb 2015 17:29:43 -0000 1.2 +++ sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nv50.c 13 Oct 2015 22:58:32 -0000 @@ -255,8 +255,8 @@ nv50_fb_ctor(struct nouveau_object *pare #ifdef __NetBSD__ { - /* XXX pa_dmat or pa_dmat64? */ - const bus_dma_tag_t dmat = device->pdev->pd_pa.pa_dmat64; + const bus_dma_tag_t dmat = pci_dma64_available(&device->pdev->pd_pa) ? + device->pdev->pd_pa.pa_dmat64 : device->pdev->pd_pa.pa_dmat; int nsegs; priv->r100c08_map = NULL; /* paranoia */ @@ -321,7 +321,8 @@ nv50_fb_dtor(struct nouveau_object *obje #ifdef __NetBSD__ if (priv->r100c08_map) { - const bus_dma_tag_t dmat = device->pdev->pd_pa.pa_dmat64; + const bus_dma_tag_t dmat = pci_dma64_available(&device->pdev->pd_pa) ? + device->pdev->pd_pa.pa_dmat64 : device->pdev->pd_pa.pa_dmat; bus_dmamap_unload(dmat, priv->r100c08_map); bus_dmamem_unmap(dmat, priv->r100c08_kva, PAGE_SIZE); Index: sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nvc0.c =================================================================== RCS file: /cvsroot/src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nvc0.c,v retrieving revision 1.2 diff -p -u -r1.2 nouveau_subdev_fb_nvc0.c --- sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nvc0.c 25 Feb 2015 17:29:43 -0000 1.2 +++ sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/fb/nouveau_subdev_fb_nvc0.c 13 Oct 2015 22:58:32 -0000 @@ -81,7 +81,8 @@ nvc0_fb_dtor(struct nouveau_object *obje #ifdef __NetBSD__ if (priv->r100c10_map) { - const bus_dma_tag_t dmat = device->pdev->pd_pa.pa_dmat64; + const bus_dma_tag_t dmat = pci_dma64_available(&device->pdev->pd_pa) ? + device->pdev->pd_pa.pa_dmat64 : device->pdev->pd_pa.pa_dmat; bus_dmamap_unload(dmat, priv->r100c10_map); bus_dmamem_unmap(dmat, priv->r100c10_kva, PAGE_SIZE); @@ -114,8 +115,8 @@ nvc0_fb_ctor(struct nouveau_object *pare #ifdef __NetBSD__ { - /* XXX pa_dmat or pa_dmat64? */ - const bus_dma_tag_t dmat = device->pdev->pd_pa.pa_dmat64; + const bus_dma_tag_t dmat = pci_dma64_available(&device->pdev->pd_pa) ? + device->pdev->pd_pa.pa_dmat64 : device->pdev->pd_pa.pa_dmat; int nsegs; priv->r100c10_map = NULL; /* paranoia */ Index: sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv04.c =================================================================== RCS file: /cvsroot/src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv04.c,v retrieving revision 1.2 diff -p -u -r1.2 nouveau_subdev_vm_nv04.c --- sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv04.c 25 Feb 2015 22:12:00 -0000 1.2 +++ sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv04.c 13 Oct 2015 22:58:32 -0000 @@ -139,9 +139,9 @@ nv04_vmmgr_dtor(struct nouveau_object *o } #ifdef __NetBSD__ if (priv->nullp) { - /* XXX pa_dmat or pa_dmat64? */ struct nouveau_device *device = nv_device(priv); - const bus_dma_tag_t dmat = device->pdev->pd_pa.pa_dmat64; + const bus_dma_tag_t dmat = pci_dma64_available(&device->pdev->pd_pa) ? + device->pdev->pd_pa.pa_dmat64 : device->pdev->pd_pa.pa_dmat; bus_dmamap_unload(dmat, priv->nullmap); bus_dmamem_unmap(dmat, priv->nullp, PAGE_SIZE); Index: sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv44.c =================================================================== RCS file: /cvsroot/src/sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv44.c,v retrieving revision 1.2 diff -p -u -r1.2 nouveau_subdev_vm_nv44.c --- sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv44.c 25 Feb 2015 22:12:00 -0000 1.2 +++ sys/external/bsd/drm2/dist/drm/nouveau/core/subdev/vm/nouveau_subdev_vm_nv44.c 13 Oct 2015 22:58:32 -0000 @@ -192,8 +192,8 @@ nv44_vmmgr_ctor(struct nouveau_object *p #ifdef __NetBSD__ { - /* XXX pa_dmat or pa_dmat64? */ - const bus_dma_tag_t dmat = device->pdev->pd_pa.pa_dmat64; + const bus_dma_tag_t dmat = pci_dma64_available(&device->pdev->pd_pa) ? + device->pdev->pd_pa.pa_dmat64 : device->pdev->pd_pa.pa_dmat; int nsegs; /* XXX errno NetBSD->Linux */