psr_version
acrtc_state->stream->link->psr_settings.psr_version ==
if (acrtc_state->stream->link->psr_settings.psr_version >= DC_PSR_VERSION_SU_1 &&
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
link->psr_settings.psr_version,
link->dpcd_caps.psr_info.psr_version,
if (acrtc_state->stream->link->psr_settings.psr_version <
else if (psr->psr_version != DC_PSR_VERSION_UNSUPPORTED &&
if (psr->psr_version == DC_PSR_VERSION_SU_1 &&
if (stream_state->link->psr_settings.psr_version < DC_PSR_VERSION_SU_1)
if (link->psr_settings.psr_version < DC_PSR_VERSION_SU_1 && is_sr_active)
bool sr_supported = (psr->psr_version != DC_PSR_VERSION_UNSUPPORTED) ||
seq_printf(m, "Sink support: %s", str_yes_no(link->dpcd_caps.psr_info.psr_version != 0));
if (link->dpcd_caps.psr_info.psr_version)
seq_printf(m, " [0x%02x]", link->dpcd_caps.psr_info.psr_version);
if (link->psr_settings.psr_version)
seq_printf(m, " [0x%02x]", link->psr_settings.psr_version);
if (link->psr_settings.psr_version != DC_PSR_VERSION_UNSUPPORTED) {
if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) {
if (link->psr_settings.psr_version < DC_PSR_VERSION_SU_1)
if (link->dpcd_caps.psr_info.psr_version == 0) {
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
link->psr_settings.psr_version = DC_PSR_VERSION_SU_1;
link->psr_settings.psr_version = DC_PSR_VERSION_1;
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
if ((stream->link->psr_settings.psr_version == DC_PSR_VERSION_SU_1
|| stream->link->psr_settings.psr_version == DC_PSR_VERSION_1)
if ((pipe_ctx->stream->link->psr_settings.psr_version == DC_PSR_VERSION_SU_1 ||
pipe_ctx->stream->link->psr_settings.psr_version == DC_PSR_VERSION_1) &&
uint8_t psr_version;
unsigned char psr_version;
enum dc_psr_version psr_version; // Internal PSR version, determined based on DPCD
unsigned char psr_version;
dmcu->dmcu_version.psr_version = REG_READ(DMCU_IRAM_RD_DATA);
if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1)
if (link->psr_settings.psr_version == DC_PSR_VERSION_1) {
if (stream->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED)
switch (stream->link->psr_settings.psr_version) {
if (link->psr_settings.psr_version == DC_PSR_VERSION_1 &&
bool is_psr = (link && (link->psr_settings.psr_version == DC_PSR_VERSION_1 ||
link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) && !link->panel_config.psr.disable_psr);
if (context->res_ctx.pipe_ctx[i].stream->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED) {
bool is_psr = (link && (link->psr_settings.psr_version == DC_PSR_VERSION_1 ||
link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) && !link->panel_config.psr.disable_psr);
bool is_psr = (link && (link->psr_settings.psr_version == DC_PSR_VERSION_1 ||
link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) && !link->panel_config.psr.disable_psr);
if (param->stream->link->psr_settings.psr_version >= DC_PSR_VERSION_SU_1 &&
stream->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED &&
(dc->current_state->streams[i]->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED))
dc->current_state->streams[i]->link->psr_settings.psr_version != DC_PSR_VERSION_UNSUPPORTED &&
pipe->stream->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED &&
(link->psr_settings.psr_version == DC_PSR_VERSION_1 ||
link->psr_settings.psr_version == DC_PSR_VERSION_SU_1);
(dc->current_state->streams[i]->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED))
dc->current_state->streams[i]->link->psr_settings.psr_version != DC_PSR_VERSION_UNSUPPORTED) {
pipe->stream->link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED &&
unsigned int psr_version;
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED;
&link->dpcd_caps.psr_info.psr_version,
sizeof(link->dpcd_caps.psr_info.psr_version));
if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) {
&link->dpcd_caps.psr_info.psr_version,
sizeof(link->dpcd_caps.psr_info.psr_version));
if (link->psr_settings.psr_version == DC_PSR_VERSION_UNSUPPORTED)
if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) {
if (link->psr_settings.psr_version == DC_PSR_VERSION_SU_1) {
if (pipe->stream && pipe->stream->link->psr_settings.psr_version != DC_PSR_VERSION_UNSUPPORTED) {
enum psr_version version;
if (stream->link->psr_settings.psr_version == DC_PSR_VERSION_SU_1)
else if (stream->link->psr_settings.psr_version == DC_PSR_VERSION_1)
if (dpcd_caps->psr_info.psr_version >= DP_PSR2_WITH_Y_COORD_ET_SUPPORTED)
if (dpcd_caps->psr_info.psr_version < DP_PSR2_WITH_Y_COORD_IS_SUPPORTED)
ret = drm_dp_dpcd_readb(&dp->aux, DP_PSR_SUPPORT, &psr_version);
dev_dbg(dp->dev, "Panel PSR version : %x\n", psr_version);
return psr_version & DP_PSR_IS_SUPPORTED;
unsigned char psr_version;