Skip to content

Commit 9ca340c

Browse files
Honghui Zhangjoergroedel
authored andcommitted
iommu/mediatek: move the common struct into header file
Move the struct defines of mtk iommu into a new header files for common use. Signed-off-by: Honghui Zhang <[email protected]> Signed-off-by: Joerg Roedel <[email protected]>
1 parent 7e42626 commit 9ca340c

File tree

2 files changed

+78
-47
lines changed

2 files changed

+78
-47
lines changed

drivers/iommu/mtk_iommu.c

Lines changed: 1 addition & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
#include <dt-bindings/memory/mt8173-larb-port.h>
3535
#include <soc/mediatek/smi.h>
3636

37-
#include "io-pgtable.h"
37+
#include "mtk_iommu.h"
3838

3939
#define REG_MMU_PT_BASE_ADDR 0x000
4040

@@ -93,20 +93,6 @@
9393

9494
#define MTK_PROTECT_PA_ALIGN 128
9595

96-
struct mtk_iommu_suspend_reg {
97-
u32 standard_axi_mode;
98-
u32 dcm_dis;
99-
u32 ctrl_reg;
100-
u32 int_control0;
101-
u32 int_main_control;
102-
};
103-
104-
struct mtk_iommu_client_priv {
105-
struct list_head client;
106-
unsigned int mtk_m4u_id;
107-
struct device *m4udev;
108-
};
109-
11096
struct mtk_iommu_domain {
11197
spinlock_t pgtlock; /* lock for page table */
11298

@@ -116,19 +102,6 @@ struct mtk_iommu_domain {
116102
struct iommu_domain domain;
117103
};
118104

119-
struct mtk_iommu_data {
120-
void __iomem *base;
121-
int irq;
122-
struct device *dev;
123-
struct clk *bclk;
124-
phys_addr_t protect_base; /* protect memory base */
125-
struct mtk_iommu_suspend_reg reg;
126-
struct mtk_iommu_domain *m4u_dom;
127-
struct iommu_group *m4u_group;
128-
struct mtk_smi_iommu smi_imu; /* SMI larb iommu info */
129-
bool enable_4GB;
130-
};
131-
132105
static struct iommu_ops mtk_iommu_ops;
133106

134107
static struct mtk_iommu_domain *to_mtk_domain(struct iommu_domain *dom)
@@ -551,25 +524,6 @@ static int mtk_iommu_hw_init(const struct mtk_iommu_data *data)
551524
return 0;
552525
}
553526

554-
static int compare_of(struct device *dev, void *data)
555-
{
556-
return dev->of_node == data;
557-
}
558-
559-
static int mtk_iommu_bind(struct device *dev)
560-
{
561-
struct mtk_iommu_data *data = dev_get_drvdata(dev);
562-
563-
return component_bind_all(dev, &data->smi_imu);
564-
}
565-
566-
static void mtk_iommu_unbind(struct device *dev)
567-
{
568-
struct mtk_iommu_data *data = dev_get_drvdata(dev);
569-
570-
component_unbind_all(dev, &data->smi_imu);
571-
}
572-
573527
static const struct component_master_ops mtk_iommu_com_ops = {
574528
.bind = mtk_iommu_bind,
575529
.unbind = mtk_iommu_unbind,

drivers/iommu/mtk_iommu.h

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
/*
2+
* Copyright (c) 2015-2016 MediaTek Inc.
3+
* Author: Honghui Zhang <[email protected]>
4+
*
5+
* This program is free software; you can redistribute it and/or modify
6+
* it under the terms of the GNU General Public License version 2 as
7+
* published by the Free Software Foundation.
8+
*
9+
* This program is distributed in the hope that it will be useful,
10+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
* GNU General Public License for more details.
13+
*/
14+
15+
#ifndef _MTK_IOMMU_H_
16+
#define _MTK_IOMMU_H_
17+
18+
#include <linux/clk.h>
19+
#include <linux/component.h>
20+
#include <linux/device.h>
21+
#include <linux/io.h>
22+
#include <linux/iommu.h>
23+
#include <linux/list.h>
24+
#include <linux/spinlock.h>
25+
#include <soc/mediatek/smi.h>
26+
27+
#include "io-pgtable.h"
28+
29+
struct mtk_iommu_suspend_reg {
30+
u32 standard_axi_mode;
31+
u32 dcm_dis;
32+
u32 ctrl_reg;
33+
u32 int_control0;
34+
u32 int_main_control;
35+
};
36+
37+
struct mtk_iommu_client_priv {
38+
struct list_head client;
39+
unsigned int mtk_m4u_id;
40+
struct device *m4udev;
41+
};
42+
43+
struct mtk_iommu_domain;
44+
45+
struct mtk_iommu_data {
46+
void __iomem *base;
47+
int irq;
48+
struct device *dev;
49+
struct clk *bclk;
50+
phys_addr_t protect_base; /* protect memory base */
51+
struct mtk_iommu_suspend_reg reg;
52+
struct mtk_iommu_domain *m4u_dom;
53+
struct iommu_group *m4u_group;
54+
struct mtk_smi_iommu smi_imu; /* SMI larb iommu info */
55+
bool enable_4GB;
56+
};
57+
58+
static int compare_of(struct device *dev, void *data)
59+
{
60+
return dev->of_node == data;
61+
}
62+
63+
static int mtk_iommu_bind(struct device *dev)
64+
{
65+
struct mtk_iommu_data *data = dev_get_drvdata(dev);
66+
67+
return component_bind_all(dev, &data->smi_imu);
68+
}
69+
70+
static void mtk_iommu_unbind(struct device *dev)
71+
{
72+
struct mtk_iommu_data *data = dev_get_drvdata(dev);
73+
74+
component_unbind_all(dev, &data->smi_imu);
75+
}
76+
77+
#endif

0 commit comments

Comments
 (0)