diff options
Diffstat (limited to 'arch/arm/plat-s5p/include/plat/s5p-sysmmu.h')
-rw-r--r-- | arch/arm/plat-s5p/include/plat/s5p-sysmmu.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/arch/arm/plat-s5p/include/plat/s5p-sysmmu.h b/arch/arm/plat-s5p/include/plat/s5p-sysmmu.h index ad30a976124..05aba312b50 100644 --- a/arch/arm/plat-s5p/include/plat/s5p-sysmmu.h +++ b/arch/arm/plat-s5p/include/plat/s5p-sysmmu.h @@ -40,7 +40,25 @@ enum S5P_SYSMMU_INTERRUPT_TYPE { typedef int (*s5p_sysmmu_fault_handler_t)(enum S5P_SYSMMU_INTERRUPT_TYPE itype, unsigned long pgtable_base, unsigned long fault_addr); +struct sysmmu_drvdata { + struct list_head node; + struct device *dev; + struct device *owner; + void __iomem *sfrbase; + struct clk *clk; + int activations; + rwlock_t lock; + s5p_sysmmu_fault_handler_t fault_handler; + unsigned long version; +}; + #ifdef CONFIG_S5P_SYSTEM_MMU + +struct sysmmu_drvdata *get_sysmmu_data(struct device *owner, + struct sysmmu_drvdata *start); + +struct list_head *get_sysmmu_list(void); + /** * s5p_sysmmu_enable() - enable system mmu * @owner: The device whose System MMU is about to be enabled. @@ -80,6 +98,19 @@ void s5p_sysmmu_set_tablebase_pgd(struct device *owner, unsigned long pgd); */ void s5p_sysmmu_tlb_invalidate(struct device *owner); +/** + * s5p_sysmmu_tlb_invalidate_entry() - flush a TLB entry in system mmu + * @owner: The device whose System MMU. + * @iova: device address to tlb entry to be invalidated. + * @count: entry count. + * + * This function flush all TLB entry in system mmu + */ +void s5p_sysmmu_tlb_invalidate_entry(struct device *owner, + unsigned long iova, + unsigned int count, + unsigned long page_size); + /** s5p_sysmmu_set_fault_handler() - Fault handler for System MMUs * Called when interrupt occurred by the System MMUs * The device drivers of peripheral devices that has a System MMU can implement |