diff mbox

[resend,13/15] drm/i915/dsi: Execute MIPI_SEQ_TEAR_OFF from intel_dsi_post_disable

Message ID 20170220140845.1714-14-hdegoede@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Hans de Goede Feb. 20, 2017, 2:08 p.m. UTC
For v3 VBTs we should call MIPI_SEQ_TEAR_OFF before
MIPI_SEQ_DISPLAY_OFF, for non v3 VBTs this is a nop.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/gpu/drm/i915/intel_dsi.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Paauwe, Bob J Feb. 24, 2017, 5:02 p.m. UTC | #1
On Mon, 20 Feb 2017 15:08:43 +0100
Hans de Goede <hdegoede@redhat.com> wrote:

> For v3 VBTs we should call MIPI_SEQ_TEAR_OFF before
> MIPI_SEQ_DISPLAY_OFF, for non v3 VBTs this is a nop.

Isn't this only for command mode?  Or is there conflicting information
on this?

> 
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/gpu/drm/i915/intel_dsi.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
> index 1914311..90263d6 100644
> --- a/drivers/gpu/drm/i915/intel_dsi.c
> +++ b/drivers/gpu/drm/i915/intel_dsi.c
> @@ -772,6 +772,7 @@ static void intel_dsi_post_disable(struct intel_encoder *encoder,
>  	 * XXX spec specifies SHUTDOWN before MIPI_SEQ_DISPLAY_OFF for
>  	 * v3 VBTs, but not for v2 VBTs?
>  	 */
> +	intel_dsi_exec_vbt_sequence(intel_dsi, MIPI_SEQ_TEAR_OFF);
>  	intel_dsi_exec_vbt_sequence(intel_dsi, MIPI_SEQ_DISPLAY_OFF);
>  
>  	/* Transition to LP-00 */
Hans de Goede Feb. 25, 2017, 10:45 a.m. UTC | #2
Hi,

On 24-02-17 18:02, Bob Paauwe wrote:
> On Mon, 20 Feb 2017 15:08:43 +0100
> Hans de Goede <hdegoede@redhat.com> wrote:
>
>> For v3 VBTs we should call MIPI_SEQ_TEAR_OFF before
>> MIPI_SEQ_DISPLAY_OFF, for non v3 VBTs this is a nop.
>
> Isn't this only for command mode?  Or is there conflicting information
> on this?

In my (limited) set of test hardware vidmode panel VBTs simply
do not define a MIPI_SEQ_TEAR_ON/OFF sequence. But it would probably
be a good idea to guard this with a "if (is_cmd_mode(intel_dsi))"
assuming we only want this for commandmode, which I think we do,
but it would be good to have this confirmed.

I'll add the guard when I send out a v2 after we've clarified
some of the other review questions.

Regards,

Hans



>
>>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>>  drivers/gpu/drm/i915/intel_dsi.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
>> index 1914311..90263d6 100644
>> --- a/drivers/gpu/drm/i915/intel_dsi.c
>> +++ b/drivers/gpu/drm/i915/intel_dsi.c
>> @@ -772,6 +772,7 @@ static void intel_dsi_post_disable(struct intel_encoder *encoder,
>>  	 * XXX spec specifies SHUTDOWN before MIPI_SEQ_DISPLAY_OFF for
>>  	 * v3 VBTs, but not for v2 VBTs?
>>  	 */
>> +	intel_dsi_exec_vbt_sequence(intel_dsi, MIPI_SEQ_TEAR_OFF);
>>  	intel_dsi_exec_vbt_sequence(intel_dsi, MIPI_SEQ_DISPLAY_OFF);
>>
>>  	/* Transition to LP-00 */
>
>
>
Jani Nikula Feb. 27, 2017, 5:47 p.m. UTC | #3
On Sat, 25 Feb 2017, Hans de Goede <hdegoede@redhat.com> wrote:
> Hi,
>
> On 24-02-17 18:02, Bob Paauwe wrote:
>> On Mon, 20 Feb 2017 15:08:43 +0100
>> Hans de Goede <hdegoede@redhat.com> wrote:
>>
>>> For v3 VBTs we should call MIPI_SEQ_TEAR_OFF before
>>> MIPI_SEQ_DISPLAY_OFF, for non v3 VBTs this is a nop.
>>
>> Isn't this only for command mode?  Or is there conflicting information
>> on this?
>
> In my (limited) set of test hardware vidmode panel VBTs simply
> do not define a MIPI_SEQ_TEAR_ON/OFF sequence. But it would probably
> be a good idea to guard this with a "if (is_cmd_mode(intel_dsi))"
> assuming we only want this for commandmode, which I think we do,
> but it would be good to have this confirmed.

Logically you wouldn't do tear on/off on video mode panels. But that's
really not the point. I wouldn't be surprised if there were setups where
someone noticed that this particular sequence gets run at an appropriate
time on Windows, and shoved some other stuff there, completely unrelated
to tear on/off.

BR,
Jani.


>
> I'll add the guard when I send out a v2 after we've clarified
> some of the other review questions.
>
> Regards,
>
> Hans
>
>
>
>>
>>>
>>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>>> ---
>>>  drivers/gpu/drm/i915/intel_dsi.c | 1 +
>>>  1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
>>> index 1914311..90263d6 100644
>>> --- a/drivers/gpu/drm/i915/intel_dsi.c
>>> +++ b/drivers/gpu/drm/i915/intel_dsi.c
>>> @@ -772,6 +772,7 @@ static void intel_dsi_post_disable(struct intel_encoder *encoder,
>>>  	 * XXX spec specifies SHUTDOWN before MIPI_SEQ_DISPLAY_OFF for
>>>  	 * v3 VBTs, but not for v2 VBTs?
>>>  	 */
>>> +	intel_dsi_exec_vbt_sequence(intel_dsi, MIPI_SEQ_TEAR_OFF);
>>>  	intel_dsi_exec_vbt_sequence(intel_dsi, MIPI_SEQ_DISPLAY_OFF);
>>>
>>>  	/* Transition to LP-00 */
>>
>>
>>
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
index 1914311..90263d6 100644
--- a/drivers/gpu/drm/i915/intel_dsi.c
+++ b/drivers/gpu/drm/i915/intel_dsi.c
@@ -772,6 +772,7 @@  static void intel_dsi_post_disable(struct intel_encoder *encoder,
 	 * XXX spec specifies SHUTDOWN before MIPI_SEQ_DISPLAY_OFF for
 	 * v3 VBTs, but not for v2 VBTs?
 	 */
+	intel_dsi_exec_vbt_sequence(intel_dsi, MIPI_SEQ_TEAR_OFF);
 	intel_dsi_exec_vbt_sequence(intel_dsi, MIPI_SEQ_DISPLAY_OFF);
 
 	/* Transition to LP-00 */