@@ -161,7 +161,7 @@ static struct msi_domain_info odmi_msi_domain_info = {
161
161
static int __init mvebu_odmi_init (struct device_node * node ,
162
162
struct device_node * parent )
163
163
{
164
- struct irq_domain * inner_domain , * plat_domain ;
164
+ struct irq_domain * parent_domain , * inner_domain , * plat_domain ;
165
165
int ret , i ;
166
166
167
167
if (of_property_read_u32 (node , "marvell,odmi-frames" , & odmis_count ))
@@ -197,16 +197,17 @@ static int __init mvebu_odmi_init(struct device_node *node,
197
197
}
198
198
}
199
199
200
- inner_domain = irq_domain_create_linear (of_node_to_fwnode (node ),
201
- odmis_count * NODMIS_PER_FRAME ,
202
- & odmi_domain_ops , NULL );
200
+ parent_domain = irq_find_host (parent );
201
+
202
+ inner_domain = irq_domain_create_hierarchy (parent_domain , 0 ,
203
+ odmis_count * NODMIS_PER_FRAME ,
204
+ of_node_to_fwnode (node ),
205
+ & odmi_domain_ops , NULL );
203
206
if (!inner_domain ) {
204
207
ret = - ENOMEM ;
205
208
goto err_unmap ;
206
209
}
207
210
208
- inner_domain -> parent = irq_find_host (parent );
209
-
210
211
plat_domain = platform_msi_create_irq_domain (of_node_to_fwnode (node ),
211
212
& odmi_msi_domain_info ,
212
213
inner_domain );
0 commit comments