Each pipe has it's own MMU, so there is no point in pretending to have a single one at the DRM driver level. All MMU management has to happen on a per-pipe level.
Signed-off-by: Lucas Stach <l.stach at pengutronix.de> --- drivers/staging/etnaviv/etnaviv_drv.c | 7 ------- drivers/staging/etnaviv/etnaviv_drv.h | 5 ----- drivers/staging/etnaviv/etnaviv_gpu.c | 1 - 3 files changed, 13 deletions(-) diff --git a/drivers/staging/etnaviv/etnaviv_drv.c b/drivers/staging/etnaviv/etnaviv_drv.c index 30896f9afa1a..25c64319ab34 100644 --- a/drivers/staging/etnaviv/etnaviv_drv.c +++ b/drivers/staging/etnaviv/etnaviv_drv.c @@ -22,13 +22,6 @@ #include "etnaviv_gpu.h" #include "etnaviv_mmu.h" -void etnaviv_register_mmu(struct drm_device *dev, struct etnaviv_iommu *mmu) -{ - struct etnaviv_drm_private *priv = dev->dev_private; - - priv->mmu = mmu; -} - #ifdef CONFIG_DRM_ETNAVIV_REGISTER_LOGGING static bool reglog; MODULE_PARM_DESC(reglog, "Enable register read/write logging"); diff --git a/drivers/staging/etnaviv/etnaviv_drv.h b/drivers/staging/etnaviv/etnaviv_drv.h index 5c3250b772cc..cf7e6f758dd7 100644 --- a/drivers/staging/etnaviv/etnaviv_drv.h +++ b/drivers/staging/etnaviv/etnaviv_drv.h @@ -61,13 +61,8 @@ struct etnaviv_drm_private { struct list_head inactive_list; struct workqueue_struct *wq; - - /* registered MMUs: */ - struct etnaviv_iommu *mmu; }; -void etnaviv_register_mmu(struct drm_device *dev, struct etnaviv_iommu *mmu); - int etnaviv_wait_fence_interruptable(struct drm_device *dev, struct etnaviv_gpu *gpu, uint32_t fence, struct timespec *timeout); diff --git a/drivers/staging/etnaviv/etnaviv_gpu.c b/drivers/staging/etnaviv/etnaviv_gpu.c index 0a6c702621d8..78955055d2eb 100644 --- a/drivers/staging/etnaviv/etnaviv_gpu.c +++ b/drivers/staging/etnaviv/etnaviv_gpu.c @@ -508,7 +508,6 @@ int etnaviv_gpu_init(struct etnaviv_gpu *gpu) ret = -ENOMEM; goto fail; } - etnaviv_register_mmu(gpu->drm, gpu->mmu); /* Create buffer: */ gpu->buffer = etnaviv_gem_new(gpu->drm, PAGE_SIZE, ETNA_BO_CMDSTREAM); -- 2.1.4