Hi,

Why not set  "vsc_packet_rev2" when "stream->link->psr_settings.psr_version == 
DC_PSR_VERSION_1"?
This would be safer for future PSR versions also.

BR,
Chandan V N

>[why & how]
>We need to implement the VSC packet rev4 that is required by PSRSU.
>
>Follow the eDP 1.5 spec pg. 257
>
>Signed-off-by: David Zhang <dingchen.zh...@amd.com>
>---
> .../display/modules/info_packet/info_packet.c | 29 +++++++++++++++++--
> 1 file changed, 27 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c 
>b/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
>index 79bc207415bc..c7d1b48c0478 100644
>--- a/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
>+++ b/drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c
>@@ -145,8 +145,10 @@ void mod_build_vsc_infopacket(const struct 
>dc_stream_state *stream,
>               stereo3dSupport = true;
>       }
> 
>-      /*VSC packet set to 2 when DP revision >= 1.2*/
>-      if (stream->link->psr_settings.psr_version != 
>DC_PSR_VERSION_UNSUPPORTED)
>+      /*VSC packet set to 4 for PSR-SU, or 2 for all other PSR support cases*/
>+      if (stream->link->psr_settings.psr_version == DC_PSR_VERSION_SU_1)
>+              vsc_packet_revision = vsc_packet_rev4;
>+      else if (stream->link->psr_settings.psr_version != 
>+DC_PSR_VERSION_UNSUPPORTED)
>               vsc_packet_revision = vsc_packet_rev2;
> 
>       /* Update to revision 5 for extended colorimetry support */ @@ -159,6 
> +161,29 @@ void mod_build_vsc_infopacket(const struct >dc_stream_state 
> *stream,
>       if (vsc_packet_revision == vsc_packet_undefined)
>               return;
> 
>+      if (vsc_packet_revision == vsc_packet_rev4) {
>+              /* Secondary-data Packet ID = 0*/
>+              info_packet->hb0 = 0x00;
>+              /* 07h - Packet Type Value indicating Video
>+               * Stream Configuration packet
>+               */
>+              info_packet->hb1 = 0x07;
>+              /* 04h = VSC SDP supporting 3D stereo + PSR/PSR2 + Y-coordinate
>+               * (applies to eDP v1.4 or higher).
>+               */
>+              info_packet->hb2 = 0x04;
>+              /* 0Eh = VSC SDP supporting 3D stereo + PSR2
>+               * (HB2 = 04h), with Y-coordinate of first scan
>+               * line of the SU region
>+               */
>+              info_packet->hb3 = 0x0E;
>+
>+              for (i = 0; i < 28; i++)
>+                      info_packet->sb[i] = 0;
>+
>+              info_packet->valid = true;
>+      }
>+
>       if (vsc_packet_revision == vsc_packet_rev2) {
>               /* Secondary-data Packet ID = 0*/
>               info_packet->hb0 = 0x00;
>--
>2.25.1

Reply via email to