@@ -66,6 +66,7 @@ struct mxc_gpio_port {
66
66
int irq_high ;
67
67
struct irq_domain * domain ;
68
68
struct gpio_chip gc ;
69
+ struct device * dev ;
69
70
u32 both_edges ;
70
71
};
71
72
@@ -345,9 +346,10 @@ static int mxc_gpio_init_gc(struct mxc_gpio_port *port, int irq_base)
345
346
{
346
347
struct irq_chip_generic * gc ;
347
348
struct irq_chip_type * ct ;
349
+ int rv ;
348
350
349
- gc = irq_alloc_generic_chip ( "gpio-mxc" , 1 , irq_base ,
350
- port -> base , handle_level_irq );
351
+ gc = devm_irq_alloc_generic_chip ( port -> dev , "gpio-mxc" , 1 , irq_base ,
352
+ port -> base , handle_level_irq );
351
353
if (!gc )
352
354
return - ENOMEM ;
353
355
gc -> private = port ;
@@ -362,10 +364,11 @@ static int mxc_gpio_init_gc(struct mxc_gpio_port *port, int irq_base)
362
364
ct -> regs .ack = GPIO_ISR ;
363
365
ct -> regs .mask = GPIO_IMR ;
364
366
365
- irq_setup_generic_chip (gc , IRQ_MSK (32 ), IRQ_GC_INIT_NESTED_LOCK ,
366
- IRQ_NOREQUEST , 0 );
367
+ rv = devm_irq_setup_generic_chip (port -> dev , gc , IRQ_MSK (32 ),
368
+ IRQ_GC_INIT_NESTED_LOCK ,
369
+ IRQ_NOREQUEST , 0 );
367
370
368
- return 0 ;
371
+ return rv ;
369
372
}
370
373
371
374
static void mxc_gpio_get_hw (struct platform_device * pdev )
@@ -419,6 +422,8 @@ static int mxc_gpio_probe(struct platform_device *pdev)
419
422
if (!port )
420
423
return - ENOMEM ;
421
424
425
+ port -> dev = & pdev -> dev ;
426
+
422
427
iores = platform_get_resource (pdev , IORESOURCE_MEM , 0 );
423
428
port -> base = devm_ioremap_resource (& pdev -> dev , iores );
424
429
if (IS_ERR (port -> base ))
0 commit comments