Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cc9f67a0 authored by Alex Deucher's avatar Alex Deucher Committed by Dave Airlie
Browse files

drm/radeon/kms/atom: AdjustPixelClock fixes for DP bridges



Need to set the external transmitter type properly in
AdjustPixelClock to get the properly output.

Signed-off-by: default avatarAlex Deucher <alexdeucher@gmail.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent f89931f3
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -671,6 +671,13 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc,
								DISPPLL_CONFIG_DUAL_LINK;
					}
				}
				if (radeon_encoder_is_dp_bridge(encoder)) {
					struct drm_encoder *ext_encoder = radeon_atom_get_external_encoder(encoder);
					struct radeon_encoder *ext_radeon_encoder = to_radeon_encoder(ext_encoder);
					args.v3.sInput.ucExtTransmitterID = ext_radeon_encoder->encoder_id;
				} else
					args.v3.sInput.ucExtTransmitterID = 0;

				atom_execute_table(rdev->mode_info.atom_context,
						   index, (uint32_t *)&args);
				adjusted_clock = le32_to_cpu(args.v3.sOutput.ulDispPllFreq) * 10;
+1 −0
Original line number Diff line number Diff line
@@ -484,6 +484,7 @@ extern void atombios_dig_transmitter_setup(struct drm_encoder *encoder,
					   int action, uint8_t lane_num,
					   uint8_t lane_set);
extern void radeon_atom_ext_encoder_setup_ddc(struct drm_encoder *encoder);
extern struct drm_encoder *radeon_atom_get_external_encoder(struct drm_encoder *encoder);
extern int radeon_dp_i2c_aux_ch(struct i2c_adapter *adapter, int mode,
				u8 write_byte, u8 *read_byte);