drm/amd/display: Add new set_fc_enable to struct dwbc_funcs
[WHAT] Add a function to enable and disable DWB's frame captures. Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Hung <alex.hung@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
fdf43d25e3
commit
50ad10cba6
@ -130,6 +130,28 @@ bool dwb3_disable(struct dwbc *dwbc)
|
||||
return true;
|
||||
}
|
||||
|
||||
void dwb3_set_fc_enable(struct dwbc *dwbc, enum dwb_frame_capture_enable enable)
|
||||
{
|
||||
struct dcn30_dwbc *dwbc30 = TO_DCN30_DWBC(dwbc);
|
||||
unsigned int pre_locked;
|
||||
|
||||
REG_GET(DWB_UPDATE_CTRL, DWB_UPDATE_LOCK, &pre_locked);
|
||||
|
||||
/* Lock DWB registers */
|
||||
if (pre_locked == 0)
|
||||
REG_UPDATE(DWB_UPDATE_CTRL, DWB_UPDATE_LOCK, 1);
|
||||
|
||||
/* Disable FC */
|
||||
REG_UPDATE(FC_MODE_CTRL, FC_FRAME_CAPTURE_EN, enable);
|
||||
|
||||
/* Unlock DWB registers */
|
||||
if (pre_locked == 0)
|
||||
REG_UPDATE(DWB_UPDATE_CTRL, DWB_UPDATE_LOCK, 0);
|
||||
|
||||
DC_LOG_DWB("%s dwb3_fc_disabled at inst = %d", __func__, dwbc->inst);
|
||||
}
|
||||
|
||||
|
||||
bool dwb3_update(struct dwbc *dwbc, struct dc_dwb_params *params)
|
||||
{
|
||||
struct dcn30_dwbc *dwbc30 = TO_DCN30_DWBC(dwbc);
|
||||
@ -226,6 +248,7 @@ static const struct dwbc_funcs dcn30_dwbc_funcs = {
|
||||
.disable = dwb3_disable,
|
||||
.update = dwb3_update,
|
||||
.is_enabled = dwb3_is_enabled,
|
||||
.set_fc_enable = dwb3_set_fc_enable,
|
||||
.set_stereo = dwb3_set_stereo,
|
||||
.set_new_content = dwb3_set_new_content,
|
||||
.dwb_program_output_csc = NULL,
|
||||
|
@ -877,6 +877,8 @@ bool dwb3_update(struct dwbc *dwbc, struct dc_dwb_params *params);
|
||||
|
||||
bool dwb3_is_enabled(struct dwbc *dwbc);
|
||||
|
||||
void dwb3_set_fc_enable(struct dwbc *dwbc, enum dwb_frame_capture_enable enable);
|
||||
|
||||
void dwb3_set_stereo(struct dwbc *dwbc,
|
||||
struct dwb_stereo_params *stereo_params);
|
||||
|
||||
|
@ -188,6 +188,10 @@ struct dwbc_funcs {
|
||||
bool (*is_enabled)(
|
||||
struct dwbc *dwbc);
|
||||
|
||||
void (*set_fc_enable)(
|
||||
struct dwbc *dwbc,
|
||||
enum dwb_frame_capture_enable enable);
|
||||
|
||||
void (*set_stereo)(
|
||||
struct dwbc *dwbc,
|
||||
struct dwb_stereo_params *stereo_params);
|
||||
|
Loading…
x
Reference in New Issue
Block a user