|
@@ -484,7 +484,7 @@ static int sde_rsc_switch_to_cmd(struct sde_rsc_priv *rsc,
|
|
*/
|
|
*/
|
|
if (rsc->current_state == SDE_RSC_CMD_STATE) {
|
|
if (rsc->current_state == SDE_RSC_CMD_STATE) {
|
|
rc = 0;
|
|
rc = 0;
|
|
- if (config)
|
|
|
|
|
|
+ if (config && rsc->version < SDE_RSC_REV_3)
|
|
goto vsync_wait;
|
|
goto vsync_wait;
|
|
else
|
|
else
|
|
goto end;
|
|
goto end;
|
|
@@ -504,7 +504,8 @@ static int sde_rsc_switch_to_cmd(struct sde_rsc_priv *rsc,
|
|
|
|
|
|
vsync_wait:
|
|
vsync_wait:
|
|
/* indicate wait for vsync for vid to cmd state switch & cfg update */
|
|
/* indicate wait for vsync for vid to cmd state switch & cfg update */
|
|
- if (!rc && (rsc->current_state == SDE_RSC_VID_STATE ||
|
|
|
|
|
|
+ if (!rc && (rsc->version < SDE_RSC_REV_3) &&
|
|
|
|
+ (rsc->current_state == SDE_RSC_VID_STATE ||
|
|
rsc->current_state == SDE_RSC_CMD_STATE)) {
|
|
rsc->current_state == SDE_RSC_CMD_STATE)) {
|
|
/* clear VSYNC timestamp for indication when update completes */
|
|
/* clear VSYNC timestamp for indication when update completes */
|
|
if (rsc->hw_ops.hw_vsync)
|
|
if (rsc->hw_ops.hw_vsync)
|
|
@@ -622,7 +623,7 @@ static int sde_rsc_switch_to_vid(struct sde_rsc_priv *rsc,
|
|
*/
|
|
*/
|
|
if (rsc->current_state == SDE_RSC_VID_STATE) {
|
|
if (rsc->current_state == SDE_RSC_VID_STATE) {
|
|
rc = 0;
|
|
rc = 0;
|
|
- if (config)
|
|
|
|
|
|
+ if (config && rsc->version < SDE_RSC_REV_3)
|
|
goto vsync_wait;
|
|
goto vsync_wait;
|
|
else
|
|
else
|
|
goto end;
|
|
goto end;
|
|
@@ -643,7 +644,8 @@ static int sde_rsc_switch_to_vid(struct sde_rsc_priv *rsc,
|
|
|
|
|
|
vsync_wait:
|
|
vsync_wait:
|
|
/* indicate wait for vsync for vid to cmd state switch & cfg update */
|
|
/* indicate wait for vsync for vid to cmd state switch & cfg update */
|
|
- if (!rc && (rsc->current_state == SDE_RSC_VID_STATE ||
|
|
|
|
|
|
+ if (!rc && (rsc->version < SDE_RSC_REV_3) &&
|
|
|
|
+ (rsc->current_state == SDE_RSC_VID_STATE ||
|
|
rsc->current_state == SDE_RSC_CMD_STATE)) {
|
|
rsc->current_state == SDE_RSC_CMD_STATE)) {
|
|
/* clear VSYNC timestamp for indication when update completes */
|
|
/* clear VSYNC timestamp for indication when update completes */
|
|
if (rsc->hw_ops.hw_vsync)
|
|
if (rsc->hw_ops.hw_vsync)
|