diff options
Diffstat (limited to 'sys/dev/pci/drm/drm_pci.c')
-rw-r--r-- | sys/dev/pci/drm/drm_pci.c | 56 |
1 files changed, 1 insertions, 55 deletions
diff --git a/sys/dev/pci/drm/drm_pci.c b/sys/dev/pci/drm/drm_pci.c index 4adcd27e9c1..c988c7917e8 100644 --- a/sys/dev/pci/drm/drm_pci.c +++ b/sys/dev/pci/drm/drm_pci.c @@ -34,20 +34,6 @@ /** \name PCI memory */ /*@{*/ -#if defined(__FreeBSD__) -static void -drm_pci_busdma_callback(void *arg, bus_dma_segment_t *segs, int nsegs, int error) -{ - drm_dma_handle_t *dmah = arg; - - if (error != 0) - return; - - KASSERT(nsegs == 1, ("drm_pci_busdma_callback: bad dma segment count")); - dmah->busaddr = segs[0].ds_addr; -} -#endif - /** * \brief Allocate a physically contiguous DMA-accessible consistent * memory block. @@ -56,10 +42,7 @@ drm_dma_handle_t * drm_pci_alloc(drm_device_t *dev, size_t size, size_t align, dma_addr_t maxaddr) { drm_dma_handle_t *dmah; - int ret; -#if defined(__NetBSD__) || defined(__OpenBSD__) - int nsegs; -#endif + int ret, nsegs; /* Need power-of-two alignment, so fail the allocation if it isn't. */ if ((align & (align - 1)) != 0) { @@ -72,37 +55,6 @@ drm_pci_alloc(drm_device_t *dev, size_t size, size_t align, dma_addr_t maxaddr) if (dmah == NULL) return NULL; -#ifdef __FreeBSD__ - ret = bus_dma_tag_create(NULL, align, 0, /* tag, align, boundary */ - maxaddr, BUS_SPACE_MAXADDR, /* lowaddr, highaddr */ - NULL, NULL, /* filtfunc, filtfuncargs */ - size, 1, size, /* maxsize, nsegs, maxsegsize */ - BUS_DMA_ALLOCNOW, NULL, NULL, /* flags, lockfunc, lockfuncargs */ - &dmah->tag); - if (ret != 0) { - free(dmah, M_DRM); - return NULL; - } - - ret = bus_dmamem_alloc(dmah->tag, &dmah->vaddr, BUS_DMA_NOWAIT, - &dmah->map); - if (ret != 0) { - bus_dma_tag_destroy(dmah->tag); - free(dmah, M_DRM); - return NULL; - } - - ret = bus_dmamap_load(dmah->tag, dmah->map, dmah->vaddr, size, - drm_pci_busdma_callback, dmah, 0); - if (ret != 0) { - bus_dmamem_free(dmah->tag, dmah->vaddr, dmah->map); - bus_dma_tag_destroy(dmah->tag); - free(dmah, M_DRM); - return NULL; - } - - return dmah; -#elif defined(__NetBSD__) || defined(__OpenBSD__) if (bus_dmamap_create(dev->pa.pa_dmat, size, 1, size, 0, BUS_DMA_NOWAIT | BUS_DMA_ALLOCNOW, &dmah->dmamap) != 0) goto dmahfree; @@ -145,7 +97,6 @@ dmahfree: free(dmah, M_DRM); return (NULL); -#endif } @@ -158,15 +109,10 @@ drm_pci_free(drm_device_t *dev, drm_dma_handle_t *dmah) if (dmah == NULL) return; -#if defined(__FreeBSD__) - bus_dmamem_free(dmah->tag, dmah->vaddr, dmah->map); - bus_dma_tag_destroy(dmah->tag); -#elif defined(__NetBSD__) || defined(__OpenBSD__) bus_dmamap_unload(dev->pa.pa_dmat, dmah->dmamap); bus_dmamem_unmap(dev->pa.pa_dmat, dmah->vaddr, dmah->size); bus_dmamem_free(dev->pa.pa_dmat, &dmah->seg, 1); bus_dmamap_destroy(dev->pa.pa_dmat, dmah->dmamap); -#endif free(dmah, M_DRM); } |