Merge "disp: msm: sde: add support for 45deg dir & corner detection"
Esse commit está contido em:

commit de
Gerrit - the friendly Code Review server

commit
4522999001
@@ -268,6 +268,7 @@ struct sde_drm_de_v1 {
|
||||
#define SDE_DRM_QSEED3LITE
|
||||
#define SDE_DRM_QSEED4
|
||||
#define SDE_DRM_INLINE_PREDOWNSCALE
|
||||
#define SDE_DRM_QSEED6
|
||||
|
||||
/**
|
||||
* struct sde_drm_scaler_v2 - version 2 of struct sde_drm_scaler
|
||||
@@ -309,6 +310,8 @@ struct sde_drm_de_v1 {
|
||||
* @de_lpf_h: Detail enhancer lpf blend high
|
||||
* @de_lpf_l: Detail enhancer lpf blend low
|
||||
* @de_lpf_m: Detail enhancer lpf blend medium
|
||||
* @dir45_en: 45/-45 degree direction filtering enable
|
||||
* @cor_en: corner enhancer enable
|
||||
*/
|
||||
struct sde_drm_scaler_v2 {
|
||||
/*
|
||||
@@ -379,6 +382,8 @@ struct sde_drm_scaler_v2 {
|
||||
__u32 de_lpf_h;
|
||||
__u32 de_lpf_l;
|
||||
__u32 de_lpf_m;
|
||||
__u32 dir45_en;
|
||||
__u32 cor_en;
|
||||
};
|
||||
|
||||
/* Number of dest scalers supported */
|
||||
|
@@ -3392,6 +3392,8 @@ void reg_dmav1_setup_vig_qseed3(struct sde_hw_pipe *ctx,
|
||||
|
||||
op_mode |= (scaler3_cfg->blend_cfg & 1) << 31;
|
||||
op_mode |= (scaler3_cfg->dir_en) ? BIT(4) : 0;
|
||||
op_mode |= (scaler3_cfg->dir_en && scaler3_cfg->cor_en) ? BIT(5) : 0;
|
||||
op_mode |= (scaler3_cfg->dir_en && scaler3_cfg->dir45_en) ? BIT(6) : 0;
|
||||
op_mode |= (scaler3_cfg->dyn_exp_disabled) ? BIT(13) : 0;
|
||||
|
||||
preload =
|
||||
|
@@ -115,6 +115,8 @@ void sde_set_scaler_v2(struct sde_hw_scaler3_cfg *cfg,
|
||||
|
||||
cfg->enable = scale_v2->enable;
|
||||
cfg->dir_en = scale_v2->dir_en;
|
||||
cfg->dir45_en = scale_v2->dir45_en;
|
||||
cfg->cor_en = scale_v2->cor_en;
|
||||
|
||||
for (i = 0; i < SDE_MAX_PLANES; i++) {
|
||||
cfg->init_phase_x[i] = scale_v2->init_phase_x[i];
|
||||
@@ -376,6 +378,8 @@ void sde_hw_setup_scaler3(struct sde_hw_blk_reg_map *c,
|
||||
|
||||
op_mode |= (scaler3_cfg->blend_cfg & 1) << 31;
|
||||
op_mode |= (scaler3_cfg->dir_en) ? BIT(4) : 0;
|
||||
op_mode |= (scaler3_cfg->dir_en && scaler3_cfg->cor_en) ? BIT(5) : 0;
|
||||
op_mode |= (scaler3_cfg->dir_en && scaler3_cfg->dir45_en) ? BIT(6) : 0;
|
||||
op_mode |= (scaler3_cfg->dyn_exp_disabled) ? BIT(13) : 0;
|
||||
|
||||
preload =
|
||||
|
@@ -78,6 +78,8 @@ struct sde_hw_scaler3_de_cfg {
|
||||
* struct sde_hw_scaler3_cfg : QSEEDv3 configuration
|
||||
* @enable: scaler enable
|
||||
* @dir_en: direction detection block enable
|
||||
* @dir45_en: 45/-45 degree direction filtering block enable
|
||||
* @cor_en: corner detection block enable
|
||||
* @ init_phase_x: horizontal initial phase
|
||||
* @ phase_step_x: horizontal phase step
|
||||
* @ init_phase_y: vertical initial phase
|
||||
@@ -118,6 +120,8 @@ struct sde_hw_scaler3_de_cfg {
|
||||
struct sde_hw_scaler3_cfg {
|
||||
u32 enable;
|
||||
u32 dir_en;
|
||||
u32 dir45_en;
|
||||
u32 cor_en;
|
||||
int32_t init_phase_x[SDE_MAX_PLANES];
|
||||
int32_t phase_step_x[SDE_MAX_PLANES];
|
||||
int32_t init_phase_y[SDE_MAX_PLANES];
|
||||
|
Referência em uma nova issue
Block a user