Commit 990dee3a authored by james qian wang (Arm Technology China)'s avatar james qian wang (Arm Technology China) Committed by Liviu Dudau

drm/komeda: Computing image enhancer internally

Enable image enhancer when the input data flow is 2x+ upscaling.
Signed-off-by: default avatarjames qian wang (Arm Technology China) <james.qian.wang@arm.com>
Signed-off-by: default avatarLiviu Dudau <Liviu.Dudau@arm.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190708070000.4945-1-james.qian.wang@arm.com
parent 1930c112
...@@ -47,11 +47,8 @@ struct komeda_plane_state { ...@@ -47,11 +47,8 @@ struct komeda_plane_state {
/** @zlist_node: zorder list node */ /** @zlist_node: zorder list node */
struct list_head zlist_node; struct list_head zlist_node;
/* @img_enhancement: on/off image enhancement /** @layer_split: on/off layer_split */
* @layer_split: on/off layer_split u8 layer_split : 1;
*/
u8 img_enhancement : 1,
layer_split : 1;
}; };
/** /**
......
...@@ -806,6 +806,10 @@ void komeda_complete_data_flow_cfg(struct komeda_layer *layer, ...@@ -806,6 +806,10 @@ void komeda_complete_data_flow_cfg(struct komeda_layer *layer,
dflow->en_scaling = (w != dflow->out_w) || (h != dflow->out_h); dflow->en_scaling = (w != dflow->out_w) || (h != dflow->out_h);
dflow->is_yuv = fb->format->is_yuv; dflow->is_yuv = fb->format->is_yuv;
/* try to enable image enhancer if data flow is a 2x+ upscaling */
dflow->en_img_enhancement = dflow->out_w >= 2 * w ||
dflow->out_h >= 2 * h;
/* try to enable split if scaling exceed the scaler's acceptable /* try to enable split if scaling exceed the scaler's acceptable
* input/output range. * input/output range.
*/ */
......
...@@ -18,7 +18,6 @@ komeda_plane_init_data_flow(struct drm_plane_state *st, ...@@ -18,7 +18,6 @@ komeda_plane_init_data_flow(struct drm_plane_state *st,
struct komeda_data_flow_cfg *dflow) struct komeda_data_flow_cfg *dflow)
{ {
struct komeda_plane *kplane = to_kplane(st->plane); struct komeda_plane *kplane = to_kplane(st->plane);
struct komeda_plane_state *kplane_st = to_kplane_st(st);
struct drm_framebuffer *fb = st->fb; struct drm_framebuffer *fb = st->fb;
const struct komeda_format_caps *caps = to_kfb(fb)->format_caps; const struct komeda_format_caps *caps = to_kfb(fb)->format_caps;
struct komeda_pipeline *pipe = kplane->layer->base.pipeline; struct komeda_pipeline *pipe = kplane->layer->base.pipeline;
...@@ -57,8 +56,6 @@ komeda_plane_init_data_flow(struct drm_plane_state *st, ...@@ -57,8 +56,6 @@ komeda_plane_init_data_flow(struct drm_plane_state *st,
return -EINVAL; return -EINVAL;
} }
dflow->en_img_enhancement = !!kplane_st->img_enhancement;
komeda_complete_data_flow_cfg(kplane->layer, dflow, fb); komeda_complete_data_flow_cfg(kplane->layer, dflow, fb);
return 0; return 0;
...@@ -174,8 +171,6 @@ komeda_plane_atomic_duplicate_state(struct drm_plane *plane) ...@@ -174,8 +171,6 @@ komeda_plane_atomic_duplicate_state(struct drm_plane *plane)
old = to_kplane_st(plane->state); old = to_kplane_st(plane->state);
new->img_enhancement = old->img_enhancement;
return &new->base; return &new->base;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment