|
@@ -430,55 +430,6 @@ int radeon_connector_set_property(struct drm_connector *connector, struct drm_pr
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- * Some integrated ATI Radeon chipset implementations (e. g.
|
|
|
- * Asus M2A-VM HDMI) may indicate the availability of a DDC,
|
|
|
- * even when there's no monitor connected. For these connectors
|
|
|
- * following DDC probe extension will be applied: check also for the
|
|
|
- * availability of EDID with at least a correct EDID header. Only then,
|
|
|
- * DDC is assumed to be available. This prevents drm_get_edid() and
|
|
|
- * drm_edid_block_valid() from periodically dumping data and kernel
|
|
|
- * errors into the logs and onto the terminal.
|
|
|
- */
|
|
|
-static bool radeon_connector_needs_extended_probe(struct radeon_device *dev,
|
|
|
- uint32_t supported_device,
|
|
|
- int connector_type)
|
|
|
-{
|
|
|
- /* Asus M2A-VM HDMI board sends data to i2c bus even,
|
|
|
- * if HDMI add-on card is not plugged in or HDMI is disabled in
|
|
|
- * BIOS. Valid DDC can only be assumed, if also a valid EDID header
|
|
|
- * can be retrieved via i2c bus during DDC probe */
|
|
|
- if ((dev->pdev->device == 0x791e) &&
|
|
|
- (dev->pdev->subsystem_vendor == 0x1043) &&
|
|
|
- (dev->pdev->subsystem_device == 0x826d)) {
|
|
|
- if ((connector_type == DRM_MODE_CONNECTOR_HDMIA) &&
|
|
|
- (supported_device == ATOM_DEVICE_DFP2_SUPPORT))
|
|
|
- return true;
|
|
|
- }
|
|
|
- /* ECS A740GM-M with ATI RADEON 2100 sends data to i2c bus
|
|
|
- * for a DVI connector that is not implemented */
|
|
|
- if ((dev->pdev->device == 0x796e) &&
|
|
|
- (dev->pdev->subsystem_vendor == 0x1019) &&
|
|
|
- (dev->pdev->subsystem_device == 0x2615)) {
|
|
|
- if ((connector_type == DRM_MODE_CONNECTOR_DVID) &&
|
|
|
- (supported_device == ATOM_DEVICE_DFP2_SUPPORT))
|
|
|
- return true;
|
|
|
- }
|
|
|
- /* TOSHIBA Satellite L300D with ATI Mobility Radeon x1100
|
|
|
- * (RS690M) sends data to i2c bus for a HDMI connector that
|
|
|
- * is not implemented */
|
|
|
- if ((dev->pdev->device == 0x791f) &&
|
|
|
- (dev->pdev->subsystem_vendor == 0x1179) &&
|
|
|
- (dev->pdev->subsystem_device == 0xff68)) {
|
|
|
- if ((connector_type == DRM_MODE_CONNECTOR_HDMIA) &&
|
|
|
- (supported_device == ATOM_DEVICE_DFP2_SUPPORT))
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- /* Default: no EDID header probe required for DDC probing */
|
|
|
- return false;
|
|
|
-}
|
|
|
-
|
|
|
static void radeon_fixup_lvds_native_mode(struct drm_encoder *encoder,
|
|
|
struct drm_connector *connector)
|
|
|
{
|
|
@@ -719,8 +670,7 @@ radeon_vga_detect(struct drm_connector *connector, bool force)
|
|
|
ret = connector_status_disconnected;
|
|
|
|
|
|
if (radeon_connector->ddc_bus)
|
|
|
- dret = radeon_ddc_probe(radeon_connector,
|
|
|
- radeon_connector->requires_extended_probe);
|
|
|
+ dret = radeon_ddc_probe(radeon_connector);
|
|
|
if (dret) {
|
|
|
radeon_connector->detected_by_load = false;
|
|
|
if (radeon_connector->edid) {
|
|
@@ -902,8 +852,7 @@ radeon_dvi_detect(struct drm_connector *connector, bool force)
|
|
|
bool dret = false;
|
|
|
|
|
|
if (radeon_connector->ddc_bus)
|
|
|
- dret = radeon_ddc_probe(radeon_connector,
|
|
|
- radeon_connector->requires_extended_probe);
|
|
|
+ dret = radeon_ddc_probe(radeon_connector);
|
|
|
if (dret) {
|
|
|
radeon_connector->detected_by_load = false;
|
|
|
if (radeon_connector->edid) {
|
|
@@ -1327,8 +1276,7 @@ radeon_dp_detect(struct drm_connector *connector, bool force)
|
|
|
if (encoder) {
|
|
|
/* setup ddc on the bridge */
|
|
|
radeon_atom_ext_encoder_setup_ddc(encoder);
|
|
|
- if (radeon_ddc_probe(radeon_connector,
|
|
|
- radeon_connector->requires_extended_probe)) /* try DDC */
|
|
|
+ if (radeon_ddc_probe(radeon_connector)) /* try DDC */
|
|
|
ret = connector_status_connected;
|
|
|
else if (radeon_connector->dac_load_detect) { /* try load detection */
|
|
|
struct drm_encoder_helper_funcs *encoder_funcs = encoder->helper_private;
|
|
@@ -1346,8 +1294,7 @@ radeon_dp_detect(struct drm_connector *connector, bool force)
|
|
|
if (radeon_dp_getdpcd(radeon_connector))
|
|
|
ret = connector_status_connected;
|
|
|
} else {
|
|
|
- if (radeon_ddc_probe(radeon_connector,
|
|
|
- radeon_connector->requires_extended_probe))
|
|
|
+ if (radeon_ddc_probe(radeon_connector))
|
|
|
ret = connector_status_connected;
|
|
|
}
|
|
|
}
|
|
@@ -1492,9 +1439,7 @@ radeon_add_atom_connector(struct drm_device *dev,
|
|
|
radeon_connector->shared_ddc = shared_ddc;
|
|
|
radeon_connector->connector_object_id = connector_object_id;
|
|
|
radeon_connector->hpd = *hpd;
|
|
|
- radeon_connector->requires_extended_probe =
|
|
|
- radeon_connector_needs_extended_probe(rdev, supported_device,
|
|
|
- connector_type);
|
|
|
+
|
|
|
radeon_connector->router = *router;
|
|
|
if (router->ddc_valid || router->cd_valid) {
|
|
|
radeon_connector->router_bus = radeon_i2c_lookup(rdev, &router->i2c_info);
|
|
@@ -1842,9 +1787,7 @@ radeon_add_legacy_connector(struct drm_device *dev,
|
|
|
radeon_connector->devices = supported_device;
|
|
|
radeon_connector->connector_object_id = connector_object_id;
|
|
|
radeon_connector->hpd = *hpd;
|
|
|
- radeon_connector->requires_extended_probe =
|
|
|
- radeon_connector_needs_extended_probe(rdev, supported_device,
|
|
|
- connector_type);
|
|
|
+
|
|
|
switch (connector_type) {
|
|
|
case DRM_MODE_CONNECTOR_VGA:
|
|
|
drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type);
|