Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 333599
b: refs/heads/master
c: 5b54ed3
h: refs/heads/master
i:
  333597: fb7462c
  333595: d5cfd2d
  333591: c61e5c7
  333583: 1033541
  333567: c3ac1f2
v: v3
  • Loading branch information
Archit Taneja authored and Tomi Valkeinen committed Sep 26, 2012
1 parent e9ee2b4 commit 483ac70
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 20 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 78b687fc4ffa27d48c793f9669d53a6f4351e239
refs/heads/master: 5b54ed3ec36ddc8ac25aff9233c7d3fb3e2b629a
36 changes: 17 additions & 19 deletions trunk/drivers/video/omap2/dss/dispc.c
Original file line number Diff line number Diff line change
Expand Up @@ -728,11 +728,10 @@ static void dispc_ovl_set_output_size(enum omap_plane plane, int width,
dispc_write_reg(DISPC_OVL_SIZE(plane), val);
}

static void dispc_ovl_set_zorder(enum omap_plane plane, u8 zorder)
static void dispc_ovl_set_zorder(enum omap_plane plane,
enum omap_overlay_caps caps, u8 zorder)
{
struct omap_overlay *ovl = omap_dss_get_overlay(plane);

if ((ovl->caps & OMAP_DSS_OVL_CAP_ZORDER) == 0)
if ((caps & OMAP_DSS_OVL_CAP_ZORDER) == 0)
return;

REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), zorder, 27, 26);
Expand All @@ -749,23 +748,22 @@ static void dispc_ovl_enable_zorder_planes(void)
REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(i), 1, 25, 25);
}

static void dispc_ovl_set_pre_mult_alpha(enum omap_plane plane, bool enable)
static void dispc_ovl_set_pre_mult_alpha(enum omap_plane plane,
enum omap_overlay_caps caps, bool enable)
{
struct omap_overlay *ovl = omap_dss_get_overlay(plane);

if ((ovl->caps & OMAP_DSS_OVL_CAP_PRE_MULT_ALPHA) == 0)
if ((caps & OMAP_DSS_OVL_CAP_PRE_MULT_ALPHA) == 0)
return;

REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), enable ? 1 : 0, 28, 28);
}

static void dispc_ovl_setup_global_alpha(enum omap_plane plane, u8 global_alpha)
static void dispc_ovl_setup_global_alpha(enum omap_plane plane,
enum omap_overlay_caps caps, u8 global_alpha)
{
static const unsigned shifts[] = { 0, 8, 16, 24, };
int shift;
struct omap_overlay *ovl = omap_dss_get_overlay(plane);

if ((ovl->caps & OMAP_DSS_OVL_CAP_GLOBAL_ALPHA) == 0)
if ((caps & OMAP_DSS_OVL_CAP_GLOBAL_ALPHA) == 0)
return;

shift = shifts[plane];
Expand Down Expand Up @@ -2193,14 +2191,13 @@ static int dispc_ovl_calc_scaling_44xx(enum omap_channel channel,
}

static int dispc_ovl_calc_scaling(enum omap_plane plane,
enum omap_channel channel,
enum omap_overlay_caps caps, enum omap_channel channel,
const struct omap_video_timings *mgr_timings,
u16 width, u16 height, u16 out_width, u16 out_height,
enum omap_color_mode color_mode, bool *five_taps,
int *x_predecim, int *y_predecim, u16 pos_x,
enum omap_dss_rotation_type rotation_type)
{
struct omap_overlay *ovl = omap_dss_get_overlay(plane);
const int maxdownscale = dss_feat_get_param_max(FEAT_PARAM_DOWNSCALE);
const int max_decim_limit = 16;
unsigned long core_clk = 0;
Expand All @@ -2209,7 +2206,7 @@ static int dispc_ovl_calc_scaling(enum omap_plane plane,
if (width == out_width && height == out_height)
return 0;

if ((ovl->caps & OMAP_DSS_OVL_CAP_SCALE) == 0)
if ((caps & OMAP_DSS_OVL_CAP_SCALE) == 0)
return -EINVAL;

*x_predecim = max_decim_limit;
Expand Down Expand Up @@ -2261,6 +2258,7 @@ int dispc_ovl_setup(enum omap_plane plane, const struct omap_overlay_info *oi,
bool replication, const struct omap_video_timings *mgr_timings)
{
struct omap_overlay *ovl = omap_dss_get_overlay(plane);
enum omap_overlay_caps caps = ovl->caps;
bool five_taps = true;
bool fieldmode = 0;
int r, cconv = 0;
Expand Down Expand Up @@ -2309,7 +2307,7 @@ int dispc_ovl_setup(enum omap_plane plane, const struct omap_overlay_info *oi,
if (!dss_feat_color_mode_supported(plane, oi->color_mode))
return -EINVAL;

r = dispc_ovl_calc_scaling(plane, channel, mgr_timings, in_width,
r = dispc_ovl_calc_scaling(plane, caps, channel, mgr_timings, in_width,
in_height, out_width, out_height, oi->color_mode,
&five_taps, &x_predecim, &y_predecim, oi->pos_x,
oi->rotation_type);
Expand Down Expand Up @@ -2391,7 +2389,7 @@ int dispc_ovl_setup(enum omap_plane plane, const struct omap_overlay_info *oi,

dispc_ovl_set_input_size(plane, in_width, in_height);

if (ovl->caps & OMAP_DSS_OVL_CAP_SCALE) {
if (caps & OMAP_DSS_OVL_CAP_SCALE) {
dispc_ovl_set_scaling(plane, in_width, in_height, out_width,
out_height, ilace, five_taps, fieldmode,
oi->color_mode, oi->rotation);
Expand All @@ -2403,9 +2401,9 @@ int dispc_ovl_setup(enum omap_plane plane, const struct omap_overlay_info *oi,
dispc_ovl_set_rotation_attrs(plane, oi->rotation, oi->mirror,
oi->color_mode);

dispc_ovl_set_zorder(plane, oi->zorder);
dispc_ovl_set_pre_mult_alpha(plane, oi->pre_mult_alpha);
dispc_ovl_setup_global_alpha(plane, oi->global_alpha);
dispc_ovl_set_zorder(plane, caps, oi->zorder);
dispc_ovl_set_pre_mult_alpha(plane, caps, oi->pre_mult_alpha);
dispc_ovl_setup_global_alpha(plane, caps, oi->global_alpha);

dispc_ovl_enable_replication(plane, replication);

Expand Down

0 comments on commit 483ac70

Please sign in to comment.