X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fvideo%2Fpxafb.c;h=7ded3f7c9dd5640c99822d72981bf68e62cab34d;hb=f9296eb00ed30209424102d3c920e69617eea853;hp=0a860dd8879c6ded6e33f1aa317560822b4e1d58;hpb=a91482bdcc2e0f6035702e46f1b99043a0893346;p=linux-2.6.git diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c index 0a860dd88..7ded3f7c9 100644 --- a/drivers/video/pxafb.c +++ b/drivers/video/pxafb.c @@ -386,7 +386,7 @@ static int pxafb_blank(int blank, struct fb_info *info) //TODO if (pxafb_blank_helper) pxafb_blank_helper(blank); if (fbi->fb.fix.visual == FB_VISUAL_PSEUDOCOLOR || fbi->fb.fix.visual == FB_VISUAL_STATIC_PSEUDOCOLOR) - fb_set_cmap(&fbi->fb.cmap, info); + fb_set_cmap(&fbi->fb.cmap, 1, info); pxafb_schedule_work(fbi, C_ENABLE); } return 0; @@ -1016,7 +1016,7 @@ static struct pxafb_info * __init pxafb_init_fbinfo(struct device *dev) struct pxafb_mach_info *inf = dev->platform_data; /* Alloc the pxafb_info and pseudo_palette in one step */ - fbi = kmalloc(sizeof(struct pxafb_info) + sizeof(u32) * 16, GFP_KERNEL); + fbi = kmalloc(sizeof(struct pxafb_info) + sizeof(u32) * 17, GFP_KERNEL); if (!fbi) return NULL; @@ -1237,6 +1237,7 @@ int __init pxafb_probe(struct device *dev) { struct pxafb_info *fbi; struct pxafb_mach_info *inf; + unsigned long flags; int ret; dev_dbg(dev, "pxafb_probe\n"); @@ -1300,7 +1301,9 @@ int __init pxafb_probe(struct device *dev) goto failed; } /* enable LCD controller clock */ - pxa_set_cken(CKEN16_LCD, 1); + local_irq_save(flags); + CKEN |= CKEN16_LCD; + local_irq_restore(flags); ret = request_irq(IRQ_LCD, pxafb_handle_irq, SA_INTERRUPT, "LCD", fbi); if (ret) { @@ -1350,7 +1353,7 @@ failed: } static struct device_driver pxafb_driver = { - .name = "pxa2xx-fb", + .name = "pxafb", .bus = &platform_bus_type, .probe = pxafb_probe, #ifdef CONFIG_PM