diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/atombios_encoders.c')
| -rw-r--r-- | drivers/gpu/drm/radeon/atombios_encoders.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c index a42d61571f49..607dc14d195e 100644 --- a/drivers/gpu/drm/radeon/atombios_encoders.c +++ b/drivers/gpu/drm/radeon/atombios_encoders.c | |||
| @@ -464,11 +464,12 @@ atombios_tv_setup(struct drm_encoder *encoder, int action) | |||
| 464 | 464 | ||
| 465 | static u8 radeon_atom_get_bpc(struct drm_encoder *encoder) | 465 | static u8 radeon_atom_get_bpc(struct drm_encoder *encoder) |
| 466 | { | 466 | { |
| 467 | struct drm_connector *connector = radeon_get_connector_for_encoder(encoder); | ||
| 468 | int bpc = 8; | 467 | int bpc = 8; |
| 469 | 468 | ||
| 470 | if (connector) | 469 | if (encoder->crtc) { |
| 471 | bpc = radeon_get_monitor_bpc(connector); | 470 | struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); |
| 471 | bpc = radeon_crtc->bpc; | ||
| 472 | } | ||
| 472 | 473 | ||
| 473 | switch (bpc) { | 474 | switch (bpc) { |
| 474 | case 0: | 475 | case 0: |
| @@ -1313,7 +1314,7 @@ atombios_dig_transmitter_setup(struct drm_encoder *encoder, int action, uint8_t | |||
| 1313 | } | 1314 | } |
| 1314 | if (is_dp) | 1315 | if (is_dp) |
| 1315 | args.v5.ucLaneNum = dp_lane_count; | 1316 | args.v5.ucLaneNum = dp_lane_count; |
| 1316 | else if (radeon_encoder->pixel_clock > 165000) | 1317 | else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) |
| 1317 | args.v5.ucLaneNum = 8; | 1318 | args.v5.ucLaneNum = 8; |
| 1318 | else | 1319 | else |
| 1319 | args.v5.ucLaneNum = 4; | 1320 | args.v5.ucLaneNum = 4; |
