diff options
author | Eric Miao <eric.miao@marvell.com> | 2009-03-19 15:24:30 +0800 |
---|---|---|
committer | Eric Miao <eric.miao@marvell.com> | 2009-03-19 16:20:39 +0800 |
commit | 782385ae176b304c7105051e1b06c68bc0b4a2ba (patch) | |
tree | 0b4c4904b347fe4697d3025ea6de0af2a5303e8b /drivers/video/pxafb.c | |
parent | c68ffddabcaaa64c6ea681d2944cbda50a8654ea (diff) |
[ARM] pxa: fix overlay being un-necessarily initialized on pxa25x
pxa25x doesn't support overlay in its LCD controller, this patch adds
pxafb_overlay_supported() functions to check the initialization is
necessary.
Signed-off-by: Eric Miao <eric.miao@marvell.com>
Diffstat (limited to 'drivers/video/pxafb.c')
-rw-r--r-- | drivers/video/pxafb.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c index 48ff701d3a72..40a5d9d66755 100644 --- a/drivers/video/pxafb.c +++ b/drivers/video/pxafb.c @@ -883,10 +883,21 @@ static void __devinit init_pxafb_overlay(struct pxafb_info *fbi, init_completion(&ofb->branch_done); } +static inline int pxafb_overlay_supported(void) +{ + if (cpu_is_pxa27x() || cpu_is_pxa3xx()) + return 1; + + return 0; +} + static int __devinit pxafb_overlay_init(struct pxafb_info *fbi) { int i, ret; + if (!pxafb_overlay_supported()) + return 0; + for (i = 0; i < 2; i++) { init_pxafb_overlay(fbi, &fbi->overlay[i], i); ret = register_framebuffer(&fbi->overlay[i].fb); @@ -909,6 +920,9 @@ static void __devexit pxafb_overlay_exit(struct pxafb_info *fbi) { int i; + if (!pxafb_overlay_supported()) + return; + for (i = 0; i < 2; i++) unregister_framebuffer(&fbi->overlay[i].fb); } |