diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0914-drm-amdgpu-atom-add-support-for-new-DIGxEncoderContr.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0914-drm-amdgpu-atom-add-support-for-new-DIGxEncoderContr.patch | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0914-drm-amdgpu-atom-add-support-for-new-DIGxEncoderContr.patch b/common/recipes-kernel/linux/files/0914-drm-amdgpu-atom-add-support-for-new-DIGxEncoderContr.patch new file mode 100644 index 00000000..d30858cb --- /dev/null +++ b/common/recipes-kernel/linux/files/0914-drm-amdgpu-atom-add-support-for-new-DIGxEncoderContr.patch @@ -0,0 +1,81 @@ +From 626eec7371d0431e3f446ed843e4b63b2779040d Mon Sep 17 00:00:00 2001 +From: Alex Deucher <alexander.deucher@amd.com> +Date: Thu, 15 Oct 2015 14:49:53 -0400 +Subject: [PATCH 0914/1110] drm/amdgpu/atom: add support for new + DIGxEncoderControl cmd table +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +New digital encoder setup table for elm/baf. + +Reviewed-by: Christian König <christian.koenig@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/atombios_encoders.c | 42 ++++++++++++++++++++++++++ + 1 file changed, 42 insertions(+) + +diff --git a/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c b/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c +index 1cd6de5..3481962 100644 +--- a/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c ++++ b/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c +@@ -567,6 +567,7 @@ union dig_encoder_control { + DIG_ENCODER_CONTROL_PARAMETERS_V2 v2; + DIG_ENCODER_CONTROL_PARAMETERS_V3 v3; + DIG_ENCODER_CONTROL_PARAMETERS_V4 v4; ++ DIG_ENCODER_CONTROL_PARAMETERS_V5 v5; + }; + + void +@@ -694,6 +695,47 @@ amdgpu_atombios_encoder_setup_dig_encoder(struct drm_encoder *encoder, + else + args.v4.ucHPD_ID = hpd_id + 1; + break; ++ case 5: ++ switch (action) { ++ case ATOM_ENCODER_CMD_SETUP_PANEL_MODE: ++ args.v5.asDPPanelModeParam.ucAction = action; ++ args.v5.asDPPanelModeParam.ucPanelMode = panel_mode; ++ args.v5.asDPPanelModeParam.ucDigId = dig->dig_encoder; ++ break; ++ case ATOM_ENCODER_CMD_STREAM_SETUP: ++ args.v5.asStreamParam.ucAction = action; ++ args.v5.asStreamParam.ucDigId = dig->dig_encoder; ++ args.v5.asStreamParam.ucDigMode = ++ amdgpu_atombios_encoder_get_encoder_mode(encoder); ++ if (ENCODER_MODE_IS_DP(args.v5.asStreamParam.ucDigMode)) ++ args.v5.asStreamParam.ucLaneNum = dp_lane_count; ++ else if (amdgpu_dig_monitor_is_duallink(encoder, ++ amdgpu_encoder->pixel_clock)) ++ args.v5.asStreamParam.ucLaneNum = 8; ++ else ++ args.v5.asStreamParam.ucLaneNum = 4; ++ args.v5.asStreamParam.ulPixelClock = ++ cpu_to_le32(amdgpu_encoder->pixel_clock / 10); ++ args.v5.asStreamParam.ucBitPerColor = ++ amdgpu_atombios_encoder_get_bpc(encoder); ++ args.v5.asStreamParam.ucLinkRateIn270Mhz = dp_clock / 27000; ++ break; ++ case ATOM_ENCODER_CMD_DP_LINK_TRAINING_START: ++ case ATOM_ENCODER_CMD_DP_LINK_TRAINING_PATTERN1: ++ case ATOM_ENCODER_CMD_DP_LINK_TRAINING_PATTERN2: ++ case ATOM_ENCODER_CMD_DP_LINK_TRAINING_PATTERN3: ++ case ATOM_ENCODER_CMD_DP_LINK_TRAINING_PATTERN4: ++ case ATOM_ENCODER_CMD_DP_LINK_TRAINING_COMPLETE: ++ case ATOM_ENCODER_CMD_DP_VIDEO_OFF: ++ case ATOM_ENCODER_CMD_DP_VIDEO_ON: ++ args.v5.asCmdParam.ucAction = action; ++ args.v5.asCmdParam.ucDigId = dig->dig_encoder; ++ break; ++ default: ++ DRM_ERROR("Unsupported action 0x%x\n", action); ++ break; ++ } ++ break; + default: + DRM_ERROR("Unknown table version %d, %d\n", frev, crev); + break; +-- +2.7.4 + |