diff options
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c | 18 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/core/dc.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c | 10 | 
3 files changed, 16 insertions, 16 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c index 0fa4fcd00de2..507a7cf56711 100644 --- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c +++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c @@ -820,22 +820,22 @@ static void dcn35_set_idle_state(struct clk_mgr *clk_mgr_base, bool allow_idle)  	if (dc->config.disable_ips == DMUB_IPS_ENABLE ||  		dc->config.disable_ips == DMUB_IPS_DISABLE_DYNAMIC) { -		val |= DMUB_IPS1_ALLOW_MASK; -		val |= DMUB_IPS2_ALLOW_MASK; -	} else if (dc->config.disable_ips == DMUB_IPS_DISABLE_IPS1) {  		val = val & ~DMUB_IPS1_ALLOW_MASK;  		val = val & ~DMUB_IPS2_ALLOW_MASK; -	} else if (dc->config.disable_ips == DMUB_IPS_DISABLE_IPS2) { -		val |= DMUB_IPS1_ALLOW_MASK; -		val = val & ~DMUB_IPS2_ALLOW_MASK; -	} else if (dc->config.disable_ips == DMUB_IPS_DISABLE_IPS2_Z10) { +	} else if (dc->config.disable_ips == DMUB_IPS_DISABLE_IPS1) {  		val |= DMUB_IPS1_ALLOW_MASK;  		val |= DMUB_IPS2_ALLOW_MASK; +	} else if (dc->config.disable_ips == DMUB_IPS_DISABLE_IPS2) { +		val = val & ~DMUB_IPS1_ALLOW_MASK; +		val |= DMUB_IPS2_ALLOW_MASK; +	} else if (dc->config.disable_ips == DMUB_IPS_DISABLE_IPS2_Z10) { +		val = val & ~DMUB_IPS1_ALLOW_MASK; +		val = val & ~DMUB_IPS2_ALLOW_MASK;  	}  	if (!allow_idle) { -		val = val & ~DMUB_IPS1_ALLOW_MASK; -		val = val & ~DMUB_IPS2_ALLOW_MASK; +		val |= DMUB_IPS1_ALLOW_MASK; +		val |= DMUB_IPS2_ALLOW_MASK;  	}  	dcn35_smu_write_ips_scratch(clk_mgr, val); diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c index d8f434738212..76b47f178127 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c @@ -4934,8 +4934,8 @@ bool dc_dmub_is_ips_idle_state(struct dc *dc)  	if (dc->hwss.get_idle_state)  		idle_state = dc->hwss.get_idle_state(dc); -	if ((idle_state & DMUB_IPS1_ALLOW_MASK) || -		(idle_state & DMUB_IPS2_ALLOW_MASK)) +	if (!(idle_state & DMUB_IPS1_ALLOW_MASK) || +		!(idle_state & DMUB_IPS2_ALLOW_MASK))  		return true;  	return false; diff --git a/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c b/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c index e4c007203318..0e07699c1e83 100644 --- a/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c +++ b/drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c @@ -1202,11 +1202,11 @@ void dc_dmub_srv_exit_low_power_state(const struct dc *dc)  		allow_state = dc->hwss.get_idle_state(dc);  		dc->hwss.set_idle_state(dc, false); -		if (allow_state & DMUB_IPS2_ALLOW_MASK) { +		if (!(allow_state & DMUB_IPS2_ALLOW_MASK)) {  			// Wait for evaluation time  			udelay(dc->debug.ips2_eval_delay_us);  			commit_state = dc->hwss.get_idle_state(dc); -			if (commit_state & DMUB_IPS2_COMMIT_MASK) { +			if (!(commit_state & DMUB_IPS2_COMMIT_MASK)) {  				// Tell PMFW to exit low power state  				dc->clk_mgr->funcs->exit_low_power_state(dc->clk_mgr); @@ -1216,7 +1216,7 @@ void dc_dmub_srv_exit_low_power_state(const struct dc *dc)  				for (i = 0; i < max_num_polls; ++i) {  					commit_state = dc->hwss.get_idle_state(dc); -					if (!(commit_state & DMUB_IPS2_COMMIT_MASK)) +					if (commit_state & DMUB_IPS2_COMMIT_MASK)  						break;  					udelay(1); @@ -1235,10 +1235,10 @@ void dc_dmub_srv_exit_low_power_state(const struct dc *dc)  		}  		dc_dmub_srv_notify_idle(dc, false); -		if (allow_state & DMUB_IPS1_ALLOW_MASK) { +		if (!(allow_state & DMUB_IPS1_ALLOW_MASK)) {  			for (i = 0; i < max_num_polls; ++i) {  				commit_state = dc->hwss.get_idle_state(dc); -				if (!(commit_state & DMUB_IPS1_COMMIT_MASK)) +				if (commit_state & DMUB_IPS1_COMMIT_MASK)  					break;  				udelay(1);  | 
