diff options
author | Amber Jain <amber@ti.com> | 2011-05-19 10:17:50 -0400 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2011-05-23 01:29:47 -0400 |
commit | f20e42205ab172cfd449c10e5183e2e371a629d6 (patch) | |
tree | 2d5652fcf8eed5a7e55cd75ef40ed9ab465fe72a /drivers/video/omap2/dss/dispc.c | |
parent | ad44cc3298872c4d4f4b034df9163c3944ae8c1c (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.c | 109 |
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; |