return (void *)pGD;
 }
 
-/**
-  * Set the LUT
-  *
-  * @index: color number
-  * @r: red
-  * @b: blue
-  * @g: green
-  */
-void video_set_lut
-       (unsigned int index, unsigned char r, unsigned char g, unsigned char b)
-{
-       return;
-}
-
 #endif /* defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE) */
 
        return (void *)pGD;
 }
 
-void video_set_lut (unsigned int index,        /* color number */
-                   unsigned char r,    /* red */
-                   unsigned char g,    /* green */
-                   unsigned char b     /* blue */
-                   )
-{
-       return;
-}
-
 #endif /* defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE) */
 
 #endif /* CONFIG_FSL_DIU_FB */
 
 
 /*****************************************************************************/
 
+/*
+ * Do not enforce drivers (or board code) to provide empty
+ * video_set_lut() if they do not support 8 bpp format.
+ * Implement weak default function instead.
+ */
+void __video_set_lut (unsigned int index, unsigned char r,
+                     unsigned char g, unsigned char b)
+{
+}
+void video_set_lut (unsigned int, unsigned char, unsigned char, unsigned char)
+                       __attribute__((weak, alias("__video_set_lut")));
+
 #if defined(CONFIG_CMD_BMP) || defined(CONFIG_SPLASH_SCREEN)
 
 #define FILL_8BIT_332RGB(r,g,b)        {                       \
 
 
        return (&sm501);
 }
-
-/*-----------------------------------------------------------------------------
- * video_set_lut --
- *-----------------------------------------------------------------------------
- */
-void video_set_lut (
-       unsigned int index,           /* color number */
-       unsigned char r,              /* red */
-       unsigned char g,              /* green */
-       unsigned char b               /* blue */
-       )
-{
-}