Re: [PATCH] leds: use devm_platform_ioremap_resource_byname()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, Pavel,
> 
> > From: chenqiwu <chenqiwu@xxxxxxxxxx>
> > 
> > Use devm_platform_ioremap_resource_byname() instead of calling
> > platform_get_resource_byname() and devm_ioremap_resource() separately.
> > 
> > Signed-off-by: chenqiwu <chenqiwu@xxxxxxxxxx>
> 
> Was this tested? Can you cc driver authors to get it tested?

I will resend this patch cc driver authors to get it tested.
 
> > index ef22e1e..76af9d8 100644
> > --- a/drivers/leds/leds-cobalt-qube.c
> > +++ b/drivers/leds/leds-cobalt-qube.c
> > @@ -36,15 +36,9 @@ static void qube_front_led_set(struct led_classdev *led_cdev,
> >  
> >  static int cobalt_qube_led_probe(struct platform_device *pdev)
> >  {
> > -	struct resource *res;
> > -
> > -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> > -	if (!res)
> > -		return -EBUSY;
> > -
> > -	led_port = devm_ioremap(&pdev->dev, res->start, resource_size(res));
> > -	if (!led_port)
> > -		return -ENOMEM;
> > +	led_port = devm_platform_ioremap_resource(pdev, 0);
> > +	if (IS_ERR(led_port))
> > +		return PTR_ERR(led_port);
> >  
> >  	led_value = LED_FRONT_LEFT | LED_FRONT_RIGHT;
> >  	writeb(led_value, led_port);
> > diff --git a/drivers/leds/leds-cobalt-raq.c b/drivers/leds/leds-cobalt-raq.c
> > index 045c239..8b1317d 100644
> > --- a/drivers/leds/leds-cobalt-raq.c
> > +++ b/drivers/leds/leds-cobalt-raq.c
> > @@ -65,16 +65,11 @@ static void raq_power_off_led_set(struct led_classdev *led_cdev,
> >  
> >  static int cobalt_raq_led_probe(struct platform_device *pdev)
> >  {
> > -	struct resource *res;
> >  	int retval;
> >  
> > -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> > -	if (!res)
> > -		return -EBUSY;
> > -
> > -	led_port = devm_ioremap(&pdev->dev, res->start, resource_size(res));
> > -	if (!led_port)
> > -		return -ENOMEM;
> > +	led_port = devm_platform_ioremap_resource(pdev, 0);
> > +	if (IS_ERR(led_port))
> > +		return PTR_ERR(led_port);
> >  
> >  	retval = led_classdev_register(&pdev->dev, &raq_power_off_led);
> >  	if (retval)
> > @@ -90,6 +85,7 @@ static int cobalt_raq_led_probe(struct platform_device *pdev)
> >  	led_classdev_unregister(&raq_power_off_led);
> >  
> >  err_null:
> > +	devm_ioremap_release(&pdev->dev, led_port);
> >  	led_port = NULL;
> >  
> >  	return retval;
> 
> How is it that manual devm_ioremap_release() is neccessary here but
> not in the other driver?

Thanks for your remind! This is neccessary for leds-cobalt-qube driver
to apply, too.

BRs,
Qiwu



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux