Source
32
32
#include <linux/acpi.h>
33
33
#include <linux/acpi_iort.h>
34
34
#include <linux/atomic.h>
35
35
#include <linux/delay.h>
36
36
#include <linux/dma-iommu.h>
37
37
#include <linux/dma-mapping.h>
38
38
#include <linux/err.h>
39
39
#include <linux/interrupt.h>
40
40
#include <linux/io.h>
41
41
#include <linux/io-64-nonatomic-hi-lo.h>
42
+
#include <linux/io-pgtable.h>
42
43
#include <linux/iommu.h>
43
44
#include <linux/iopoll.h>
44
45
#include <linux/init.h>
45
46
#include <linux/moduleparam.h>
46
47
#include <linux/of.h>
47
48
#include <linux/of_address.h>
48
49
#include <linux/of_device.h>
49
50
#include <linux/of_iommu.h>
50
51
#include <linux/pci.h>
51
52
#include <linux/platform_device.h>
52
53
#include <linux/pm_runtime.h>
53
54
#include <linux/slab.h>
54
55
#include <linux/spinlock.h>
55
56
56
57
#include <linux/amba/bus.h>
57
58
#include <linux/fsl/mc.h>
58
59
59
-
#include "io-pgtable.h"
60
60
#include "arm-smmu-regs.h"
61
61
62
62
#define ARM_MMU500_ACTLR_CPRE (1 << 1)
63
63
64
64
#define ARM_MMU500_ACR_CACHE_LOCK (1 << 26)
65
65
#define ARM_MMU500_ACR_S2CRB_TLBEN (1 << 10)
66
66
#define ARM_MMU500_ACR_SMTNMB_TLBEN (1 << 8)
67
67
68
68
#define TLB_LOOP_TIMEOUT 1000000 /* 1s! */
69
69
#define TLB_SPIN_COUNT 10