Re: [PATCH] leds: use devm_platform_ioremap_resource_byname()

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

 



Hi!

> 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?

> 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?

Best regards,
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Attachment: signature.asc
Description: PGP signature


[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