* [PATCH 0/5] use devm_ functions
@ 2012-07-31 13:54 Damien Cassou
2012-07-31 13:54 ` [PATCH 5/5] drivers/video/ep93xx-fb.c: " Damien Cassou
` (4 more replies)
0 siblings, 5 replies; 13+ messages in thread
From: Damien Cassou @ 2012-07-31 13:54 UTC (permalink / raw)
To: Florian Tobias Schandinat; +Cc: kernel-janitors, linux-fbdev, linux-kernel
These patches introduce devm_ functions in some video drivers.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 5/5] drivers/video/ep93xx-fb.c: use devm_ functions
2012-07-31 13:54 [PATCH 0/5] use devm_ functions Damien Cassou
@ 2012-07-31 13:54 ` Damien Cassou
2012-08-23 20:35 ` Florian Tobias Schandinat
2012-07-31 13:54 ` [PATCH 4/5] drivers/video/da8xx-fb.c: " Damien Cassou
` (3 subsequent siblings)
4 siblings, 1 reply; 13+ messages in thread
From: Damien Cassou @ 2012-07-31 13:54 UTC (permalink / raw)
To: Florian Tobias Schandinat; +Cc: kernel-janitors, linux-fbdev, linux-kernel
From: Damien Cassou <damien.cassou@lifl.fr>
The various devm_ functions allocate memory that is released when a driver
detaches. This patch uses these functions for data that is allocated in
the probe function of a platform device and is only freed in the remove
function.
Signed-off-by: Damien Cassou <damien.cassou@lifl.fr>
---
drivers/video/ep93xx-fb.c | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
diff --git a/drivers/video/ep93xx-fb.c b/drivers/video/ep93xx-fb.c
index 345d962..69c89f2 100644
--- a/drivers/video/ep93xx-fb.c
+++ b/drivers/video/ep93xx-fb.c
@@ -529,7 +529,8 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev)
* any of the framebuffer registers.
*/
fbi->res = res;
- fbi->mmio_base = ioremap(res->start, resource_size(res));
+ fbi->mmio_base = devm_ioremap(&pdev->dev, res->start,
+ resource_size(res));
if (!fbi->mmio_base) {
err = -ENXIO;
goto failed_resource;
@@ -553,20 +554,20 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev)
if (err == 0) {
dev_err(info->dev, "No suitable video mode found\n");
err = -EINVAL;
- goto failed_mode;
+ goto failed_resource;
}
if (mach_info->setup) {
err = mach_info->setup(pdev);
if (err)
- goto failed_mode;
+ goto failed_resource;
}
err = ep93xxfb_check_var(&info->var, info);
if (err)
goto failed_check;
- fbi->clk = clk_get(info->dev, NULL);
+ fbi->clk = devm_clk_get(&pdev->dev, NULL);
if (IS_ERR(fbi->clk)) {
err = PTR_ERR(fbi->clk);
fbi->clk = NULL;
@@ -578,19 +579,15 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev)
err = register_framebuffer(info);
if (err)
- goto failed;
+ goto failed_check;
dev_info(info->dev, "registered. Mode = %dx%d-%d\n",
info->var.xres, info->var.yres, info->var.bits_per_pixel);
return 0;
-failed:
- clk_put(fbi->clk);
failed_check:
if (fbi->mach_info->teardown)
fbi->mach_info->teardown(pdev);
-failed_mode:
- iounmap(fbi->mmio_base);
failed_resource:
ep93xxfb_dealloc_videomem(info);
failed_videomem:
@@ -609,8 +606,6 @@ static int __devexit ep93xxfb_remove(struct platform_device *pdev)
unregister_framebuffer(info);
clk_disable(fbi->clk);
- clk_put(fbi->clk);
- iounmap(fbi->mmio_base);
ep93xxfb_dealloc_videomem(info);
fb_dealloc_cmap(&info->cmap);
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 4/5] drivers/video/da8xx-fb.c: use devm_ functions
2012-07-31 13:54 [PATCH 0/5] use devm_ functions Damien Cassou
2012-07-31 13:54 ` [PATCH 5/5] drivers/video/ep93xx-fb.c: " Damien Cassou
@ 2012-07-31 13:54 ` Damien Cassou
2012-07-31 15:47 ` Sachin Kamat
2012-07-31 13:54 ` [PATCH 3/5] drivers/video/cobalt_lcdfb.c: " Damien Cassou
` (2 subsequent siblings)
4 siblings, 1 reply; 13+ messages in thread
From: Damien Cassou @ 2012-07-31 13:54 UTC (permalink / raw)
To: Florian Tobias Schandinat; +Cc: kernel-janitors, linux-fbdev, linux-kernel
From: Damien Cassou <damien.cassou@lifl.fr>
The various devm_ functions allocate memory that is released when a driver
detaches. This patch uses these functions for data that is allocated in
the probe function of a platform device and is only freed in the remove
function.
Signed-off-by: Damien Cassou <damien.cassou@lifl.fr>
---
drivers/video/da8xx-fb.c | 34 ++++++++--------------------------
1 file changed, 8 insertions(+), 26 deletions(-)
diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
index 7ae9d53..0429431 100644
--- a/drivers/video/da8xx-fb.c
+++ b/drivers/video/da8xx-fb.c
@@ -947,12 +947,9 @@ static int __devexit fb_remove(struct platform_device *dev)
par->p_palette_base);
dma_free_coherent(NULL, par->vram_size, par->vram_virt,
par->vram_phys);
- free_irq(par->irq, par);
clk_disable(par->lcdc_clk);
clk_put(par->lcdc_clk);
framebuffer_release(info);
- iounmap((void __iomem *)da8xx_fb_reg_base);
- release_mem_region(lcdc_regs->start, resource_size(lcdc_regs));
}
return 0;
@@ -1149,7 +1146,7 @@ static int __devinit fb_probe(struct platform_device *device)
struct fb_info *da8xx_fb_info;
struct clk *fb_clk = NULL;
struct da8xx_fb_par *par;
- resource_size_t len;
+
int ret, i;
unsigned long ulcm;
@@ -1159,29 +1156,20 @@ static int __devinit fb_probe(struct platform_device *device)
}
lcdc_regs = platform_get_resource(device, IORESOURCE_MEM, 0);
- if (!lcdc_regs) {
- dev_err(&device->dev,
- "Can not get memory resource for LCD controller\n");
- return -ENOENT;
- }
-
- len = resource_size(lcdc_regs);
- lcdc_regs = request_mem_region(lcdc_regs->start, len, lcdc_regs->name);
- if (!lcdc_regs)
- return -EBUSY;
-
- da8xx_fb_reg_base = (resource_size_t)ioremap(lcdc_regs->start, len);
+ da8xx_fb_reg_base =
+ (resource_size_t) devm_request_and_ioremap(&device->dev,
+ lcdc_regs);
if (!da8xx_fb_reg_base) {
ret = -EBUSY;
- goto err_request_mem;
+ return ret;
}
fb_clk = clk_get(&device->dev, NULL);
if (IS_ERR(fb_clk)) {
dev_err(&device->dev, "Can not get device clock\n");
ret = -ENODEV;
- goto err_ioremap;
+ return ret;
}
ret = clk_enable(fb_clk);
if (ret)
@@ -1359,8 +1347,8 @@ static int __devinit fb_probe(struct platform_device *device)
else
lcdc_irq_handler = lcdc_irq_handler_rev02;
- ret = request_irq(par->irq, lcdc_irq_handler, 0,
- DRIVER_NAME, par);
+ ret = devm_request_irq(&device->dev, par->irq, lcdc_irq_handler, 0,
+ DRIVER_NAME, par);
if (ret)
goto irq_freq;
return 0;
@@ -1391,12 +1379,6 @@ err_clk_disable:
err_clk_put:
clk_put(fb_clk);
-err_ioremap:
- iounmap((void __iomem *)da8xx_fb_reg_base);
-
-err_request_mem:
- release_mem_region(lcdc_regs->start, len);
-
return ret;
}
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 3/5] drivers/video/cobalt_lcdfb.c: use devm_ functions
2012-07-31 13:54 [PATCH 0/5] use devm_ functions Damien Cassou
2012-07-31 13:54 ` [PATCH 5/5] drivers/video/ep93xx-fb.c: " Damien Cassou
2012-07-31 13:54 ` [PATCH 4/5] drivers/video/da8xx-fb.c: " Damien Cassou
@ 2012-07-31 13:54 ` Damien Cassou
2012-08-23 20:36 ` Florian Tobias Schandinat
2012-07-31 13:54 ` [PATCH 2/5] drivers/video/bfin-t350mcqb-fb.c: " Damien Cassou
2012-07-31 13:54 ` [PATCH 1/5] drivers/video/bf537-lq035.c: " Damien Cassou
4 siblings, 1 reply; 13+ messages in thread
From: Damien Cassou @ 2012-07-31 13:54 UTC (permalink / raw)
To: Florian Tobias Schandinat; +Cc: kernel-janitors, linux-fbdev, linux-kernel
From: Damien Cassou <damien.cassou@lifl.fr>
The various devm_ functions allocate memory that is released when a driver
detaches. This patch uses these functions for data that is allocated in
the probe function of a platform device and is only freed in the remove
function.
Signed-off-by: Damien Cassou <damien.cassou@lifl.fr>
---
drivers/video/cobalt_lcdfb.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/video/cobalt_lcdfb.c b/drivers/video/cobalt_lcdfb.c
index eae46f6..01a4ee7 100644
--- a/drivers/video/cobalt_lcdfb.c
+++ b/drivers/video/cobalt_lcdfb.c
@@ -348,7 +348,8 @@ static int __devinit cobalt_lcdfb_probe(struct platform_device *dev)
}
info->screen_size = resource_size(res);
- info->screen_base = ioremap(res->start, info->screen_size);
+ info->screen_base = devm_ioremap(&dev->dev, res->start,
+ info->screen_size);
info->fbops = &cobalt_lcd_fbops;
info->fix = cobalt_lcdfb_fix;
info->fix.smem_start = res->start;
@@ -359,7 +360,6 @@ static int __devinit cobalt_lcdfb_probe(struct platform_device *dev)
retval = register_framebuffer(info);
if (retval < 0) {
- iounmap(info->screen_base);
framebuffer_release(info);
return retval;
}
@@ -380,7 +380,6 @@ static int __devexit cobalt_lcdfb_remove(struct platform_device *dev)
info = platform_get_drvdata(dev);
if (info) {
- iounmap(info->screen_base);
unregister_framebuffer(info);
framebuffer_release(info);
}
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 2/5] drivers/video/bfin-t350mcqb-fb.c: use devm_ functions
2012-07-31 13:54 [PATCH 0/5] use devm_ functions Damien Cassou
` (2 preceding siblings ...)
2012-07-31 13:54 ` [PATCH 3/5] drivers/video/cobalt_lcdfb.c: " Damien Cassou
@ 2012-07-31 13:54 ` Damien Cassou
2012-07-31 13:57 ` Mike Frysinger
2012-07-31 13:54 ` [PATCH 1/5] drivers/video/bf537-lq035.c: " Damien Cassou
4 siblings, 1 reply; 13+ messages in thread
From: Damien Cassou @ 2012-07-31 13:54 UTC (permalink / raw)
To: Florian Tobias Schandinat; +Cc: kernel-janitors, linux-fbdev, linux-kernel
From: Damien Cassou <damien.cassou@lifl.fr>
The various devm_ functions allocate memory that is released when a driver
detaches. This patch uses these functions for data that is allocated in
the probe function of a platform device and is only freed in the remove
function.
Signed-off-by: Damien Cassou <damien.cassou@lifl.fr>
---
drivers/video/bfin-t350mcqb-fb.c | 28 +++++++++-------------------
1 file changed, 9 insertions(+), 19 deletions(-)
diff --git a/drivers/video/bfin-t350mcqb-fb.c b/drivers/video/bfin-t350mcqb-fb.c
index 7a0c05f..43e0d1b 100644
--- a/drivers/video/bfin-t350mcqb-fb.c
+++ b/drivers/video/bfin-t350mcqb-fb.c
@@ -490,9 +490,10 @@ static int __devinit bfin_t350mcqb_probe(struct platform_device *pdev)
fbinfo->fbops = &bfin_t350mcqb_fb_ops;
fbinfo->flags = FBINFO_FLAG_DEFAULT;
- info->fb_buffer = dma_alloc_coherent(NULL, fbinfo->fix.smem_len +
- ACTIVE_VIDEO_MEM_OFFSET,
- &info->dma_handle, GFP_KERNEL);
+ info->fb_buffer = dmam_alloc_coherent(&pdev->dev, NULL,
+ fbinfo->fix.smem_len +
+ ACTIVE_VIDEO_MEM_OFFSET,
+ &info->dma_handle, GFP_KERNEL);
if (NULL == info->fb_buffer) {
printk(KERN_ERR DRIVER_NAME
@@ -514,7 +515,7 @@ static int __devinit bfin_t350mcqb_probe(struct platform_device *pdev)
"Fail to allocate colormap (%d entries)\n",
BFIN_LCD_NBR_PALETTE_ENTRIES);
ret = -EFAULT;
- goto out4;
+ goto out3;
}
if (bfin_t350mcqb_request_ports(1)) {
@@ -529,8 +530,8 @@ static int __devinit bfin_t350mcqb_probe(struct platform_device *pdev)
goto out7;
}
- ret = request_irq(info->irq, bfin_t350mcqb_irq_error, 0,
- "PPI ERROR", info);
+ ret = devm_request_irq(&pdev->dev, info->irq, bfin_t350mcqb_irq_error,
+ 0, "PPI ERROR", info);
if (ret < 0) {
printk(KERN_ERR DRIVER_NAME
": unable to request PPI ERROR IRQ\n");
@@ -541,7 +542,7 @@ static int __devinit bfin_t350mcqb_probe(struct platform_device *pdev)
printk(KERN_ERR DRIVER_NAME
": unable to register framebuffer.\n");
ret = -EINVAL;
- goto out8;
+ goto out7;
}
#ifndef NO_BL_SUPPORT
memset(&props, 0, sizeof(struct backlight_properties));
@@ -554,7 +555,7 @@ static int __devinit bfin_t350mcqb_probe(struct platform_device *pdev)
": unable to register backlight.\n");
ret = -EINVAL;
unregister_framebuffer(fbinfo);
- goto out8;
+ goto out7;
}
lcd_dev = lcd_device_register(DRIVER_NAME, NULL, &bfin_lcd_ops);
@@ -563,15 +564,10 @@ static int __devinit bfin_t350mcqb_probe(struct platform_device *pdev)
return 0;
-out8:
- free_irq(info->irq, info);
out7:
bfin_t350mcqb_request_ports(0);
out6:
fb_dealloc_cmap(&fbinfo->cmap);
-out4:
- dma_free_coherent(NULL, fbinfo->fix.smem_len + ACTIVE_VIDEO_MEM_OFFSET,
- info->fb_buffer, info->dma_handle);
out3:
framebuffer_release(fbinfo);
out2:
@@ -591,12 +587,6 @@ static int __devexit bfin_t350mcqb_remove(struct platform_device *pdev)
unregister_framebuffer(fbinfo);
free_dma(CH_PPI);
- free_irq(info->irq, info);
-
- if (info->fb_buffer != NULL)
- dma_free_coherent(NULL, fbinfo->fix.smem_len +
- ACTIVE_VIDEO_MEM_OFFSET, info->fb_buffer,
- info->dma_handle);
fb_dealloc_cmap(&fbinfo->cmap);
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 1/5] drivers/video/bf537-lq035.c: use devm_ functions
2012-07-31 13:54 [PATCH 0/5] use devm_ functions Damien Cassou
` (3 preceding siblings ...)
2012-07-31 13:54 ` [PATCH 2/5] drivers/video/bfin-t350mcqb-fb.c: " Damien Cassou
@ 2012-07-31 13:54 ` Damien Cassou
2012-08-23 20:36 ` Florian Tobias Schandinat
4 siblings, 1 reply; 13+ messages in thread
From: Damien Cassou @ 2012-07-31 13:54 UTC (permalink / raw)
To: Florian Tobias Schandinat; +Cc: kernel-janitors, linux-fbdev, linux-kernel
From: Damien Cassou <damien.cassou@lifl.fr>
The various devm_ functions allocate memory that is released when a driver
detaches. This patch uses these functions for data that is allocated in
the probe function of a platform device and is only freed in the remove
function.
Signed-off-by: Damien Cassou <damien.cassou@lifl.fr>
---
drivers/video/bf537-lq035.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/video/bf537-lq035.c b/drivers/video/bf537-lq035.c
index befbc80..7347aa1 100644
--- a/drivers/video/bf537-lq035.c
+++ b/drivers/video/bf537-lq035.c
@@ -760,18 +760,20 @@ static int __devinit bfin_lq035_probe(struct platform_device *pdev)
bfin_lq035_fb.flags = FBINFO_DEFAULT;
- bfin_lq035_fb.pseudo_palette = kzalloc(sizeof(u32) * 16, GFP_KERNEL);
+ bfin_lq035_fb.pseudo_palette = devm_kzalloc(&pdev->dev,
+ sizeof(u32) * 16,
+ GFP_KERNEL);
if (bfin_lq035_fb.pseudo_palette == NULL) {
pr_err("failed to allocate pseudo_palette\n");
ret = -ENOMEM;
- goto out_palette;
+ goto out_table;
}
if (fb_alloc_cmap(&bfin_lq035_fb.cmap, NBR_PALETTE, 0) < 0) {
pr_err("failed to allocate colormap (%d entries)\n",
NBR_PALETTE);
ret = -EFAULT;
- goto out_cmap;
+ goto out_table;
}
if (register_framebuffer(&bfin_lq035_fb) < 0) {
@@ -804,9 +806,6 @@ out_lcd:
unregister_framebuffer(&bfin_lq035_fb);
out_reg:
fb_dealloc_cmap(&bfin_lq035_fb.cmap);
-out_cmap:
- kfree(bfin_lq035_fb.pseudo_palette);
-out_palette:
out_table:
dma_free_coherent(NULL, TOTAL_VIDEO_MEM_SIZE, fb_buffer, 0);
fb_buffer = NULL;
@@ -834,7 +833,6 @@ static int __devexit bfin_lq035_remove(struct platform_device *pdev)
free_dma(CH_PPI);
- kfree(bfin_lq035_fb.pseudo_palette);
fb_dealloc_cmap(&bfin_lq035_fb.cmap);
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/5] drivers/video/bfin-t350mcqb-fb.c: use devm_ functions
2012-07-31 13:54 ` [PATCH 2/5] drivers/video/bfin-t350mcqb-fb.c: " Damien Cassou
@ 2012-07-31 13:57 ` Mike Frysinger
2012-07-31 16:18 ` Damien Cassou
0 siblings, 1 reply; 13+ messages in thread
From: Mike Frysinger @ 2012-07-31 13:57 UTC (permalink / raw)
To: Damien Cassou
Cc: Florian Tobias Schandinat, kernel-janitors, linux-fbdev, linux-kernel
On Tue, Jul 31, 2012 at 9:54 AM, Damien Cassou <damien.cassou@lifl.fr> wrote:
> The various devm_ functions allocate memory that is released when a driver
> detaches. This patch uses these functions for data that is allocated in
> the probe function of a platform device and is only freed in the remove
> function.
Acked-by: Mike Frysinger <vapier@gentoo.org>
-mike
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 4/5] drivers/video/da8xx-fb.c: use devm_ functions
2012-07-31 13:54 ` [PATCH 4/5] drivers/video/da8xx-fb.c: " Damien Cassou
@ 2012-07-31 15:47 ` Sachin Kamat
2012-07-31 16:01 ` Damien Cassou
0 siblings, 1 reply; 13+ messages in thread
From: Sachin Kamat @ 2012-07-31 15:47 UTC (permalink / raw)
To: Damien Cassou
Cc: Florian Tobias Schandinat, kernel-janitors, linux-fbdev, linux-kernel
On 31 July 2012 19:24, Damien Cassou <damien.cassou@lifl.fr> wrote:
> From: Damien Cassou <damien.cassou@lifl.fr>
>
> The various devm_ functions allocate memory that is released when a driver
> detaches. This patch uses these functions for data that is allocated in
> the probe function of a platform device and is only freed in the remove
> function.
>
> Signed-off-by: Damien Cassou <damien.cassou@lifl.fr>
>
> ---
> drivers/video/da8xx-fb.c | 34 ++++++++--------------------------
> 1 file changed, 8 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
> index 7ae9d53..0429431 100644
> --- a/drivers/video/da8xx-fb.c
> +++ b/drivers/video/da8xx-fb.c
> @@ -947,12 +947,9 @@ static int __devexit fb_remove(struct platform_device *dev)
> par->p_palette_base);
> dma_free_coherent(NULL, par->vram_size, par->vram_virt,
> par->vram_phys);
> - free_irq(par->irq, par);
> clk_disable(par->lcdc_clk);
> clk_put(par->lcdc_clk);
> framebuffer_release(info);
> - iounmap((void __iomem *)da8xx_fb_reg_base);
> - release_mem_region(lcdc_regs->start, resource_size(lcdc_regs));
>
> }
> return 0;
> @@ -1149,7 +1146,7 @@ static int __devinit fb_probe(struct platform_device *device)
> struct fb_info *da8xx_fb_info;
> struct clk *fb_clk = NULL;
> struct da8xx_fb_par *par;
> - resource_size_t len;
> +
> int ret, i;
> unsigned long ulcm;
>
> @@ -1159,29 +1156,20 @@ static int __devinit fb_probe(struct platform_device *device)
> }
>
> lcdc_regs = platform_get_resource(device, IORESOURCE_MEM, 0);
> - if (!lcdc_regs) {
> - dev_err(&device->dev,
> - "Can not get memory resource for LCD controller\n");
> - return -ENOENT;
> - }
> -
> - len = resource_size(lcdc_regs);
>
> - lcdc_regs = request_mem_region(lcdc_regs->start, len, lcdc_regs->name);
> - if (!lcdc_regs)
> - return -EBUSY;
> -
> - da8xx_fb_reg_base = (resource_size_t)ioremap(lcdc_regs->start, len);
> + da8xx_fb_reg_base =
> + (resource_size_t) devm_request_and_ioremap(&device->dev,
> + lcdc_regs);
> if (!da8xx_fb_reg_base) {
> ret = -EBUSY;
> - goto err_request_mem;
> + return ret;
You can directly do
return -EBUSY;
and remove the braces.
> }
>
> fb_clk = clk_get(&device->dev, NULL);
> if (IS_ERR(fb_clk)) {
> dev_err(&device->dev, "Can not get device clock\n");
> ret = -ENODEV;
> - goto err_ioremap;
> + return ret;
ditto
> }
> ret = clk_enable(fb_clk);
> if (ret)
> @@ -1359,8 +1347,8 @@ static int __devinit fb_probe(struct platform_device *device)
> else
> lcdc_irq_handler = lcdc_irq_handler_rev02;
>
> - ret = request_irq(par->irq, lcdc_irq_handler, 0,
> - DRIVER_NAME, par);
> + ret = devm_request_irq(&device->dev, par->irq, lcdc_irq_handler, 0,
> + DRIVER_NAME, par);
> if (ret)
> goto irq_freq;
> return 0;
> @@ -1391,12 +1379,6 @@ err_clk_disable:
> err_clk_put:
> clk_put(fb_clk);
>
> -err_ioremap:
> - iounmap((void __iomem *)da8xx_fb_reg_base);
> -
> -err_request_mem:
> - release_mem_region(lcdc_regs->start, len);
> -
> return ret;
> }
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
With warm regards,
Sachin
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 4/5] drivers/video/da8xx-fb.c: use devm_ functions
2012-07-31 15:47 ` Sachin Kamat
@ 2012-07-31 16:01 ` Damien Cassou
0 siblings, 0 replies; 13+ messages in thread
From: Damien Cassou @ 2012-07-31 16:01 UTC (permalink / raw)
To: Sachin Kamat
Cc: Florian Tobias Schandinat, kernel-janitors, linux-fbdev, linux-kernel
The whole patch is incorrect because of:
On Tue, Jul 31, 2012 at 5:47 PM, Sachin Kamat <sachin.kamat@linaro.org> wrote:
>> - ret = request_irq(par->irq, lcdc_irq_handler, 0,
>> - DRIVER_NAME, par);
>> + ret = devm_request_irq(&device->dev, par->irq, lcdc_irq_handler, 0,
>> + DRIVER_NAME, par);
The following message explains why this is problematic:
http://marc.info/?l=kernel-janitors&m=134374464625591&w=2
Please ignore this whole patch altogether.
Sorry about that.
--
Damien Cassou
http://damiencassou.seasidehosting.st
"Lambdas are relegated to relative obscurity until Java makes them
popular by not having them." James Iry
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/5] drivers/video/bfin-t350mcqb-fb.c: use devm_ functions
2012-07-31 13:57 ` Mike Frysinger
@ 2012-07-31 16:18 ` Damien Cassou
0 siblings, 0 replies; 13+ messages in thread
From: Damien Cassou @ 2012-07-31 16:18 UTC (permalink / raw)
To: Mike Frysinger
Cc: Florian Tobias Schandinat, kernel-janitors, linux-fbdev, linux-kernel
On Tue, Jul 31, 2012 at 3:57 PM, Mike Frysinger <vapier@gentoo.org> wrote:
> On Tue, Jul 31, 2012 at 9:54 AM, Damien Cassou <damien.cassou@lifl.fr> wrote:
>> The various devm_ functions allocate memory that is released when a driver
>> detaches. This patch uses these functions for data that is allocated in
>> the probe function of a platform device and is only freed in the remove
>> function.
>
> Acked-by: Mike Frysinger <vapier@gentoo.org>
This whole patch is invalid, because of this part:
- info->fb_buffer = dma_alloc_coherent(NULL, fbinfo->fix.smem_len +
- ACTIVE_VIDEO_MEM_OFFSET,
- &info->dma_handle, GFP_KERNEL);
+ info->fb_buffer = dmam_alloc_coherent(&pdev->dev, NULL,
+ fbinfo->fix.smem_len +
+ ACTIVE_VIDEO_MEM_OFFSET,
+ &info->dma_handle, GFP_KERNEL);
dmam_alloc_coherent() is called with 5 arguments but only accepts 4.
Please ignore this whole patch altogether.
I am sorry about that.
--
Damien Cassou
http://damiencassou.seasidehosting.st
"Lambdas are relegated to relative obscurity until Java makes them
popular by not having them." James Iry
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 5/5] drivers/video/ep93xx-fb.c: use devm_ functions
2012-07-31 13:54 ` [PATCH 5/5] drivers/video/ep93xx-fb.c: " Damien Cassou
@ 2012-08-23 20:35 ` Florian Tobias Schandinat
0 siblings, 0 replies; 13+ messages in thread
From: Florian Tobias Schandinat @ 2012-08-23 20:35 UTC (permalink / raw)
To: Damien Cassou; +Cc: kernel-janitors, linux-fbdev, linux-kernel
On 07/31/2012 01:54 PM, Damien Cassou wrote:
> From: Damien Cassou <damien.cassou@lifl.fr>
>
> The various devm_ functions allocate memory that is released when a driver
> detaches. This patch uses these functions for data that is allocated in
> the probe function of a platform device and is only freed in the remove
> function.
>
> Signed-off-by: Damien Cassou <damien.cassou@lifl.fr>
Applied.
Thanks,
Florian Tobias Schandinat
>
> ---
> drivers/video/ep93xx-fb.c | 17 ++++++-----------
> 1 file changed, 6 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/video/ep93xx-fb.c b/drivers/video/ep93xx-fb.c
> index 345d962..69c89f2 100644
> --- a/drivers/video/ep93xx-fb.c
> +++ b/drivers/video/ep93xx-fb.c
> @@ -529,7 +529,8 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev)
> * any of the framebuffer registers.
> */
> fbi->res = res;
> - fbi->mmio_base = ioremap(res->start, resource_size(res));
> + fbi->mmio_base = devm_ioremap(&pdev->dev, res->start,
> + resource_size(res));
> if (!fbi->mmio_base) {
> err = -ENXIO;
> goto failed_resource;
> @@ -553,20 +554,20 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev)
> if (err == 0) {
> dev_err(info->dev, "No suitable video mode found\n");
> err = -EINVAL;
> - goto failed_mode;
> + goto failed_resource;
> }
>
> if (mach_info->setup) {
> err = mach_info->setup(pdev);
> if (err)
> - goto failed_mode;
> + goto failed_resource;
> }
>
> err = ep93xxfb_check_var(&info->var, info);
> if (err)
> goto failed_check;
>
> - fbi->clk = clk_get(info->dev, NULL);
> + fbi->clk = devm_clk_get(&pdev->dev, NULL);
> if (IS_ERR(fbi->clk)) {
> err = PTR_ERR(fbi->clk);
> fbi->clk = NULL;
> @@ -578,19 +579,15 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev)
>
> err = register_framebuffer(info);
> if (err)
> - goto failed;
> + goto failed_check;
>
> dev_info(info->dev, "registered. Mode = %dx%d-%d\n",
> info->var.xres, info->var.yres, info->var.bits_per_pixel);
> return 0;
>
> -failed:
> - clk_put(fbi->clk);
> failed_check:
> if (fbi->mach_info->teardown)
> fbi->mach_info->teardown(pdev);
> -failed_mode:
> - iounmap(fbi->mmio_base);
> failed_resource:
> ep93xxfb_dealloc_videomem(info);
> failed_videomem:
> @@ -609,8 +606,6 @@ static int __devexit ep93xxfb_remove(struct platform_device *pdev)
>
> unregister_framebuffer(info);
> clk_disable(fbi->clk);
> - clk_put(fbi->clk);
> - iounmap(fbi->mmio_base);
> ep93xxfb_dealloc_videomem(info);
> fb_dealloc_cmap(&info->cmap);
>
>
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/5] drivers/video/cobalt_lcdfb.c: use devm_ functions
2012-07-31 13:54 ` [PATCH 3/5] drivers/video/cobalt_lcdfb.c: " Damien Cassou
@ 2012-08-23 20:36 ` Florian Tobias Schandinat
0 siblings, 0 replies; 13+ messages in thread
From: Florian Tobias Schandinat @ 2012-08-23 20:36 UTC (permalink / raw)
To: Damien Cassou; +Cc: kernel-janitors, linux-fbdev, linux-kernel
On 07/31/2012 01:54 PM, Damien Cassou wrote:
> From: Damien Cassou <damien.cassou@lifl.fr>
>
> The various devm_ functions allocate memory that is released when a driver
> detaches. This patch uses these functions for data that is allocated in
> the probe function of a platform device and is only freed in the remove
> function.
>
> Signed-off-by: Damien Cassou <damien.cassou@lifl.fr>
Applied.
Thanks,
Florian Tobias Schandinat
>
> ---
> drivers/video/cobalt_lcdfb.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/video/cobalt_lcdfb.c b/drivers/video/cobalt_lcdfb.c
> index eae46f6..01a4ee7 100644
> --- a/drivers/video/cobalt_lcdfb.c
> +++ b/drivers/video/cobalt_lcdfb.c
> @@ -348,7 +348,8 @@ static int __devinit cobalt_lcdfb_probe(struct platform_device *dev)
> }
>
> info->screen_size = resource_size(res);
> - info->screen_base = ioremap(res->start, info->screen_size);
> + info->screen_base = devm_ioremap(&dev->dev, res->start,
> + info->screen_size);
> info->fbops = &cobalt_lcd_fbops;
> info->fix = cobalt_lcdfb_fix;
> info->fix.smem_start = res->start;
> @@ -359,7 +360,6 @@ static int __devinit cobalt_lcdfb_probe(struct platform_device *dev)
>
> retval = register_framebuffer(info);
> if (retval < 0) {
> - iounmap(info->screen_base);
> framebuffer_release(info);
> return retval;
> }
> @@ -380,7 +380,6 @@ static int __devexit cobalt_lcdfb_remove(struct platform_device *dev)
>
> info = platform_get_drvdata(dev);
> if (info) {
> - iounmap(info->screen_base);
> unregister_framebuffer(info);
> framebuffer_release(info);
> }
>
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/5] drivers/video/bf537-lq035.c: use devm_ functions
2012-07-31 13:54 ` [PATCH 1/5] drivers/video/bf537-lq035.c: " Damien Cassou
@ 2012-08-23 20:36 ` Florian Tobias Schandinat
0 siblings, 0 replies; 13+ messages in thread
From: Florian Tobias Schandinat @ 2012-08-23 20:36 UTC (permalink / raw)
To: Damien Cassou; +Cc: kernel-janitors, linux-fbdev, linux-kernel
On 07/31/2012 01:54 PM, Damien Cassou wrote:
> From: Damien Cassou <damien.cassou@lifl.fr>
>
> The various devm_ functions allocate memory that is released when a driver
> detaches. This patch uses these functions for data that is allocated in
> the probe function of a platform device and is only freed in the remove
> function.
>
> Signed-off-by: Damien Cassou <damien.cassou@lifl.fr>
Applied.
Thanks,
Florian Tobias Schandinat
>
> ---
> drivers/video/bf537-lq035.c | 12 +++++-------
> 1 file changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/video/bf537-lq035.c b/drivers/video/bf537-lq035.c
> index befbc80..7347aa1 100644
> --- a/drivers/video/bf537-lq035.c
> +++ b/drivers/video/bf537-lq035.c
> @@ -760,18 +760,20 @@ static int __devinit bfin_lq035_probe(struct platform_device *pdev)
> bfin_lq035_fb.flags = FBINFO_DEFAULT;
>
>
> - bfin_lq035_fb.pseudo_palette = kzalloc(sizeof(u32) * 16, GFP_KERNEL);
> + bfin_lq035_fb.pseudo_palette = devm_kzalloc(&pdev->dev,
> + sizeof(u32) * 16,
> + GFP_KERNEL);
> if (bfin_lq035_fb.pseudo_palette == NULL) {
> pr_err("failed to allocate pseudo_palette\n");
> ret = -ENOMEM;
> - goto out_palette;
> + goto out_table;
> }
>
> if (fb_alloc_cmap(&bfin_lq035_fb.cmap, NBR_PALETTE, 0) < 0) {
> pr_err("failed to allocate colormap (%d entries)\n",
> NBR_PALETTE);
> ret = -EFAULT;
> - goto out_cmap;
> + goto out_table;
> }
>
> if (register_framebuffer(&bfin_lq035_fb) < 0) {
> @@ -804,9 +806,6 @@ out_lcd:
> unregister_framebuffer(&bfin_lq035_fb);
> out_reg:
> fb_dealloc_cmap(&bfin_lq035_fb.cmap);
> -out_cmap:
> - kfree(bfin_lq035_fb.pseudo_palette);
> -out_palette:
> out_table:
> dma_free_coherent(NULL, TOTAL_VIDEO_MEM_SIZE, fb_buffer, 0);
> fb_buffer = NULL;
> @@ -834,7 +833,6 @@ static int __devexit bfin_lq035_remove(struct platform_device *pdev)
> free_dma(CH_PPI);
>
>
> - kfree(bfin_lq035_fb.pseudo_palette);
> fb_dealloc_cmap(&bfin_lq035_fb.cmap);
>
>
>
>
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2012-08-23 20:36 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-31 13:54 [PATCH 0/5] use devm_ functions Damien Cassou
2012-07-31 13:54 ` [PATCH 5/5] drivers/video/ep93xx-fb.c: " Damien Cassou
2012-08-23 20:35 ` Florian Tobias Schandinat
2012-07-31 13:54 ` [PATCH 4/5] drivers/video/da8xx-fb.c: " Damien Cassou
2012-07-31 15:47 ` Sachin Kamat
2012-07-31 16:01 ` Damien Cassou
2012-07-31 13:54 ` [PATCH 3/5] drivers/video/cobalt_lcdfb.c: " Damien Cassou
2012-08-23 20:36 ` Florian Tobias Schandinat
2012-07-31 13:54 ` [PATCH 2/5] drivers/video/bfin-t350mcqb-fb.c: " Damien Cassou
2012-07-31 13:57 ` Mike Frysinger
2012-07-31 16:18 ` Damien Cassou
2012-07-31 13:54 ` [PATCH 1/5] drivers/video/bf537-lq035.c: " Damien Cassou
2012-08-23 20:36 ` Florian Tobias Schandinat
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome