|
@@ -882,10 +882,21 @@ static void __devinit init_pxafb_overlay(struct pxafb_info *fbi,
|
|
init_completion(&ofb->branch_done);
|
|
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)
|
|
static int __devinit pxafb_overlay_init(struct pxafb_info *fbi)
|
|
{
|
|
{
|
|
int i, ret;
|
|
int i, ret;
|
|
|
|
|
|
|
|
+ if (!pxafb_overlay_supported())
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
for (i = 0; i < 2; i++) {
|
|
for (i = 0; i < 2; i++) {
|
|
init_pxafb_overlay(fbi, &fbi->overlay[i], i);
|
|
init_pxafb_overlay(fbi, &fbi->overlay[i], i);
|
|
ret = register_framebuffer(&fbi->overlay[i].fb);
|
|
ret = register_framebuffer(&fbi->overlay[i].fb);
|
|
@@ -908,6 +919,9 @@ static void __devexit pxafb_overlay_exit(struct pxafb_info *fbi)
|
|
{
|
|
{
|
|
int i;
|
|
int i;
|
|
|
|
|
|
|
|
+ if (!pxafb_overlay_supported())
|
|
|
|
+ return;
|
|
|
|
+
|
|
for (i = 0; i < 2; i++)
|
|
for (i = 0; i < 2; i++)
|
|
unregister_framebuffer(&fbi->overlay[i].fb);
|
|
unregister_framebuffer(&fbi->overlay[i].fb);
|
|
}
|
|
}
|