File tree Expand file tree Collapse file tree 1 file changed +16
-4
lines changed Expand file tree Collapse file tree 1 file changed +16
-4
lines changed Original file line number Diff line number Diff line change @@ -314,15 +314,27 @@ int radeon_dp_get_dp_link_config(struct drm_connector *connector,
314314 unsigned max_lane_num = drm_dp_max_lane_count (dpcd );
315315 unsigned lane_num , i , max_pix_clock ;
316316
317- for (lane_num = 1 ; lane_num <= max_lane_num ; lane_num <<= 1 ) {
318- for (i = 0 ; i < ARRAY_SIZE (link_rates ) && link_rates [i ] <= max_link_rate ; i ++ ) {
319- max_pix_clock = (lane_num * link_rates [i ] * 8 ) / bpp ;
317+ if (radeon_connector_encoder_get_dp_bridge_encoder_id (connector ) ==
318+ ENCODER_OBJECT_ID_NUTMEG ) {
319+ for (lane_num = 1 ; lane_num <= max_lane_num ; lane_num <<= 1 ) {
320+ max_pix_clock = (lane_num * 270000 * 8 ) / bpp ;
320321 if (max_pix_clock >= pix_clock ) {
321322 * dp_lanes = lane_num ;
322- * dp_rate = link_rates [ i ] ;
323+ * dp_rate = 270000 ;
323324 return 0 ;
324325 }
325326 }
327+ } else {
328+ for (lane_num = 1 ; lane_num <= max_lane_num ; lane_num <<= 1 ) {
329+ for (i = 0 ; i < ARRAY_SIZE (link_rates ) && link_rates [i ] <= max_link_rate ; i ++ ) {
330+ max_pix_clock = (lane_num * link_rates [i ] * 8 ) / bpp ;
331+ if (max_pix_clock >= pix_clock ) {
332+ * dp_lanes = lane_num ;
333+ * dp_rate = link_rates [i ];
334+ return 0 ;
335+ }
336+ }
337+ }
326338 }
327339
328340 return - EINVAL ;
You can’t perform that action at this time.
0 commit comments