Commit b219372d authored by Patrik Jakobsson's avatar Patrik Jakobsson

drm/gma500: Make SGX MMU driver actually do something

Old MMU code never wrote PDs or PTEs to any registers. Now we do, and
that's a good start.
Signed-off-by: default avatarPatrik Jakobsson <patrik.r.jakobsson@gmail.com>
parent 786a7828
This diff is collapsed.
...@@ -347,9 +347,7 @@ static int psb_driver_load(struct drm_device *dev, unsigned long chipset) ...@@ -347,9 +347,7 @@ static int psb_driver_load(struct drm_device *dev, unsigned long chipset)
if (ret) if (ret)
goto out_err; goto out_err;
dev_priv->mmu = psb_mmu_driver_init((void *)0, dev_priv->mmu = psb_mmu_driver_init(dev, drm_psb_trap_pagefaults, 0, 0);
drm_psb_trap_pagefaults, 0,
dev_priv);
if (!dev_priv->mmu) if (!dev_priv->mmu)
goto out_err; goto out_err;
......
...@@ -727,10 +727,10 @@ static inline struct drm_psb_private *psb_priv(struct drm_device *dev) ...@@ -727,10 +727,10 @@ static inline struct drm_psb_private *psb_priv(struct drm_device *dev)
* MMU stuff. * MMU stuff.
*/ */
extern struct psb_mmu_driver *psb_mmu_driver_init(uint8_t __iomem * registers, extern struct psb_mmu_driver *psb_mmu_driver_init(struct drm_device *dev,
int trap_pagefaults, int trap_pagefaults,
int invalid_type, int invalid_type,
struct drm_psb_private *dev_priv); atomic_t *msvdx_mmu_invaldc);
extern void psb_mmu_driver_takedown(struct psb_mmu_driver *driver); extern void psb_mmu_driver_takedown(struct psb_mmu_driver *driver);
extern struct psb_mmu_pd *psb_mmu_get_default_pd(struct psb_mmu_driver extern struct psb_mmu_pd *psb_mmu_get_default_pd(struct psb_mmu_driver
*driver); *driver);
...@@ -740,7 +740,7 @@ extern struct psb_mmu_pd *psb_mmu_alloc_pd(struct psb_mmu_driver *driver, ...@@ -740,7 +740,7 @@ extern struct psb_mmu_pd *psb_mmu_alloc_pd(struct psb_mmu_driver *driver,
int trap_pagefaults, int trap_pagefaults,
int invalid_type); int invalid_type);
extern void psb_mmu_free_pagedir(struct psb_mmu_pd *pd); extern void psb_mmu_free_pagedir(struct psb_mmu_pd *pd);
extern void psb_mmu_flush(struct psb_mmu_driver *driver, int rc_prot); extern void psb_mmu_flush(struct psb_mmu_driver *driver);
extern void psb_mmu_remove_pfn_sequence(struct psb_mmu_pd *pd, extern void psb_mmu_remove_pfn_sequence(struct psb_mmu_pd *pd,
unsigned long address, unsigned long address,
uint32_t num_pages); uint32_t num_pages);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment