Skip to content

Commit

Permalink
fbdev: sh_mobile_lcdc: Avoid forward declarations
Browse files Browse the repository at this point in the history
Reorder probe/remove functions to avoid forward declarations.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
  • Loading branch information
Laurent Pinchart authored and Florian Tobias Schandinat committed Sep 5, 2011
1 parent 91fba48 commit b4bee69
Showing 1 changed file with 50 additions and 52 deletions.
102 changes: 50 additions & 52 deletions drivers/video/sh_mobile_lcdcfb.c
Original file line number Diff line number Diff line change
Expand Up @@ -1434,7 +1434,56 @@ static int sh_mobile_lcdc_notify(struct notifier_block *nb,
return NOTIFY_OK;
}

static int sh_mobile_lcdc_remove(struct platform_device *pdev);
static int sh_mobile_lcdc_remove(struct platform_device *pdev)
{
struct sh_mobile_lcdc_priv *priv = platform_get_drvdata(pdev);
struct fb_info *info;
int i;

fb_unregister_client(&priv->notifier);

for (i = 0; i < ARRAY_SIZE(priv->ch); i++)
if (priv->ch[i].info && priv->ch[i].info->dev)
unregister_framebuffer(priv->ch[i].info);

sh_mobile_lcdc_stop(priv);

for (i = 0; i < ARRAY_SIZE(priv->ch); i++) {
info = priv->ch[i].info;

if (!info || !info->device)
continue;

if (priv->ch[i].sglist)
vfree(priv->ch[i].sglist);

if (info->screen_base)
dma_free_coherent(&pdev->dev, info->fix.smem_len,
info->screen_base,
priv->ch[i].dma_handle);
fb_dealloc_cmap(&info->cmap);
framebuffer_release(info);
}

for (i = 0; i < ARRAY_SIZE(priv->ch); i++) {
if (priv->ch[i].bl)
sh_mobile_lcdc_bl_remove(priv->ch[i].bl);
}

if (priv->dot_clk)
clk_put(priv->dot_clk);

if (priv->dev)
pm_runtime_disable(priv->dev);

if (priv->base)
iounmap(priv->base);

if (priv->irq)
free_irq(priv->irq, priv);
kfree(priv);
return 0;
}

static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev)
{
Expand Down Expand Up @@ -1691,57 +1740,6 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev)
return error;
}

static int sh_mobile_lcdc_remove(struct platform_device *pdev)
{
struct sh_mobile_lcdc_priv *priv = platform_get_drvdata(pdev);
struct fb_info *info;
int i;

fb_unregister_client(&priv->notifier);

for (i = 0; i < ARRAY_SIZE(priv->ch); i++)
if (priv->ch[i].info && priv->ch[i].info->dev)
unregister_framebuffer(priv->ch[i].info);

sh_mobile_lcdc_stop(priv);

for (i = 0; i < ARRAY_SIZE(priv->ch); i++) {
info = priv->ch[i].info;

if (!info || !info->device)
continue;

if (priv->ch[i].sglist)
vfree(priv->ch[i].sglist);

if (info->screen_base)
dma_free_coherent(&pdev->dev, info->fix.smem_len,
info->screen_base,
priv->ch[i].dma_handle);
fb_dealloc_cmap(&info->cmap);
framebuffer_release(info);
}

for (i = 0; i < ARRAY_SIZE(priv->ch); i++) {
if (priv->ch[i].bl)
sh_mobile_lcdc_bl_remove(priv->ch[i].bl);
}

if (priv->dot_clk)
clk_put(priv->dot_clk);

if (priv->dev)
pm_runtime_disable(priv->dev);

if (priv->base)
iounmap(priv->base);

if (priv->irq)
free_irq(priv->irq, priv);
kfree(priv);
return 0;
}

static struct platform_driver sh_mobile_lcdc_driver = {
.driver = {
.name = "sh_mobile_lcdc_fb",
Expand Down

0 comments on commit b4bee69

Please sign in to comment.