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