@@ -30,72 +30,202 @@ static void write_csr_ring_tail(void __iomem *csr_base_addr, u32 bank, u32 ring,
30
30
WRITE_CSR_RING_TAIL (csr_base_addr , bank , ring , value );
31
31
}
32
32
33
+ static u32 read_csr_stat (void __iomem * csr_base_addr , u32 bank )
34
+ {
35
+ return READ_CSR_STAT (csr_base_addr , bank );
36
+ }
37
+
38
+ static u32 read_csr_uo_stat (void __iomem * csr_base_addr , u32 bank )
39
+ {
40
+ return READ_CSR_UO_STAT (csr_base_addr , bank );
41
+ }
42
+
33
43
static u32 read_csr_e_stat (void __iomem * csr_base_addr , u32 bank )
34
44
{
35
45
return READ_CSR_E_STAT (csr_base_addr , bank );
36
46
}
37
47
48
+ static u32 read_csr_ne_stat (void __iomem * csr_base_addr , u32 bank )
49
+ {
50
+ return READ_CSR_NE_STAT (csr_base_addr , bank );
51
+ }
52
+
53
+ static u32 read_csr_nf_stat (void __iomem * csr_base_addr , u32 bank )
54
+ {
55
+ return READ_CSR_NF_STAT (csr_base_addr , bank );
56
+ }
57
+
58
+ static u32 read_csr_f_stat (void __iomem * csr_base_addr , u32 bank )
59
+ {
60
+ return READ_CSR_F_STAT (csr_base_addr , bank );
61
+ }
62
+
63
+ static u32 read_csr_c_stat (void __iomem * csr_base_addr , u32 bank )
64
+ {
65
+ return READ_CSR_C_STAT (csr_base_addr , bank );
66
+ }
67
+
68
+ static u32 read_csr_exp_stat (void __iomem * csr_base_addr , u32 bank )
69
+ {
70
+ return READ_CSR_EXP_STAT (csr_base_addr , bank );
71
+ }
72
+
73
+ static u32 read_csr_exp_int_en (void __iomem * csr_base_addr , u32 bank )
74
+ {
75
+ return READ_CSR_EXP_INT_EN (csr_base_addr , bank );
76
+ }
77
+
78
+ static void write_csr_exp_int_en (void __iomem * csr_base_addr , u32 bank ,
79
+ u32 value )
80
+ {
81
+ WRITE_CSR_EXP_INT_EN (csr_base_addr , bank , value );
82
+ }
83
+
84
+ static u32 read_csr_ring_config (void __iomem * csr_base_addr , u32 bank ,
85
+ u32 ring )
86
+ {
87
+ return READ_CSR_RING_CONFIG (csr_base_addr , bank , ring );
88
+ }
89
+
38
90
static void write_csr_ring_config (void __iomem * csr_base_addr , u32 bank , u32 ring ,
39
91
u32 value )
40
92
{
41
93
WRITE_CSR_RING_CONFIG (csr_base_addr , bank , ring , value );
42
94
}
43
95
96
+ static dma_addr_t read_csr_ring_base (void __iomem * csr_base_addr , u32 bank ,
97
+ u32 ring )
98
+ {
99
+ return READ_CSR_RING_BASE (csr_base_addr , bank , ring );
100
+ }
101
+
44
102
static void write_csr_ring_base (void __iomem * csr_base_addr , u32 bank , u32 ring ,
45
103
dma_addr_t addr )
46
104
{
47
105
WRITE_CSR_RING_BASE (csr_base_addr , bank , ring , addr );
48
106
}
49
107
108
+ static u32 read_csr_int_en (void __iomem * csr_base_addr , u32 bank )
109
+ {
110
+ return READ_CSR_INT_EN (csr_base_addr , bank );
111
+ }
112
+
113
+ static void write_csr_int_en (void __iomem * csr_base_addr , u32 bank , u32 value )
114
+ {
115
+ WRITE_CSR_INT_EN (csr_base_addr , bank , value );
116
+ }
117
+
118
+ static u32 read_csr_int_flag (void __iomem * csr_base_addr , u32 bank )
119
+ {
120
+ return READ_CSR_INT_FLAG (csr_base_addr , bank );
121
+ }
122
+
50
123
static void write_csr_int_flag (void __iomem * csr_base_addr , u32 bank ,
51
124
u32 value )
52
125
{
53
126
WRITE_CSR_INT_FLAG (csr_base_addr , bank , value );
54
127
}
55
128
129
+ static u32 read_csr_int_srcsel (void __iomem * csr_base_addr , u32 bank )
130
+ {
131
+ return READ_CSR_INT_SRCSEL (csr_base_addr , bank );
132
+ }
133
+
56
134
static void write_csr_int_srcsel (void __iomem * csr_base_addr , u32 bank )
57
135
{
58
136
WRITE_CSR_INT_SRCSEL (csr_base_addr , bank );
59
137
}
60
138
139
+ static void write_csr_int_srcsel_w_val (void __iomem * csr_base_addr , u32 bank ,
140
+ u32 value )
141
+ {
142
+ WRITE_CSR_INT_SRCSEL_W_VAL (csr_base_addr , bank , value );
143
+ }
144
+
145
+ static u32 read_csr_int_col_en (void __iomem * csr_base_addr , u32 bank )
146
+ {
147
+ return READ_CSR_INT_COL_EN (csr_base_addr , bank );
148
+ }
149
+
61
150
static void write_csr_int_col_en (void __iomem * csr_base_addr , u32 bank , u32 value )
62
151
{
63
152
WRITE_CSR_INT_COL_EN (csr_base_addr , bank , value );
64
153
}
65
154
155
+ static u32 read_csr_int_col_ctl (void __iomem * csr_base_addr , u32 bank )
156
+ {
157
+ return READ_CSR_INT_COL_CTL (csr_base_addr , bank );
158
+ }
159
+
66
160
static void write_csr_int_col_ctl (void __iomem * csr_base_addr , u32 bank ,
67
161
u32 value )
68
162
{
69
163
WRITE_CSR_INT_COL_CTL (csr_base_addr , bank , value );
70
164
}
71
165
166
+ static u32 read_csr_int_flag_and_col (void __iomem * csr_base_addr , u32 bank )
167
+ {
168
+ return READ_CSR_INT_FLAG_AND_COL (csr_base_addr , bank );
169
+ }
170
+
72
171
static void write_csr_int_flag_and_col (void __iomem * csr_base_addr , u32 bank ,
73
172
u32 value )
74
173
{
75
174
WRITE_CSR_INT_FLAG_AND_COL (csr_base_addr , bank , value );
76
175
}
77
176
177
+ static u32 read_csr_ring_srv_arb_en (void __iomem * csr_base_addr , u32 bank )
178
+ {
179
+ return READ_CSR_RING_SRV_ARB_EN (csr_base_addr , bank );
180
+ }
181
+
78
182
static void write_csr_ring_srv_arb_en (void __iomem * csr_base_addr , u32 bank ,
79
183
u32 value )
80
184
{
81
185
WRITE_CSR_RING_SRV_ARB_EN (csr_base_addr , bank , value );
82
186
}
83
187
188
+ static u32 get_int_col_ctl_enable_mask (void )
189
+ {
190
+ return ADF_RING_CSR_INT_COL_CTL_ENABLE ;
191
+ }
192
+
84
193
void adf_gen4_init_hw_csr_ops (struct adf_hw_csr_ops * csr_ops )
85
194
{
86
195
csr_ops -> build_csr_ring_base_addr = build_csr_ring_base_addr ;
87
196
csr_ops -> read_csr_ring_head = read_csr_ring_head ;
88
197
csr_ops -> write_csr_ring_head = write_csr_ring_head ;
89
198
csr_ops -> read_csr_ring_tail = read_csr_ring_tail ;
90
199
csr_ops -> write_csr_ring_tail = write_csr_ring_tail ;
200
+ csr_ops -> read_csr_stat = read_csr_stat ;
201
+ csr_ops -> read_csr_uo_stat = read_csr_uo_stat ;
91
202
csr_ops -> read_csr_e_stat = read_csr_e_stat ;
203
+ csr_ops -> read_csr_ne_stat = read_csr_ne_stat ;
204
+ csr_ops -> read_csr_nf_stat = read_csr_nf_stat ;
205
+ csr_ops -> read_csr_f_stat = read_csr_f_stat ;
206
+ csr_ops -> read_csr_c_stat = read_csr_c_stat ;
207
+ csr_ops -> read_csr_exp_stat = read_csr_exp_stat ;
208
+ csr_ops -> read_csr_exp_int_en = read_csr_exp_int_en ;
209
+ csr_ops -> write_csr_exp_int_en = write_csr_exp_int_en ;
210
+ csr_ops -> read_csr_ring_config = read_csr_ring_config ;
92
211
csr_ops -> write_csr_ring_config = write_csr_ring_config ;
212
+ csr_ops -> read_csr_ring_base = read_csr_ring_base ;
93
213
csr_ops -> write_csr_ring_base = write_csr_ring_base ;
214
+ csr_ops -> read_csr_int_en = read_csr_int_en ;
215
+ csr_ops -> write_csr_int_en = write_csr_int_en ;
216
+ csr_ops -> read_csr_int_flag = read_csr_int_flag ;
94
217
csr_ops -> write_csr_int_flag = write_csr_int_flag ;
218
+ csr_ops -> read_csr_int_srcsel = read_csr_int_srcsel ;
95
219
csr_ops -> write_csr_int_srcsel = write_csr_int_srcsel ;
220
+ csr_ops -> write_csr_int_srcsel_w_val = write_csr_int_srcsel_w_val ;
221
+ csr_ops -> read_csr_int_col_en = read_csr_int_col_en ;
96
222
csr_ops -> write_csr_int_col_en = write_csr_int_col_en ;
223
+ csr_ops -> read_csr_int_col_ctl = read_csr_int_col_ctl ;
97
224
csr_ops -> write_csr_int_col_ctl = write_csr_int_col_ctl ;
225
+ csr_ops -> read_csr_int_flag_and_col = read_csr_int_flag_and_col ;
98
226
csr_ops -> write_csr_int_flag_and_col = write_csr_int_flag_and_col ;
227
+ csr_ops -> read_csr_ring_srv_arb_en = read_csr_ring_srv_arb_en ;
99
228
csr_ops -> write_csr_ring_srv_arb_en = write_csr_ring_srv_arb_en ;
229
+ csr_ops -> get_int_col_ctl_enable_mask = get_int_col_ctl_enable_mask ;
100
230
}
101
231
EXPORT_SYMBOL_GPL (adf_gen4_init_hw_csr_ops );
0 commit comments