diff options
author | Pramod Gurav <pramod.gurav@smartplayin.com> | 2014-08-26 08:10:37 -0400 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2014-08-26 08:53:33 -0400 |
commit | 0c46575f7c7dea4068924f2c0d938232f68a5cda (patch) | |
tree | 1398e9bbbdec492fc0a3d4b3014760c915f3af09 | |
parent | 87306c1d09c8dd7ed291a6b5d6c31323cd81f2ae (diff) |
msm: msm_fb: Add remove function for platform driver for clean unloading
This adds a remove function to platform driver structure so that
resources are released when driver is unloaded.
Signed-off-by: Pramod Gurav <pramod.gurav@smartplayin.com>
CC: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
CC: Tomi Valkeinen <tomi.valkeinen@ti.com>
CC: Stephen Boyd <sboyd@codeaurora.org>
CC: Jingoo Han <jg1.han@samsung.com>
CC: Rob Clark <robdclark@gmail.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
-rw-r--r-- | drivers/video/fbdev/msm/msm_fb.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/video/fbdev/msm/msm_fb.c b/drivers/video/fbdev/msm/msm_fb.c index 1374803fbcd9..4640188ffd6e 100644 --- a/drivers/video/fbdev/msm/msm_fb.c +++ b/drivers/video/fbdev/msm/msm_fb.c | |||
@@ -589,6 +589,8 @@ static int msmfb_probe(struct platform_device *pdev) | |||
589 | 589 | ||
590 | msmfb->sleeping = WAKING; | 590 | msmfb->sleeping = WAKING; |
591 | 591 | ||
592 | platform_set_drvdata(pdev, msmfb); | ||
593 | |||
592 | return 0; | 594 | return 0; |
593 | 595 | ||
594 | error_register_framebuffer: | 596 | error_register_framebuffer: |
@@ -598,9 +600,23 @@ error_setup_fbmem: | |||
598 | return ret; | 600 | return ret; |
599 | } | 601 | } |
600 | 602 | ||
603 | static int msmfb_remove(struct platform_device *pdev) | ||
604 | { | ||
605 | struct msmfb_info *msmfb; | ||
606 | |||
607 | msmfb = platform_get_drvdata(pdev); | ||
608 | |||
609 | unregister_framebuffer(msmfb->fb); | ||
610 | iounmap(msmfb->fb->screen_base); | ||
611 | framebuffer_release(msmfb->fb); | ||
612 | |||
613 | return 0; | ||
614 | } | ||
615 | |||
601 | static struct platform_driver msm_panel_driver = { | 616 | static struct platform_driver msm_panel_driver = { |
602 | /* need to write remove */ | 617 | /* need to write remove */ |
603 | .probe = msmfb_probe, | 618 | .probe = msmfb_probe, |
619 | .remove = msmfb_remove, | ||
604 | .driver = {.name = "msm_panel"}, | 620 | .driver = {.name = "msm_panel"}, |
605 | }; | 621 | }; |
606 | 622 | ||