drm/nouveau/dp: remove broken display depth function, use the improved one
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
		
							parent
							
								
									c37e99050c
								
							
						
					
					
						commit
						d4c2c99bdc
					
				| @ -78,23 +78,6 @@ nouveau_encoder_connector_get(struct nouveau_encoder *encoder) | ||||
| 	return NULL; | ||||
| } | ||||
| 
 | ||||
| /*TODO: This could use improvement, and learn to handle the fixed
 | ||||
|  *      BIOS tables etc.  It's fine currently, for its only user. | ||||
|  */ | ||||
| int | ||||
| nouveau_connector_bpp(struct drm_connector *connector) | ||||
| { | ||||
| 	struct nouveau_connector *nv_connector = nouveau_connector(connector); | ||||
| 
 | ||||
| 	if (nv_connector->edid && nv_connector->edid->revision >= 4) { | ||||
| 		u8 bpc = ((nv_connector->edid->input & 0x70) >> 3) + 4; | ||||
| 		if (bpc > 4) | ||||
| 			return bpc; | ||||
| 	} | ||||
| 
 | ||||
| 	return 18; | ||||
| } | ||||
| 
 | ||||
| static void | ||||
| nouveau_connector_destroy(struct drm_connector *connector) | ||||
| { | ||||
| @ -714,6 +697,12 @@ nouveau_connector_get_modes(struct drm_connector *connector) | ||||
| 		nv_connector->native_mode = drm_mode_duplicate(dev, &mode); | ||||
| 	} | ||||
| 
 | ||||
| 	/* Determine display colour depth for everything except LVDS now,
 | ||||
| 	 * DP requires this before mode_valid() is called. | ||||
| 	 */ | ||||
| 	if (connector->connector_type != DRM_MODE_CONNECTOR_LVDS) | ||||
| 		nouveau_connector_detect_depth(connector); | ||||
| 
 | ||||
| 	/* Find the native mode if this is a digital panel, if we didn't
 | ||||
| 	 * find any modes through DDC previously add the native mode to | ||||
| 	 * the list of modes. | ||||
| @ -729,11 +718,12 @@ nouveau_connector_get_modes(struct drm_connector *connector) | ||||
| 		ret = 1; | ||||
| 	} | ||||
| 
 | ||||
| 	/* Attempt to determine display colour depth, this has to happen after
 | ||||
| 	 * we've determined the "native" mode for LVDS, as the VBIOS tables | ||||
| 	 * require us to compare against a pixel clock in some cases.. | ||||
| 	/* Determine LVDS colour depth, must happen after determining
 | ||||
| 	 * "native" mode as some VBIOS tables require us to use the | ||||
| 	 * pixel clock as part of the lookup... | ||||
| 	 */ | ||||
| 	nouveau_connector_detect_depth(connector); | ||||
| 	if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS) | ||||
| 		nouveau_connector_detect_depth(connector); | ||||
| 
 | ||||
| 	if (nv_encoder->dcb->type == OUTPUT_TV) | ||||
| 		ret = get_slave_funcs(encoder)->get_modes(encoder, connector); | ||||
| @ -799,7 +789,7 @@ nouveau_connector_mode_valid(struct drm_connector *connector, | ||||
| 	case OUTPUT_DP: | ||||
| 		max_clock  = nv_encoder->dp.link_nr; | ||||
| 		max_clock *= nv_encoder->dp.link_bw; | ||||
| 		clock = clock * nouveau_connector_bpp(connector) / 10; | ||||
| 		clock = clock * (connector->display_info.bpc * 3) / 10; | ||||
| 		break; | ||||
| 	default: | ||||
| 		BUG_ON(1); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user