aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/dispc.c
diff options
context:
space:
mode:
authorAmber Jain <amber@ti.com>2011-05-19 10:17:50 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-05-23 01:29:47 -0400
commitf20e42205ab172cfd449c10e5183e2e371a629d6 (patch)
tree2d5652fcf8eed5a7e55cd75ef40ed9ab465fe72a /drivers/video/omap2/dss/dispc.c
parentad44cc3298872c4d4f4b034df9163c3944ae8c1c (diff)
OMAP: DSS2: Add new color formats for OMAP4
Add new color formats supported by OMAP4: NV12, RGBA16, RGBX16, ARGB16_1555, XRGB16_1555. NV12 color format is defined here, its support in DSS will be added separately. Signed-off-by: Amber Jain <amber@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/omap2/dss/dispc.c')
-rw-r--r--drivers/video/omap2/dss/dispc.c109
1 files changed, 77 insertions, 32 deletions
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index 1a2d835000f8..79c1c0a44f81 100644
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -796,38 +796,78 @@ static void _dispc_set_color_mode(enum omap_plane plane,
796 enum omap_color_mode color_mode) 796 enum omap_color_mode color_mode)
797{ 797{
798 u32 m = 0; 798 u32 m = 0;
799 799 if (plane != OMAP_DSS_GFX) {
800 switch (color_mode) { 800 switch (color_mode) {
801 case OMAP_DSS_COLOR_CLUT1: 801 case OMAP_DSS_COLOR_NV12:
802 m = 0x0; break; 802 m = 0x0; break;
803 case OMAP_DSS_COLOR_CLUT2: 803 case OMAP_DSS_COLOR_RGB12U:
804 m = 0x1; break; 804 m = 0x1; break;
805 case OMAP_DSS_COLOR_CLUT4: 805 case OMAP_DSS_COLOR_RGBA16:
806 m = 0x2; break; 806 m = 0x2; break;
807 case OMAP_DSS_COLOR_CLUT8: 807 case OMAP_DSS_COLOR_RGBX16:
808 m = 0x3; break; 808 m = 0x4; break;
809 case OMAP_DSS_COLOR_RGB12U: 809 case OMAP_DSS_COLOR_ARGB16:
810 m = 0x4; break; 810 m = 0x5; break;
811 case OMAP_DSS_COLOR_ARGB16: 811 case OMAP_DSS_COLOR_RGB16:
812 m = 0x5; break; 812 m = 0x6; break;
813 case OMAP_DSS_COLOR_RGB16: 813 case OMAP_DSS_COLOR_ARGB16_1555:
814 m = 0x6; break; 814 m = 0x7; break;
815 case OMAP_DSS_COLOR_RGB24U: 815 case OMAP_DSS_COLOR_RGB24U:
816 m = 0x8; break; 816 m = 0x8; break;
817 case OMAP_DSS_COLOR_RGB24P: 817 case OMAP_DSS_COLOR_RGB24P:
818 m = 0x9; break; 818 m = 0x9; break;
819 case OMAP_DSS_COLOR_YUV2: 819 case OMAP_DSS_COLOR_YUV2:
820 m = 0xa; break; 820 m = 0xa; break;
821 case OMAP_DSS_COLOR_UYVY: 821 case OMAP_DSS_COLOR_UYVY:
822 m = 0xb; break; 822 m = 0xb; break;
823 case OMAP_DSS_COLOR_ARGB32: 823 case OMAP_DSS_COLOR_ARGB32:
824 m = 0xc; break; 824 m = 0xc; break;
825 case OMAP_DSS_COLOR_RGBA32: 825 case OMAP_DSS_COLOR_RGBA32:
826 m = 0xd; break; 826 m = 0xd; break;
827 case OMAP_DSS_COLOR_RGBX32: 827 case OMAP_DSS_COLOR_RGBX32:
828 m = 0xe; break; 828 m = 0xe; break;
829 default: 829 case OMAP_DSS_COLOR_XRGB16_1555:
830 BUG(); break; 830 m = 0xf; break;
831 default:
832 BUG(); break;
833 }
834 } else {
835 switch (color_mode) {
836 case OMAP_DSS_COLOR_CLUT1:
837 m = 0x0; break;
838 case OMAP_DSS_COLOR_CLUT2:
839 m = 0x1; break;
840 case OMAP_DSS_COLOR_CLUT4:
841 m = 0x2; break;
842 case OMAP_DSS_COLOR_CLUT8:
843 m = 0x3; break;
844 case OMAP_DSS_COLOR_RGB12U:
845 m = 0x4; break;
846 case OMAP_DSS_COLOR_ARGB16:
847 m = 0x5; break;
848 case OMAP_DSS_COLOR_RGB16:
849 m = 0x6; break;
850 case OMAP_DSS_COLOR_ARGB16_1555:
851 m = 0x7; break;
852 case OMAP_DSS_COLOR_RGB24U:
853 m = 0x8; break;
854 case OMAP_DSS_COLOR_RGB24P:
855 m = 0x9; break;
856 case OMAP_DSS_COLOR_YUV2:
857 m = 0xa; break;
858 case OMAP_DSS_COLOR_UYVY:
859 m = 0xb; break;
860 case OMAP_DSS_COLOR_ARGB32:
861 m = 0xc; break;
862 case OMAP_DSS_COLOR_RGBA32:
863 m = 0xd; break;
864 case OMAP_DSS_COLOR_RGBX32:
865 m = 0xe; break;
866 case OMAP_DSS_COLOR_XRGB16_1555:
867 m = 0xf; break;
868 default:
869 BUG(); break;
870 }
831 } 871 }
832 872
833 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), m, 4, 1); 873 REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), m, 4, 1);
@@ -1203,12 +1243,17 @@ static int color_mode_to_bpp(enum omap_color_mode color_mode)
1203 case OMAP_DSS_COLOR_CLUT4: 1243 case OMAP_DSS_COLOR_CLUT4:
1204 return 4; 1244 return 4;
1205 case OMAP_DSS_COLOR_CLUT8: 1245 case OMAP_DSS_COLOR_CLUT8:
1246 case OMAP_DSS_COLOR_NV12:
1206 return 8; 1247 return 8;
1207 case OMAP_DSS_COLOR_RGB12U: 1248 case OMAP_DSS_COLOR_RGB12U:
1208 case OMAP_DSS_COLOR_RGB16: 1249 case OMAP_DSS_COLOR_RGB16:
1209 case OMAP_DSS_COLOR_ARGB16: 1250 case OMAP_DSS_COLOR_ARGB16:
1210 case OMAP_DSS_COLOR_YUV2: 1251 case OMAP_DSS_COLOR_YUV2:
1211 case OMAP_DSS_COLOR_UYVY: 1252 case OMAP_DSS_COLOR_UYVY:
1253 case OMAP_DSS_COLOR_RGBA16:
1254 case OMAP_DSS_COLOR_RGBX16:
1255 case OMAP_DSS_COLOR_ARGB16_1555:
1256 case OMAP_DSS_COLOR_XRGB16_1555:
1212 return 16; 1257 return 16;
1213 case OMAP_DSS_COLOR_RGB24P: 1258 case OMAP_DSS_COLOR_RGB24P:
1214 return 24; 1259 return 24;