From: xxm Date: Thu, 31 Jul 2014 03:32:35 +0000 (+0800) Subject: rockchip:iommu:define function use inline instead of #define when iommu disabled X-Git-Tag: firefly_0821_release~4947 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=6da6bf7d785554d35194f5185ff7e03cd95295f0;p=firefly-linux-kernel-4.4.55.git rockchip:iommu:define function use inline instead of #define when iommu disabled --- diff --git a/include/linux/rockchip/iovmm.h b/include/linux/rockchip/iovmm.h index d67454fb74da..6a6bde4d25eb 100755 --- a/include/linux/rockchip/iovmm.h +++ b/include/linux/rockchip/iovmm.h @@ -60,16 +60,15 @@ void iovmm_unmap_oto(struct device *dev, phys_addr_t phys); struct device *rockchip_get_sysmmu_device_by_compatible(const char *compt); - #else -#define iovmm_activate(dev) (-ENOSYS) -#define iovmm_deactivate(dev) do { } while (0) -#define iovmm_map(dev, sg, offset, size) (-ENOSYS) -#define iovmm_unmap(dev, iova) do { } while (0) -#define iovmm_map_oto(dev, phys, size) (-ENOSYS) -#define iovmm_unmap_oto(dev, phys) do { } while (0) -#define rockchip_get_sysmmu_device_by_compatible(compt) (NULL) - +static inline int iovmm_activate(struct device *dev) {return -ENOSYS; } +static inline void iovmm_deactivate(struct device *dev) { } +static inline dma_addr_t iovmm_map(struct device *dev, struct scatterlist *sg, off_t offset, + size_t size) { return -ENOSYS; } +static inline void iovmm_unmap(struct device *dev, dma_addr_t iova) { } +static inline int iovmm_map_oto(struct device *dev, phys_addr_t phys, size_t size) {return -ENOSYS; } +static inline void iovmm_unmap_oto(struct device *dev, phys_addr_t phys) { } +static inline struct device *rockchip_get_sysmmu_device_by_compatible(const char *compt) {return NULL; } #endif /* CONFIG_ROCKCHIP_IOVMM */ #endif /*__ASM_PLAT_IOVMM_H*/ diff --git a/include/linux/rockchip/sysmmu.h b/include/linux/rockchip/sysmmu.h index bb0f60660f1a..93f41c6ee99d 100755 --- a/include/linux/rockchip/sysmmu.h +++ b/include/linux/rockchip/sysmmu.h @@ -41,11 +41,10 @@ struct sysmmu_drvdata; * translated. This is 0 if @itype is SYSMMU_BUSERROR. */ typedef int (*sysmmu_fault_handler_t)(struct device *dev, - enum rk_sysmmu_inttype itype, - unsigned long pgtable_base, - unsigned long fault_addr, - unsigned int statu - ); + enum rk_sysmmu_inttype itype, + unsigned long pgtable_base, + unsigned long fault_addr, + unsigned int statu); #ifdef CONFIG_ROCKCHIP_IOMMU /** @@ -105,11 +104,25 @@ void rockchip_sysmmu_set_prefbuf(struct device *owner, unsigned long base0, unsigned long size0, unsigned long base1, unsigned long size1); #else /* CONFIG_ROCKCHIP_IOMMU */ -#define rockchip_sysmmu_enable(owner, pgd) do { } while (0) -#define rockchip_sysmmu_disable(owner) do { } while (0) -#define rockchip_sysmmu_tlb_invalidate(owner) do { } while (0) -#define rockchip_sysmmu_set_fault_handler(sysmmu, handler) do { } while (0) -#define rockchip_sysmmu_set_prefbuf(owner, b0, s0, b1, s1) do { } while (0) +static inline int rockchip_sysmmu_enable(struct device *owner, unsigned long pgd) +{ + return -ENOSYS; +} +static inline bool rockchip_sysmmu_disable(struct device *owner) +{ + return false; +} +static inline void rockchip_sysmmu_tlb_invalidate(struct device *owner) +{ +} +static inline void rockchip_sysmmu_set_fault_handler(struct device *dev,sysmmu_fault_handler_t handler) +{ +} +static inline void rockchip_sysmmu_set_prefbuf(struct device *owner, + unsigned long base0, unsigned long size0, + unsigned long base1, unsigned long size1) +{ +} #endif #ifdef CONFIG_IOMMU_API @@ -119,7 +132,9 @@ static inline void platform_set_sysmmu(struct device *sysmmu, struct device *dev dev->archdata.iommu = sysmmu; } #else -#define platform_set_sysmmu(dev, sysmmu) do { } while (0) +static inline void platform_set_sysmmu(struct device *sysmmu, struct device *dev) +{ +} #endif #endif /* _ARM_MACH_RK_SYSMMU_H_ */