video: mcde: Add fake color map functionality

Implements a non functional cmap functionality in order
to make X11/fbdev happy. Lack of functionality will make
no difference on modern panels due to the fact that most
panels use 16 or more bits for color depth anyway.
Corresponds to bug 803814 on Linaro-ubuntu

ST-Ericsson ID: N/A
ST-Ericsson FOSS-OUT ID: Trivial
ST-Ericsson Linux next: Not tested, ER 282779

Change-Id: I9080b6879641ebc2f051204a630ae152f8d73fc1
Signed-off-by: Robert Fekete <robert.fekete@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/26353
Reviewed-by: Jimmy RUBIN <jimmy.rubin@stericsson.com>
Reviewed-by: Marcel TUNNISSEN <marcel.tuennissen@stericsson.com>
Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
diff --git a/drivers/video/mcde/mcde_fb.c b/drivers/video/mcde/mcde_fb.c
index 3b464cd..a69b18e 100644
--- a/drivers/video/mcde/mcde_fb.c
+++ b/drivers/video/mcde/mcde_fb.c
@@ -562,6 +562,23 @@
 	return apply_var(fbi, fb_to_display(fbi));
 }
 
+static int mcde_fb_setcolreg(unsigned regno, unsigned red, unsigned green,
+			unsigned blue, unsigned transp, struct fb_info *fbi)
+{
+	dev_vdbg(fbi->dev, "%s\n", __func__);
+
+	/*Nothing to see here, move along*/
+	return 0;
+}
+
+static int mcde_fb_setcmap(struct fb_cmap *cmap, struct fb_info *fbi)
+{
+	dev_vdbg(fbi->dev, "%s\n", __func__);
+
+	/*Nothing to see here, move along*/
+	return 0;
+}
+
 static int mcde_fb_blank(int blank, struct fb_info *fbi)
 {
 	return 0;
@@ -609,6 +626,8 @@
 	.fb_imageblit   = sys_imageblit,
 	.fb_check_var   = mcde_fb_check_var,
 	.fb_set_par     = mcde_fb_set_par,
+	.fb_setcolreg   = mcde_fb_setcolreg,
+	.fb_setcmap     = mcde_fb_setcmap,
 	.fb_blank       = mcde_fb_blank,
 	.fb_pan_display = mcde_fb_pan_display,
 	.fb_rotate      = mcde_fb_rotate,
@@ -685,6 +704,10 @@
 	if (ret)
 		goto fb_register_failed;
 
+	ret = fb_alloc_cmap(&fbi->cmap, 256, 0);
+	if (ret)
+		dev_warn(&ddev->dev, "%s: Allocate color map memory failed!\n", __func__);
+
 	ddev->fbi = fbi;
 
 #ifdef CONFIG_HAS_EARLYSUSPEND
@@ -741,6 +764,8 @@
 			mcde_dss_destroy_overlay(mfb->ovlys[i]);
 	}
 
+	fb_dealloc_cmap(&dev->fbi->cmap);
+
 	unregister_framebuffer(dev->fbi);
 	free_fb_mem(dev->fbi);
 	framebuffer_release(dev->fbi);