diff options
author | Archit Taneja <archit@ti.com> | 2010-12-02 06:27:08 -0500 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@nokia.com> | 2011-01-10 04:09:54 -0500 |
commit | d50cd0373ad380fcc7f6fb4e020be4239174756d (patch) | |
tree | ae48f77efe230af0e92ef96030b3a5f6d7f6343c /drivers | |
parent | 8dad2ab6727f4dd9fdef06b890d736d7c6d1a725 (diff) |
OMAP: DSS2: Add dss_features for omap4 and overlay manager related features
Initialize a dss_features struct for omap4.
Add support for LCD2 manager by introducing a new member in dss_feat_id.
Signed-off-by: Archit Taneja <archit@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/omap2/dss/dss_features.c | 43 | ||||
-rw-r--r-- | drivers/video/omap2/dss/dss_features.h | 7 |
2 files changed, 47 insertions, 3 deletions
diff --git a/drivers/video/omap2/dss/dss_features.c b/drivers/video/omap2/dss/dss_features.c index 620221f678f9..cf3ef696e141 100644 --- a/drivers/video/omap2/dss/dss_features.c +++ b/drivers/video/omap2/dss/dss_features.c | |||
@@ -82,6 +82,18 @@ static const enum omap_display_type omap3_dss_supported_displays[] = { | |||
82 | OMAP_DISPLAY_TYPE_VENC, | 82 | OMAP_DISPLAY_TYPE_VENC, |
83 | }; | 83 | }; |
84 | 84 | ||
85 | static const enum omap_display_type omap4_dss_supported_displays[] = { | ||
86 | /* OMAP_DSS_CHANNEL_LCD */ | ||
87 | OMAP_DISPLAY_TYPE_DBI | OMAP_DISPLAY_TYPE_DSI, | ||
88 | |||
89 | /* OMAP_DSS_CHANNEL_DIGIT */ | ||
90 | OMAP_DISPLAY_TYPE_VENC, | ||
91 | |||
92 | /* OMAP_DSS_CHANNEL_LCD2 */ | ||
93 | OMAP_DISPLAY_TYPE_DPI | OMAP_DISPLAY_TYPE_DBI | | ||
94 | OMAP_DISPLAY_TYPE_DSI, | ||
95 | }; | ||
96 | |||
85 | static const enum omap_color_mode omap2_dss_supported_color_modes[] = { | 97 | static const enum omap_color_mode omap2_dss_supported_color_modes[] = { |
86 | /* OMAP_DSS_GFX */ | 98 | /* OMAP_DSS_GFX */ |
87 | OMAP_DSS_COLOR_CLUT1 | OMAP_DSS_COLOR_CLUT2 | | 99 | OMAP_DSS_COLOR_CLUT1 | OMAP_DSS_COLOR_CLUT2 | |
@@ -127,6 +139,10 @@ static struct omap_dss_features omap2_dss_features = { | |||
127 | .reg_fields = omap2_dss_reg_fields, | 139 | .reg_fields = omap2_dss_reg_fields, |
128 | .num_reg_fields = ARRAY_SIZE(omap2_dss_reg_fields), | 140 | .num_reg_fields = ARRAY_SIZE(omap2_dss_reg_fields), |
129 | 141 | ||
142 | .has_feature = | ||
143 | FEAT_LCDENABLEPOL | FEAT_LCDENABLESIGNAL | | ||
144 | FEAT_PCKFREEENABLE | FEAT_FUNCGATED, | ||
145 | |||
130 | .num_mgrs = 2, | 146 | .num_mgrs = 2, |
131 | .num_ovls = 3, | 147 | .num_ovls = 3, |
132 | .supported_displays = omap2_dss_supported_displays, | 148 | .supported_displays = omap2_dss_supported_displays, |
@@ -138,7 +154,10 @@ static struct omap_dss_features omap3430_dss_features = { | |||
138 | .reg_fields = omap3_dss_reg_fields, | 154 | .reg_fields = omap3_dss_reg_fields, |
139 | .num_reg_fields = ARRAY_SIZE(omap3_dss_reg_fields), | 155 | .num_reg_fields = ARRAY_SIZE(omap3_dss_reg_fields), |
140 | 156 | ||
141 | .has_feature = FEAT_GLOBAL_ALPHA, | 157 | .has_feature = |
158 | FEAT_GLOBAL_ALPHA | FEAT_LCDENABLEPOL | | ||
159 | FEAT_LCDENABLESIGNAL | FEAT_PCKFREEENABLE | | ||
160 | FEAT_FUNCGATED, | ||
142 | 161 | ||
143 | .num_mgrs = 2, | 162 | .num_mgrs = 2, |
144 | .num_ovls = 3, | 163 | .num_ovls = 3, |
@@ -150,7 +169,10 @@ static struct omap_dss_features omap3630_dss_features = { | |||
150 | .reg_fields = omap3_dss_reg_fields, | 169 | .reg_fields = omap3_dss_reg_fields, |
151 | .num_reg_fields = ARRAY_SIZE(omap3_dss_reg_fields), | 170 | .num_reg_fields = ARRAY_SIZE(omap3_dss_reg_fields), |
152 | 171 | ||
153 | .has_feature = FEAT_GLOBAL_ALPHA | FEAT_PRE_MULT_ALPHA, | 172 | .has_feature = |
173 | FEAT_GLOBAL_ALPHA | FEAT_LCDENABLEPOL | | ||
174 | FEAT_LCDENABLESIGNAL | FEAT_PCKFREEENABLE | | ||
175 | FEAT_PRE_MULT_ALPHA | FEAT_FUNCGATED, | ||
154 | 176 | ||
155 | .num_mgrs = 2, | 177 | .num_mgrs = 2, |
156 | .num_ovls = 3, | 178 | .num_ovls = 3, |
@@ -158,6 +180,21 @@ static struct omap_dss_features omap3630_dss_features = { | |||
158 | .supported_color_modes = omap3_dss_supported_color_modes, | 180 | .supported_color_modes = omap3_dss_supported_color_modes, |
159 | }; | 181 | }; |
160 | 182 | ||
183 | /* OMAP4 DSS Features */ | ||
184 | static struct omap_dss_features omap4_dss_features = { | ||
185 | .reg_fields = omap3_dss_reg_fields, | ||
186 | .num_reg_fields = ARRAY_SIZE(omap3_dss_reg_fields), | ||
187 | |||
188 | .has_feature = | ||
189 | FEAT_GLOBAL_ALPHA | FEAT_PRE_MULT_ALPHA | | ||
190 | FEAT_MGR_LCD2, | ||
191 | |||
192 | .num_mgrs = 3, | ||
193 | .num_ovls = 3, | ||
194 | .supported_displays = omap4_dss_supported_displays, | ||
195 | .supported_color_modes = omap3_dss_supported_color_modes, | ||
196 | }; | ||
197 | |||
161 | /* Functions returning values related to a DSS feature */ | 198 | /* Functions returning values related to a DSS feature */ |
162 | int dss_feat_get_num_mgrs(void) | 199 | int dss_feat_get_num_mgrs(void) |
163 | { | 200 | { |
@@ -209,4 +246,6 @@ void dss_features_init(void) | |||
209 | omap_current_dss_features = &omap3630_dss_features; | 246 | omap_current_dss_features = &omap3630_dss_features; |
210 | else if (cpu_is_omap34xx()) | 247 | else if (cpu_is_omap34xx()) |
211 | omap_current_dss_features = &omap3430_dss_features; | 248 | omap_current_dss_features = &omap3430_dss_features; |
249 | else | ||
250 | omap_current_dss_features = &omap4_dss_features; | ||
212 | } | 251 | } |
diff --git a/drivers/video/omap2/dss/dss_features.h b/drivers/video/omap2/dss/dss_features.h index 806db43bab17..b9c70be92588 100644 --- a/drivers/video/omap2/dss/dss_features.h +++ b/drivers/video/omap2/dss/dss_features.h | |||
@@ -20,7 +20,7 @@ | |||
20 | #ifndef __OMAP2_DSS_FEATURES_H | 20 | #ifndef __OMAP2_DSS_FEATURES_H |
21 | #define __OMAP2_DSS_FEATURES_H | 21 | #define __OMAP2_DSS_FEATURES_H |
22 | 22 | ||
23 | #define MAX_DSS_MANAGERS 2 | 23 | #define MAX_DSS_MANAGERS 3 |
24 | #define MAX_DSS_OVERLAYS 3 | 24 | #define MAX_DSS_OVERLAYS 3 |
25 | 25 | ||
26 | /* DSS has feature id */ | 26 | /* DSS has feature id */ |
@@ -28,6 +28,11 @@ enum dss_feat_id { | |||
28 | FEAT_GLOBAL_ALPHA = 1 << 0, | 28 | FEAT_GLOBAL_ALPHA = 1 << 0, |
29 | FEAT_GLOBAL_ALPHA_VID1 = 1 << 1, | 29 | FEAT_GLOBAL_ALPHA_VID1 = 1 << 1, |
30 | FEAT_PRE_MULT_ALPHA = 1 << 2, | 30 | FEAT_PRE_MULT_ALPHA = 1 << 2, |
31 | FEAT_LCDENABLEPOL = 1 << 3, | ||
32 | FEAT_LCDENABLESIGNAL = 1 << 4, | ||
33 | FEAT_PCKFREEENABLE = 1 << 5, | ||
34 | FEAT_FUNCGATED = 1 << 6, | ||
35 | FEAT_MGR_LCD2 = 1 << 7, | ||
31 | }; | 36 | }; |
32 | 37 | ||
33 | /* DSS register field id */ | 38 | /* DSS register field id */ |