Skip to content
This repository was archived by the owner on Feb 9, 2023. It is now read-only.

Commit abca240

Browse files
Eric Yangalexdeucher
authored andcommitted
drm/amd/display: early return if not in vga mode in disable_vga
The work around for hw bug causes S3 resume failure. Don't execute disable vga logic if not in vga mode. Signed-off-by: Eric Yang <Eric.Yang2@amd.com> Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> Acked-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent bd9bc35 commit abca240

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

drivers/gpu/drm/amd/display/dc/dce/dce_hwseq.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -495,10 +495,11 @@ struct dce_hwseq_registers {
495495
HWS_SF(, DOMAIN6_PG_STATUS, DOMAIN6_PGFSM_PWR_STATUS, mask_sh), \
496496
HWS_SF(, DOMAIN7_PG_STATUS, DOMAIN7_PGFSM_PWR_STATUS, mask_sh), \
497497
HWS_SF(, DC_IP_REQUEST_CNTL, IP_REQUEST_EN, mask_sh), \
498-
HWS_SF(, LVTMA_PWRSEQ_CNTL, LVTMA_BLON, mask_sh), \
499-
HWS_SF(, LVTMA_PWRSEQ_STATE, LVTMA_PWRSEQ_TARGET_STATE_R, mask_sh), \
498+
HWS_SF(, D1VGA_CONTROL, D1VGA_MODE_ENABLE, mask_sh),\
500499
HWS_SF(, VGA_TEST_CONTROL, VGA_TEST_ENABLE, mask_sh),\
501-
HWS_SF(, VGA_TEST_CONTROL, VGA_TEST_RENDER_START, mask_sh)
500+
HWS_SF(, VGA_TEST_CONTROL, VGA_TEST_RENDER_START, mask_sh),\
501+
HWS_SF(, LVTMA_PWRSEQ_CNTL, LVTMA_BLON, mask_sh), \
502+
HWS_SF(, LVTMA_PWRSEQ_STATE, LVTMA_PWRSEQ_TARGET_STATE_R, mask_sh)
502503

503504
#define HWSEQ_REG_FIELD_LIST(type) \
504505
type DCFE_CLOCK_ENABLE; \
@@ -589,7 +590,8 @@ struct dce_hwseq_registers {
589590
type DENTIST_DPPCLK_WDIVIDER; \
590591
type DENTIST_DISPCLK_WDIVIDER; \
591592
type VGA_TEST_ENABLE; \
592-
type VGA_TEST_RENDER_START;
593+
type VGA_TEST_RENDER_START; \
594+
type D1VGA_MODE_ENABLE;
593595

594596
struct dce_hwseq_shift {
595597
HWSEQ_REG_FIELD_LIST(uint8_t)

drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -238,10 +238,14 @@ static void enable_power_gating_plane(
238238
static void disable_vga(
239239
struct dce_hwseq *hws)
240240
{
241+
unsigned int in_vga_mode = 0;
242+
243+
REG_GET(D1VGA_CONTROL, D1VGA_MODE_ENABLE, &in_vga_mode);
244+
245+
if (in_vga_mode == 0)
246+
return;
247+
241248
REG_WRITE(D1VGA_CONTROL, 0);
242-
REG_WRITE(D2VGA_CONTROL, 0);
243-
REG_WRITE(D3VGA_CONTROL, 0);
244-
REG_WRITE(D4VGA_CONTROL, 0);
245249

246250
/* HW Engineer's Notes:
247251
* During switch from vga->extended, if we set the VGA_TEST_ENABLE and

0 commit comments

Comments
 (0)