OMAPDSS: Add overlay manager width and height limits as a dispc feature
The overlay manager width and height vary in OMAP5 from previous OMAPs in terms of maximum limit and register field positions. Add parameters in dispc_features for these. Also remove params related to manager width and height from dss_features, as we want to maintain a feature list for individual IPs. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
Родитель
4ee9a5377b
Коммит
33b89928f5
|
@ -87,6 +87,10 @@ struct dispc_features {
|
|||
u16 sw_max;
|
||||
u16 vp_max;
|
||||
u16 hp_max;
|
||||
u8 mgr_width_start;
|
||||
u8 mgr_height_start;
|
||||
u16 mgr_width_max;
|
||||
u16 mgr_height_max;
|
||||
int (*calc_scaling) (enum omap_plane plane,
|
||||
const struct omap_video_timings *mgr_timings,
|
||||
u16 width, u16 height, u16 out_width, u16 out_height,
|
||||
|
@ -1128,7 +1132,9 @@ static void dispc_mgr_set_size(enum omap_channel channel, u16 width,
|
|||
{
|
||||
u32 val;
|
||||
|
||||
val = FLD_VAL(height - 1, 26, 16) | FLD_VAL(width - 1, 10, 0);
|
||||
val = FLD_VAL(height - 1, dispc.feat->mgr_height_start, 16) |
|
||||
FLD_VAL(width - 1, dispc.feat->mgr_width_start, 0);
|
||||
|
||||
dispc_write_reg(DISPC_SIZE_MGR(channel), val);
|
||||
}
|
||||
|
||||
|
@ -3000,8 +3006,8 @@ void dispc_mgr_set_lcd_config(enum omap_channel channel,
|
|||
|
||||
static bool _dispc_mgr_size_ok(u16 width, u16 height)
|
||||
{
|
||||
return width <= dss_feat_get_param_max(FEAT_PARAM_MGR_WIDTH) &&
|
||||
height <= dss_feat_get_param_max(FEAT_PARAM_MGR_HEIGHT);
|
||||
return width <= dispc.feat->mgr_width_max &&
|
||||
height <= dispc.feat->mgr_height_max;
|
||||
}
|
||||
|
||||
static bool _dispc_lcd_timings_ok(int hsw, int hfp, int hbp,
|
||||
|
@ -4082,6 +4088,10 @@ static const struct dispc_features omap24xx_dispc_feats __initconst = {
|
|||
.sw_max = 64,
|
||||
.vp_max = 255,
|
||||
.hp_max = 256,
|
||||
.mgr_width_start = 10,
|
||||
.mgr_height_start = 26,
|
||||
.mgr_width_max = 2048,
|
||||
.mgr_height_max = 2048,
|
||||
.calc_scaling = dispc_ovl_calc_scaling_24xx,
|
||||
.calc_core_clk = calc_core_clk_24xx,
|
||||
.num_fifos = 3,
|
||||
|
@ -4094,6 +4104,10 @@ static const struct dispc_features omap34xx_rev1_0_dispc_feats __initconst = {
|
|||
.sw_max = 64,
|
||||
.vp_max = 255,
|
||||
.hp_max = 256,
|
||||
.mgr_width_start = 10,
|
||||
.mgr_height_start = 26,
|
||||
.mgr_width_max = 2048,
|
||||
.mgr_height_max = 2048,
|
||||
.calc_scaling = dispc_ovl_calc_scaling_34xx,
|
||||
.calc_core_clk = calc_core_clk_34xx,
|
||||
.num_fifos = 3,
|
||||
|
@ -4106,6 +4120,10 @@ static const struct dispc_features omap34xx_rev3_0_dispc_feats __initconst = {
|
|||
.sw_max = 256,
|
||||
.vp_max = 4095,
|
||||
.hp_max = 4096,
|
||||
.mgr_width_start = 10,
|
||||
.mgr_height_start = 26,
|
||||
.mgr_width_max = 2048,
|
||||
.mgr_height_max = 2048,
|
||||
.calc_scaling = dispc_ovl_calc_scaling_34xx,
|
||||
.calc_core_clk = calc_core_clk_34xx,
|
||||
.num_fifos = 3,
|
||||
|
@ -4118,6 +4136,10 @@ static const struct dispc_features omap44xx_dispc_feats __initconst = {
|
|||
.sw_max = 256,
|
||||
.vp_max = 4095,
|
||||
.hp_max = 4096,
|
||||
.mgr_width_start = 10,
|
||||
.mgr_height_start = 26,
|
||||
.mgr_width_max = 2048,
|
||||
.mgr_height_max = 2048,
|
||||
.calc_scaling = dispc_ovl_calc_scaling_44xx,
|
||||
.calc_core_clk = calc_core_clk_44xx,
|
||||
.num_fifos = 5,
|
||||
|
|
|
@ -429,8 +429,6 @@ static const struct dss_param_range omap2_dss_param_range[] = {
|
|||
* scaler cannot scale a image with width more than 768.
|
||||
*/
|
||||
[FEAT_PARAM_LINEWIDTH] = { 1, 768 },
|
||||
[FEAT_PARAM_MGR_WIDTH] = { 1, 2048 },
|
||||
[FEAT_PARAM_MGR_HEIGHT] = { 1, 2048 },
|
||||
};
|
||||
|
||||
static const struct dss_param_range omap3_dss_param_range[] = {
|
||||
|
@ -445,8 +443,6 @@ static const struct dss_param_range omap3_dss_param_range[] = {
|
|||
[FEAT_PARAM_DSI_FCK] = { 0, 173000000 },
|
||||
[FEAT_PARAM_DOWNSCALE] = { 1, 4 },
|
||||
[FEAT_PARAM_LINEWIDTH] = { 1, 1024 },
|
||||
[FEAT_PARAM_MGR_WIDTH] = { 1, 2048 },
|
||||
[FEAT_PARAM_MGR_HEIGHT] = { 1, 2048 },
|
||||
};
|
||||
|
||||
static const struct dss_param_range omap4_dss_param_range[] = {
|
||||
|
@ -461,8 +457,6 @@ static const struct dss_param_range omap4_dss_param_range[] = {
|
|||
[FEAT_PARAM_DSI_FCK] = { 0, 170000000 },
|
||||
[FEAT_PARAM_DOWNSCALE] = { 1, 4 },
|
||||
[FEAT_PARAM_LINEWIDTH] = { 1, 2048 },
|
||||
[FEAT_PARAM_MGR_WIDTH] = { 1, 2048 },
|
||||
[FEAT_PARAM_MGR_HEIGHT] = { 1, 2048 },
|
||||
};
|
||||
|
||||
static const struct dss_param_range omap5_dss_param_range[] = {
|
||||
|
@ -477,8 +471,6 @@ static const struct dss_param_range omap5_dss_param_range[] = {
|
|||
[FEAT_PARAM_DSI_FCK] = { 0, 170000000 },
|
||||
[FEAT_PARAM_DOWNSCALE] = { 1, 4 },
|
||||
[FEAT_PARAM_LINEWIDTH] = { 1, 2048 },
|
||||
[FEAT_PARAM_MGR_WIDTH] = { 1, 2048 },
|
||||
[FEAT_PARAM_MGR_HEIGHT] = { 1, 2048 },
|
||||
};
|
||||
|
||||
static const enum dss_feat_id omap2_dss_feat_list[] = {
|
||||
|
|
|
@ -98,8 +98,6 @@ enum dss_range_param {
|
|||
FEAT_PARAM_DSI_FCK,
|
||||
FEAT_PARAM_DOWNSCALE,
|
||||
FEAT_PARAM_LINEWIDTH,
|
||||
FEAT_PARAM_MGR_WIDTH,
|
||||
FEAT_PARAM_MGR_HEIGHT,
|
||||
};
|
||||
|
||||
/* DSS Feature Functions */
|
||||
|
|
Загрузка…
Ссылка в новой задаче