Searched refs:ipmmu (Results 1 - 6 of 6) sorted by relevance

/linux-4.1.27/drivers/iommu/
H A Dshmobile-ipmmu.c16 #include "shmobile-ipmmu.h"
27 static void ipmmu_reg_write(struct shmobile_ipmmu *ipmmu, unsigned long reg_off, ipmmu_reg_write() argument
30 iowrite32(data, ipmmu->ipmmu_base + reg_off); ipmmu_reg_write()
33 void ipmmu_tlb_flush(struct shmobile_ipmmu *ipmmu) ipmmu_tlb_flush() argument
35 if (!ipmmu) ipmmu_tlb_flush()
38 spin_lock(&ipmmu->flush_lock); ipmmu_tlb_flush()
39 if (ipmmu->tlb_enabled) ipmmu_tlb_flush()
40 ipmmu_reg_write(ipmmu, IMCTR1, IMCTR1_FLUSH | IMCTR1_TLBEN); ipmmu_tlb_flush()
42 ipmmu_reg_write(ipmmu, IMCTR1, IMCTR1_FLUSH); ipmmu_tlb_flush()
43 spin_unlock(&ipmmu->flush_lock); ipmmu_tlb_flush()
46 void ipmmu_tlb_set(struct shmobile_ipmmu *ipmmu, unsigned long phys, int size, ipmmu_tlb_set() argument
49 if (!ipmmu) ipmmu_tlb_set()
52 spin_lock(&ipmmu->flush_lock); ipmmu_tlb_set()
55 ipmmu->tlb_enabled = 0; ipmmu_tlb_set()
58 ipmmu_reg_write(ipmmu, IMTTBCR, 1); ipmmu_tlb_set()
59 ipmmu->tlb_enabled = 1; ipmmu_tlb_set()
62 ipmmu_reg_write(ipmmu, IMTTBCR, 2); ipmmu_tlb_set()
63 ipmmu->tlb_enabled = 1; ipmmu_tlb_set()
66 ipmmu_reg_write(ipmmu, IMTTBCR, 3); ipmmu_tlb_set()
67 ipmmu->tlb_enabled = 1; ipmmu_tlb_set()
70 ipmmu_reg_write(ipmmu, IMTTBCR, 4); ipmmu_tlb_set()
71 ipmmu->tlb_enabled = 1; ipmmu_tlb_set()
74 ipmmu_reg_write(ipmmu, IMTTBCR, 5); ipmmu_tlb_set()
75 ipmmu->tlb_enabled = 1; ipmmu_tlb_set()
78 ipmmu_reg_write(ipmmu, IMTTBCR, 6); ipmmu_tlb_set()
79 ipmmu->tlb_enabled = 1; ipmmu_tlb_set()
82 ipmmu_reg_write(ipmmu, IMTTBCR, 7); ipmmu_tlb_set()
83 ipmmu->tlb_enabled = 1; ipmmu_tlb_set()
86 ipmmu_reg_write(ipmmu, IMTTBR, phys); ipmmu_tlb_set()
87 ipmmu_reg_write(ipmmu, IMASID, asid); ipmmu_tlb_set()
88 spin_unlock(&ipmmu->flush_lock); ipmmu_tlb_set()
93 struct shmobile_ipmmu *ipmmu; ipmmu_probe() local
97 ipmmu = devm_kzalloc(&pdev->dev, sizeof(*ipmmu), GFP_KERNEL); ipmmu_probe()
98 if (!ipmmu) { ipmmu_probe()
102 spin_lock_init(&ipmmu->flush_lock); ipmmu_probe()
103 ipmmu->dev = &pdev->dev; ipmmu_probe()
106 ipmmu->ipmmu_base = devm_ioremap_resource(&pdev->dev, res); ipmmu_probe()
107 if (IS_ERR(ipmmu->ipmmu_base)) ipmmu_probe()
108 return PTR_ERR(ipmmu->ipmmu_base); ipmmu_probe()
110 ipmmu->dev_names = pdata->dev_names; ipmmu_probe()
111 ipmmu->num_dev_names = pdata->num_dev_names; ipmmu_probe()
112 platform_set_drvdata(pdev, ipmmu); ipmmu_probe()
113 ipmmu_reg_write(ipmmu, IMCTR1, 0x0); /* disable TLB */ ipmmu_probe()
114 ipmmu_reg_write(ipmmu, IMCTR2, 0x0); /* disable PMB */ ipmmu_probe()
115 return ipmmu_iommu_init(ipmmu); ipmmu_probe()
121 .name = "ipmmu",
H A Dshmobile-ipmmu.h1 /* shmobile-ipmmu.h
23 void ipmmu_tlb_flush(struct shmobile_ipmmu *ipmmu);
24 void ipmmu_tlb_set(struct shmobile_ipmmu *ipmmu, unsigned long phys, int size,
26 int ipmmu_iommu_init(struct shmobile_ipmmu *ipmmu);
28 static inline int ipmmu_iommu_init(struct shmobile_ipmmu *ipmmu) ipmmu_iommu_init() argument
H A Dshmobile-iommu.c17 #include "shmobile-ipmmu.h"
37 struct shmobile_ipmmu *ipmmu; member in struct:shmobile_iommu_archdata
142 ipmmu_tlb_set(archdata->ipmmu, sh_domain->l1.handle, L1_SIZE, shmobile_iommu_attach_device()
144 ipmmu_tlb_flush(archdata->ipmmu); shmobile_iommu_attach_device()
169 ipmmu_tlb_set(archdata->ipmmu, 0, 0, 0); shmobile_iommu_detach_device()
170 ipmmu_tlb_flush(archdata->ipmmu); shmobile_iommu_detach_device()
184 ipmmu_tlb_flush(archdata->ipmmu); domain_tlb_flush()
332 static int find_dev_name(struct shmobile_ipmmu *ipmmu, const char *dev_name) find_dev_name() argument
334 unsigned int i, n = ipmmu->num_dev_names; find_dev_name()
337 if (strcmp(ipmmu->dev_names[i], dev_name) == 0) find_dev_name()
348 if (!find_dev_name(archdata->ipmmu, dev_name(dev))) shmobile_iommu_add_device()
377 int ipmmu_iommu_init(struct shmobile_ipmmu *ipmmu) ipmmu_iommu_init() argument
398 archdata->ipmmu = ipmmu; ipmmu_iommu_init()
H A Dipmmu-vmsa.c858 { .compatible = "renesas,ipmmu-vmsa", },
864 .name = "ipmmu-vmsa",
/linux-4.1.27/arch/arm/mach-shmobile/
H A Dsetup-r8a7740.c303 .name = "ipmmu",
H A Dsetup-sh73a0.c588 .name = "ipmmu",

Completed in 98 milliseconds