diff mbox

[DPU,v3,1/2] drm/msm/dsi: check video mode engine status before waiting

Message ID 1523930206-6304-1-git-send-email-abhinavk@codeaurora.org (mailing list archive)
State New, archived
Headers show

Commit Message

Abhinav Kumar April 17, 2018, 1:56 a.m. UTC
Make sure the video mode engine is on before waiting
for the video done interrupt.

Changes in v2:
- Replace pr_err with dev_err
- Changed error message

Changes in v3:
- Move the return value check to another
  patch

Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
---
 drivers/gpu/drm/msm/dsi/dsi_host.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

Sean Paul April 17, 2018, 8:25 p.m. UTC | #1
On Mon, Apr 16, 2018 at 06:56:45PM -0700, Abhinav Kumar wrote:
> Make sure the video mode engine is on before waiting
> for the video done interrupt.
> 
> Changes in v2:
> - Replace pr_err with dev_err
> - Changed error message
> 
> Changes in v3:
> - Move the return value check to another
>   patch
> 
> Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
> ---
>  drivers/gpu/drm/msm/dsi/dsi_host.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
> index 7a03a94..8df0d44 100644
> --- a/drivers/gpu/drm/msm/dsi/dsi_host.c
> +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
> @@ -173,6 +173,7 @@ struct msm_dsi_host {
>  
>  	bool registered;
>  	bool power_on;
> +	bool enabled;
>  	int irq;
>  };
>  
> @@ -1001,7 +1002,7 @@ static void dsi_wait4video_eng_busy(struct msm_dsi_host *msm_host)
>  	if (!(msm_host->mode_flags & MIPI_DSI_MODE_VIDEO))
>  		return;
>  
> -	if (msm_host->power_on) {
> +	if (msm_host->power_on && msm_host->enabled) {
>  		dsi_wait4video_done(msm_host);
>  		/* delay 4 ms to skip BLLP */
>  		usleep_range(2000, 4000);
> @@ -2203,7 +2204,7 @@ int msm_dsi_host_enable(struct mipi_dsi_host *host)
>  	 *	pm_runtime_put_autosuspend(&msm_host->pdev->dev);
>  	 * }
>  	 */
> -
> +	msm_host->enabled = true;
>  	return 0;
>  }
>  
> @@ -2219,7 +2220,7 @@ int msm_dsi_host_disable(struct mipi_dsi_host *host)
>  	 * Reset to disable video engine so that we can send off cmd.
>  	 */
>  	dsi_sw_reset(msm_host);
> -
> +	msm_host->enabled = false;

I thought this was moving to the start of the function?

>  	return 0;
>  }
>  
> -- 
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
>
Abhinav Kumar April 17, 2018, 8:41 p.m. UTC | #2
On 2018-04-17 13:25, Sean Paul wrote:
> On Mon, Apr 16, 2018 at 06:56:45PM -0700, Abhinav Kumar wrote:
>> Make sure the video mode engine is on before waiting
>> for the video done interrupt.
>> 
>> Changes in v2:
>> - Replace pr_err with dev_err
>> - Changed error message
>> 
>> Changes in v3:
>> - Move the return value check to another
>>   patch
>> 
>> Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
>> ---
>>  drivers/gpu/drm/msm/dsi/dsi_host.c | 7 ++++---
>>  1 file changed, 4 insertions(+), 3 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c 
>> b/drivers/gpu/drm/msm/dsi/dsi_host.c
>> index 7a03a94..8df0d44 100644
>> --- a/drivers/gpu/drm/msm/dsi/dsi_host.c
>> +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
>> @@ -173,6 +173,7 @@ struct msm_dsi_host {
>> 
>>  	bool registered;
>>  	bool power_on;
>> +	bool enabled;
>>  	int irq;
>>  };
>> 
>> @@ -1001,7 +1002,7 @@ static void dsi_wait4video_eng_busy(struct 
>> msm_dsi_host *msm_host)
>>  	if (!(msm_host->mode_flags & MIPI_DSI_MODE_VIDEO))
>>  		return;
>> 
>> -	if (msm_host->power_on) {
>> +	if (msm_host->power_on && msm_host->enabled) {
>>  		dsi_wait4video_done(msm_host);
>>  		/* delay 4 ms to skip BLLP */
>>  		usleep_range(2000, 4000);
>> @@ -2203,7 +2204,7 @@ int msm_dsi_host_enable(struct mipi_dsi_host 
>> *host)
>>  	 *	pm_runtime_put_autosuspend(&msm_host->pdev->dev);
>>  	 * }
>>  	 */
>> -
>> +	msm_host->enabled = true;
>>  	return 0;
>>  }
>> 
>> @@ -2219,7 +2220,7 @@ int msm_dsi_host_disable(struct mipi_dsi_host 
>> *host)
>>  	 * Reset to disable video engine so that we can send off cmd.
>>  	 */
>>  	dsi_sw_reset(msm_host);
>> -
>> +	msm_host->enabled = false;
> 
> I thought this was moving to the start of the function?
> 
[Abhinav] Yes, my bad. While rebasing that review comment was left out.
Uploading v4 right now
>>  	return 0;
>>  }
>> 
>> --
>> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora 
>> Forum,
>> a Linux Foundation Collaborative Project
>>
diff mbox

Patch

diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
index 7a03a94..8df0d44 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_host.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
@@ -173,6 +173,7 @@  struct msm_dsi_host {
 
 	bool registered;
 	bool power_on;
+	bool enabled;
 	int irq;
 };
 
@@ -1001,7 +1002,7 @@  static void dsi_wait4video_eng_busy(struct msm_dsi_host *msm_host)
 	if (!(msm_host->mode_flags & MIPI_DSI_MODE_VIDEO))
 		return;
 
-	if (msm_host->power_on) {
+	if (msm_host->power_on && msm_host->enabled) {
 		dsi_wait4video_done(msm_host);
 		/* delay 4 ms to skip BLLP */
 		usleep_range(2000, 4000);
@@ -2203,7 +2204,7 @@  int msm_dsi_host_enable(struct mipi_dsi_host *host)
 	 *	pm_runtime_put_autosuspend(&msm_host->pdev->dev);
 	 * }
 	 */
-
+	msm_host->enabled = true;
 	return 0;
 }
 
@@ -2219,7 +2220,7 @@  int msm_dsi_host_disable(struct mipi_dsi_host *host)
 	 * Reset to disable video engine so that we can send off cmd.
 	 */
 	dsi_sw_reset(msm_host);
-
+	msm_host->enabled = false;
 	return 0;
 }