diff options
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_encoders.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c index f678257c42e6..d55cb58283a9 100644 --- a/drivers/gpu/drm/radeon/radeon_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_encoders.c | |||
| @@ -1086,6 +1086,8 @@ radeon_atom_encoder_dpms(struct drm_encoder *encoder, int mode) | |||
| 1086 | if (ASIC_IS_DCE4(rdev)) | 1086 | if (ASIC_IS_DCE4(rdev)) |
| 1087 | atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON); | 1087 | atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON); |
| 1088 | } | 1088 | } |
| 1089 | if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) | ||
| 1090 | atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_LCD_BLON, 0, 0); | ||
| 1089 | break; | 1091 | break; |
| 1090 | case DRM_MODE_DPMS_STANDBY: | 1092 | case DRM_MODE_DPMS_STANDBY: |
| 1091 | case DRM_MODE_DPMS_SUSPEND: | 1093 | case DRM_MODE_DPMS_SUSPEND: |
| @@ -1095,20 +1097,31 @@ radeon_atom_encoder_dpms(struct drm_encoder *encoder, int mode) | |||
| 1095 | if (ASIC_IS_DCE4(rdev)) | 1097 | if (ASIC_IS_DCE4(rdev)) |
| 1096 | atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_OFF); | 1098 | atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_OFF); |
| 1097 | } | 1099 | } |
| 1100 | if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) | ||
| 1101 | atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_LCD_BLOFF, 0, 0); | ||
| 1098 | break; | 1102 | break; |
| 1099 | } | 1103 | } |
| 1100 | } else { | 1104 | } else { |
| 1101 | switch (mode) { | 1105 | switch (mode) { |
| 1102 | case DRM_MODE_DPMS_ON: | 1106 | case DRM_MODE_DPMS_ON: |
| 1103 | args.ucAction = ATOM_ENABLE; | 1107 | args.ucAction = ATOM_ENABLE; |
| 1108 | atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); | ||
| 1109 | if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) { | ||
| 1110 | args.ucAction = ATOM_LCD_BLON; | ||
| 1111 | atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); | ||
| 1112 | } | ||
| 1104 | break; | 1113 | break; |
| 1105 | case DRM_MODE_DPMS_STANDBY: | 1114 | case DRM_MODE_DPMS_STANDBY: |
| 1106 | case DRM_MODE_DPMS_SUSPEND: | 1115 | case DRM_MODE_DPMS_SUSPEND: |
| 1107 | case DRM_MODE_DPMS_OFF: | 1116 | case DRM_MODE_DPMS_OFF: |
| 1108 | args.ucAction = ATOM_DISABLE; | 1117 | args.ucAction = ATOM_DISABLE; |
| 1118 | atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); | ||
| 1119 | if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) { | ||
| 1120 | args.ucAction = ATOM_LCD_BLOFF; | ||
| 1121 | atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); | ||
| 1122 | } | ||
| 1109 | break; | 1123 | break; |
| 1110 | } | 1124 | } |
| 1111 | atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); | ||
| 1112 | } | 1125 | } |
| 1113 | radeon_atombios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); | 1126 | radeon_atombios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); |
| 1114 | 1127 | ||
