1. 15 4月, 2019 1 次提交
    • D
      drm/amd/display: If one stream full updates, full update all planes · c238bfe0
      David Francis 提交于
      [Why]
      On some compositors, with two monitors attached, VT terminal
      switch can cause a graphical issue by the following means:
      
      There are two streams, one for each monitor. Each stream has one
      plane
      
      current state:
      	M1:S1->P1
      	M2:S2->P2
      
      The user calls for a terminal switch and a commit is made to
      change both planes to linear swizzle mode. In atomic check,
      a new dc_state is constructed with new planes on each stream
      
      new state:
      	M1:S1->P3
      	M2:S2->P4
      
      In commit tail, each stream is committed, one at a time. The first
      stream (S1) updates properly, triggerring a full update and replacing
      the state
      
      current state:
      	M1:S1->P3
      	M2:S2->P4
      
      The update for S2 comes in, but dc detects that there is no difference
      between the stream and plane in the new and current states, and so
      triggers a fast update. The fast update does not program swizzle,
      so the second monitor is corrupted
      
      [How]
      Add a flag to dc_plane_state that forces full updates
      
      When a stream undergoes a full update, set this flag on all changed
      planes, then clear it on the current stream
      
      Subsequent streams will get full updates as a result
      Signed-off-by: NDavid Francis <David.Francis@amd.com>
      Signed-off-by: NNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
      Reviewed-by: NRoman Li <Roman.Li@amd.com>
      Acked-by: Bhawanpreet Lakha <Bhawanpreet Lakha@amd.com>
      Acked-by: NNicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      c238bfe0
  2. 13 4月, 2019 2 次提交
  3. 11 4月, 2019 9 次提交
  4. 09 4月, 2019 6 次提交
  5. 08 4月, 2019 18 次提交
  6. 07 4月, 2019 4 次提交