|
@@ -47,7 +47,6 @@ struct omap_dss_features {
|
|
|
const int num_mgrs;
|
|
|
const int num_ovls;
|
|
|
const enum omap_dss_output_id *supported_outputs;
|
|
|
- const u32 **supported_color_modes;
|
|
|
const enum omap_overlay_caps *overlay_caps;
|
|
|
const struct dss_param_range *dss_params;
|
|
|
};
|
|
@@ -170,106 +169,6 @@ static const enum omap_dss_output_id omap5_dss_supported_outputs[] = {
|
|
|
OMAP_DSS_OUTPUT_DSI2,
|
|
|
};
|
|
|
|
|
|
-#define COLOR_ARRAY(arr...) (const u32[]) { arr, 0 }
|
|
|
-
|
|
|
-static const u32 *omap2_dss_supported_color_modes[] = {
|
|
|
-
|
|
|
- /* OMAP_DSS_GFX */
|
|
|
- COLOR_ARRAY(
|
|
|
- DRM_FORMAT_RGBX4444, DRM_FORMAT_RGB565,
|
|
|
- DRM_FORMAT_XRGB8888, DRM_FORMAT_RGB888),
|
|
|
-
|
|
|
- /* OMAP_DSS_VIDEO1 */
|
|
|
- COLOR_ARRAY(
|
|
|
- DRM_FORMAT_RGB565, DRM_FORMAT_XRGB8888,
|
|
|
- DRM_FORMAT_RGB888, DRM_FORMAT_YUYV,
|
|
|
- DRM_FORMAT_UYVY),
|
|
|
-
|
|
|
- /* OMAP_DSS_VIDEO2 */
|
|
|
- COLOR_ARRAY(
|
|
|
- DRM_FORMAT_RGB565, DRM_FORMAT_XRGB8888,
|
|
|
- DRM_FORMAT_RGB888, DRM_FORMAT_YUYV,
|
|
|
- DRM_FORMAT_UYVY),
|
|
|
-};
|
|
|
-
|
|
|
-static const u32 *omap3_dss_supported_color_modes[] = {
|
|
|
- /* OMAP_DSS_GFX */
|
|
|
- COLOR_ARRAY(
|
|
|
- DRM_FORMAT_RGBX4444, DRM_FORMAT_ARGB4444,
|
|
|
- DRM_FORMAT_RGB565, DRM_FORMAT_XRGB8888,
|
|
|
- DRM_FORMAT_RGB888, DRM_FORMAT_ARGB8888,
|
|
|
- DRM_FORMAT_RGBA8888, DRM_FORMAT_RGBX8888),
|
|
|
-
|
|
|
- /* OMAP_DSS_VIDEO1 */
|
|
|
- COLOR_ARRAY(
|
|
|
- DRM_FORMAT_XRGB8888, DRM_FORMAT_RGB888,
|
|
|
- DRM_FORMAT_RGBX4444, DRM_FORMAT_RGB565,
|
|
|
- DRM_FORMAT_YUYV, DRM_FORMAT_UYVY),
|
|
|
-
|
|
|
- /* OMAP_DSS_VIDEO2 */
|
|
|
- COLOR_ARRAY(
|
|
|
- DRM_FORMAT_RGBX4444, DRM_FORMAT_ARGB4444,
|
|
|
- DRM_FORMAT_RGB565, DRM_FORMAT_XRGB8888,
|
|
|
- DRM_FORMAT_RGB888, DRM_FORMAT_YUYV,
|
|
|
- DRM_FORMAT_UYVY, DRM_FORMAT_ARGB8888,
|
|
|
- DRM_FORMAT_RGBA8888, DRM_FORMAT_RGBX8888),
|
|
|
-};
|
|
|
-
|
|
|
-static const u32 *omap4_dss_supported_color_modes[] = {
|
|
|
- /* OMAP_DSS_GFX */
|
|
|
- COLOR_ARRAY(
|
|
|
- DRM_FORMAT_RGBX4444, DRM_FORMAT_ARGB4444,
|
|
|
- DRM_FORMAT_RGB565, DRM_FORMAT_XRGB8888,
|
|
|
- DRM_FORMAT_RGB888, DRM_FORMAT_ARGB8888,
|
|
|
- DRM_FORMAT_RGBA8888, DRM_FORMAT_RGBX8888,
|
|
|
- DRM_FORMAT_ARGB1555, DRM_FORMAT_XRGB4444,
|
|
|
- DRM_FORMAT_RGBA4444, DRM_FORMAT_XRGB1555),
|
|
|
-
|
|
|
- /* OMAP_DSS_VIDEO1 */
|
|
|
- COLOR_ARRAY(
|
|
|
- DRM_FORMAT_RGB565, DRM_FORMAT_RGBX4444,
|
|
|
- DRM_FORMAT_YUYV, DRM_FORMAT_ARGB1555,
|
|
|
- DRM_FORMAT_RGBA8888, DRM_FORMAT_NV12,
|
|
|
- DRM_FORMAT_RGBA4444, DRM_FORMAT_XRGB8888,
|
|
|
- DRM_FORMAT_RGB888, DRM_FORMAT_UYVY,
|
|
|
- DRM_FORMAT_ARGB4444, DRM_FORMAT_XRGB1555,
|
|
|
- DRM_FORMAT_ARGB8888, DRM_FORMAT_XRGB4444,
|
|
|
- DRM_FORMAT_RGBX8888),
|
|
|
-
|
|
|
- /* OMAP_DSS_VIDEO2 */
|
|
|
- COLOR_ARRAY(
|
|
|
- DRM_FORMAT_RGB565, DRM_FORMAT_RGBX4444,
|
|
|
- DRM_FORMAT_YUYV, DRM_FORMAT_ARGB1555,
|
|
|
- DRM_FORMAT_RGBA8888, DRM_FORMAT_NV12,
|
|
|
- DRM_FORMAT_RGBA4444, DRM_FORMAT_XRGB8888,
|
|
|
- DRM_FORMAT_RGB888, DRM_FORMAT_UYVY,
|
|
|
- DRM_FORMAT_ARGB4444, DRM_FORMAT_XRGB1555,
|
|
|
- DRM_FORMAT_ARGB8888, DRM_FORMAT_XRGB4444,
|
|
|
- DRM_FORMAT_RGBX8888),
|
|
|
-
|
|
|
- /* OMAP_DSS_VIDEO3 */
|
|
|
- COLOR_ARRAY(
|
|
|
- DRM_FORMAT_RGB565, DRM_FORMAT_RGBX4444,
|
|
|
- DRM_FORMAT_YUYV, DRM_FORMAT_ARGB1555,
|
|
|
- DRM_FORMAT_RGBA8888, DRM_FORMAT_NV12,
|
|
|
- DRM_FORMAT_RGBA4444, DRM_FORMAT_XRGB8888,
|
|
|
- DRM_FORMAT_RGB888, DRM_FORMAT_UYVY,
|
|
|
- DRM_FORMAT_ARGB4444, DRM_FORMAT_XRGB1555,
|
|
|
- DRM_FORMAT_ARGB8888, DRM_FORMAT_XRGB4444,
|
|
|
- DRM_FORMAT_RGBX8888),
|
|
|
-
|
|
|
- /* OMAP_DSS_WB */
|
|
|
- COLOR_ARRAY(
|
|
|
- DRM_FORMAT_RGB565, DRM_FORMAT_RGBX4444,
|
|
|
- DRM_FORMAT_YUYV, DRM_FORMAT_ARGB1555,
|
|
|
- DRM_FORMAT_RGBA8888, DRM_FORMAT_NV12,
|
|
|
- DRM_FORMAT_RGBA4444, DRM_FORMAT_XRGB8888,
|
|
|
- DRM_FORMAT_RGB888, DRM_FORMAT_UYVY,
|
|
|
- DRM_FORMAT_ARGB4444, DRM_FORMAT_XRGB1555,
|
|
|
- DRM_FORMAT_ARGB8888, DRM_FORMAT_XRGB4444,
|
|
|
- DRM_FORMAT_RGBX8888),
|
|
|
-};
|
|
|
-
|
|
|
static const enum omap_overlay_caps omap2_dss_overlay_caps[] = {
|
|
|
/* OMAP_DSS_GFX */
|
|
|
OMAP_DSS_OVL_CAP_POS | OMAP_DSS_OVL_CAP_REPLICATION,
|
|
@@ -545,7 +444,6 @@ static const struct omap_dss_features omap2_dss_features = {
|
|
|
.num_mgrs = 2,
|
|
|
.num_ovls = 3,
|
|
|
.supported_outputs = omap2_dss_supported_outputs,
|
|
|
- .supported_color_modes = omap2_dss_supported_color_modes,
|
|
|
.overlay_caps = omap2_dss_overlay_caps,
|
|
|
.dss_params = omap2_dss_param_range,
|
|
|
};
|
|
@@ -561,7 +459,6 @@ static const struct omap_dss_features omap3430_dss_features = {
|
|
|
.num_mgrs = 2,
|
|
|
.num_ovls = 3,
|
|
|
.supported_outputs = omap3430_dss_supported_outputs,
|
|
|
- .supported_color_modes = omap3_dss_supported_color_modes,
|
|
|
.overlay_caps = omap3430_dss_overlay_caps,
|
|
|
.dss_params = omap3_dss_param_range,
|
|
|
};
|
|
@@ -580,7 +477,6 @@ static const struct omap_dss_features am35xx_dss_features = {
|
|
|
.num_mgrs = 2,
|
|
|
.num_ovls = 3,
|
|
|
.supported_outputs = omap3430_dss_supported_outputs,
|
|
|
- .supported_color_modes = omap3_dss_supported_color_modes,
|
|
|
.overlay_caps = omap3430_dss_overlay_caps,
|
|
|
.dss_params = omap3_dss_param_range,
|
|
|
};
|
|
@@ -595,7 +491,6 @@ static const struct omap_dss_features am43xx_dss_features = {
|
|
|
.num_mgrs = 1,
|
|
|
.num_ovls = 3,
|
|
|
.supported_outputs = am43xx_dss_supported_outputs,
|
|
|
- .supported_color_modes = omap3_dss_supported_color_modes,
|
|
|
.overlay_caps = omap3430_dss_overlay_caps,
|
|
|
.dss_params = am43xx_dss_param_range,
|
|
|
};
|
|
@@ -610,7 +505,6 @@ static const struct omap_dss_features omap3630_dss_features = {
|
|
|
.num_mgrs = 2,
|
|
|
.num_ovls = 3,
|
|
|
.supported_outputs = omap3630_dss_supported_outputs,
|
|
|
- .supported_color_modes = omap3_dss_supported_color_modes,
|
|
|
.overlay_caps = omap3630_dss_overlay_caps,
|
|
|
.dss_params = omap3_dss_param_range,
|
|
|
};
|
|
@@ -627,7 +521,6 @@ static const struct omap_dss_features omap4430_es1_0_dss_features = {
|
|
|
.num_mgrs = 3,
|
|
|
.num_ovls = 4,
|
|
|
.supported_outputs = omap4_dss_supported_outputs,
|
|
|
- .supported_color_modes = omap4_dss_supported_color_modes,
|
|
|
.overlay_caps = omap4_dss_overlay_caps,
|
|
|
.dss_params = omap4_dss_param_range,
|
|
|
};
|
|
@@ -643,7 +536,6 @@ static const struct omap_dss_features omap4430_es2_0_1_2_dss_features = {
|
|
|
.num_mgrs = 3,
|
|
|
.num_ovls = 4,
|
|
|
.supported_outputs = omap4_dss_supported_outputs,
|
|
|
- .supported_color_modes = omap4_dss_supported_color_modes,
|
|
|
.overlay_caps = omap4_dss_overlay_caps,
|
|
|
.dss_params = omap4_dss_param_range,
|
|
|
};
|
|
@@ -659,7 +551,6 @@ static const struct omap_dss_features omap4_dss_features = {
|
|
|
.num_mgrs = 3,
|
|
|
.num_ovls = 4,
|
|
|
.supported_outputs = omap4_dss_supported_outputs,
|
|
|
- .supported_color_modes = omap4_dss_supported_color_modes,
|
|
|
.overlay_caps = omap4_dss_overlay_caps,
|
|
|
.dss_params = omap4_dss_param_range,
|
|
|
};
|
|
@@ -675,7 +566,6 @@ static const struct omap_dss_features omap5_dss_features = {
|
|
|
.num_mgrs = 4,
|
|
|
.num_ovls = 4,
|
|
|
.supported_outputs = omap5_dss_supported_outputs,
|
|
|
- .supported_color_modes = omap4_dss_supported_color_modes,
|
|
|
.overlay_caps = omap4_dss_overlay_caps,
|
|
|
.dss_params = omap5_dss_param_range,
|
|
|
};
|
|
@@ -706,31 +596,11 @@ enum omap_dss_output_id dss_feat_get_supported_outputs(enum omap_channel channel
|
|
|
return omap_current_dss_features->supported_outputs[channel];
|
|
|
}
|
|
|
|
|
|
-const u32 *dss_feat_get_supported_color_modes(enum omap_plane_id plane)
|
|
|
-{
|
|
|
- return omap_current_dss_features->supported_color_modes[plane];
|
|
|
-}
|
|
|
-
|
|
|
enum omap_overlay_caps dss_feat_get_overlay_caps(enum omap_plane_id plane)
|
|
|
{
|
|
|
return omap_current_dss_features->overlay_caps[plane];
|
|
|
}
|
|
|
|
|
|
-bool dss_feat_color_mode_supported(enum omap_plane_id plane, u32 fourcc)
|
|
|
-{
|
|
|
- const u32 *modes;
|
|
|
- unsigned int i;
|
|
|
-
|
|
|
- modes = omap_current_dss_features->supported_color_modes[plane];
|
|
|
-
|
|
|
- for (i = 0; modes[i]; ++i) {
|
|
|
- if (modes[i] == fourcc)
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- return false;
|
|
|
-}
|
|
|
-
|
|
|
/* DSS has_feature check */
|
|
|
bool dss_has_feature(enum dss_feat_id id)
|
|
|
{
|