Merge branch 'acpi-scan' into acpi-pm
[linux-2.6-block.git] / drivers / gpu / drm / radeon / radeon_connectors.c
index b884c362a8c2c0770c02ecb09100d1f9440b55ab..2399f25ec0370cfba03b256174de69e407e01353 100644 (file)
@@ -741,7 +741,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);
+               dret = radeon_ddc_probe(radeon_connector, false);
        if (dret) {
                radeon_connector->detected_by_load = false;
                if (radeon_connector->edid) {
@@ -947,7 +947,7 @@ radeon_dvi_detect(struct drm_connector *connector, bool force)
                return connector->status;
 
        if (radeon_connector->ddc_bus)
-               dret = radeon_ddc_probe(radeon_connector);
+               dret = radeon_ddc_probe(radeon_connector, false);
        if (dret) {
                radeon_connector->detected_by_load = false;
                if (radeon_connector->edid) {
@@ -1401,7 +1401,8 @@ 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)) /* try DDC */
+                       /* bridge chips are always aux */
+                       if (radeon_ddc_probe(radeon_connector, true)) /* 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;
@@ -1419,7 +1420,8 @@ 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))
+                               /* try non-aux ddc (DP to DVI/HMDI/etc. adapter) */
+                               if (radeon_ddc_probe(radeon_connector, false))
                                        ret = connector_status_connected;
                        }
                }
@@ -1599,7 +1601,7 @@ radeon_add_atom_connector(struct drm_device *dev,
                        connector->interlace_allowed = true;
                        connector->doublescan_allowed = true;
                        radeon_connector->dac_load_detect = true;
-                       drm_connector_attach_property(&radeon_connector->base,
+                       drm_object_attach_property(&radeon_connector->base.base,
                                                      rdev->mode_info.load_detect_property,
                                                      1);
                        break;
@@ -1608,13 +1610,13 @@ radeon_add_atom_connector(struct drm_device *dev,
                case DRM_MODE_CONNECTOR_HDMIA:
                case DRM_MODE_CONNECTOR_HDMIB:
                case DRM_MODE_CONNECTOR_DisplayPort:
-                       drm_connector_attach_property(&radeon_connector->base,
+                       drm_object_attach_property(&radeon_connector->base.base,
                                                      rdev->mode_info.underscan_property,
                                                      UNDERSCAN_OFF);
-                       drm_connector_attach_property(&radeon_connector->base,
+                       drm_object_attach_property(&radeon_connector->base.base,
                                                      rdev->mode_info.underscan_hborder_property,
                                                      0);
-                       drm_connector_attach_property(&radeon_connector->base,
+                       drm_object_attach_property(&radeon_connector->base.base,
                                                      rdev->mode_info.underscan_vborder_property,
                                                      0);
                        subpixel_order = SubPixelHorizontalRGB;
@@ -1625,14 +1627,14 @@ radeon_add_atom_connector(struct drm_device *dev,
                                connector->doublescan_allowed = false;
                        if (connector_type == DRM_MODE_CONNECTOR_DVII) {
                                radeon_connector->dac_load_detect = true;
-                               drm_connector_attach_property(&radeon_connector->base,
+                               drm_object_attach_property(&radeon_connector->base.base,
                                                              rdev->mode_info.load_detect_property,
                                                              1);
                        }
                        break;
                case DRM_MODE_CONNECTOR_LVDS:
                case DRM_MODE_CONNECTOR_eDP:
-                       drm_connector_attach_property(&radeon_connector->base,
+                       drm_object_attach_property(&radeon_connector->base.base,
                                                      dev->mode_config.scaling_mode_property,
                                                      DRM_MODE_SCALE_FULLSCREEN);
                        subpixel_order = SubPixelHorizontalRGB;
@@ -1651,7 +1653,7 @@ radeon_add_atom_connector(struct drm_device *dev,
                                        DRM_ERROR("VGA: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
                        }
                        radeon_connector->dac_load_detect = true;
-                       drm_connector_attach_property(&radeon_connector->base,
+                       drm_object_attach_property(&radeon_connector->base.base,
                                                      rdev->mode_info.load_detect_property,
                                                      1);
                        /* no HPD on analog connectors */
@@ -1669,7 +1671,7 @@ radeon_add_atom_connector(struct drm_device *dev,
                                        DRM_ERROR("DVIA: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
                        }
                        radeon_connector->dac_load_detect = true;
-                       drm_connector_attach_property(&radeon_connector->base,
+                       drm_object_attach_property(&radeon_connector->base.base,
                                                      rdev->mode_info.load_detect_property,
                                                      1);
                        /* no HPD on analog connectors */
@@ -1692,23 +1694,23 @@ radeon_add_atom_connector(struct drm_device *dev,
                                        DRM_ERROR("DVI: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
                        }
                        subpixel_order = SubPixelHorizontalRGB;
-                       drm_connector_attach_property(&radeon_connector->base,
+                       drm_object_attach_property(&radeon_connector->base.base,
                                                      rdev->mode_info.coherent_mode_property,
                                                      1);
                        if (ASIC_IS_AVIVO(rdev)) {
-                               drm_connector_attach_property(&radeon_connector->base,
+                               drm_object_attach_property(&radeon_connector->base.base,
                                                              rdev->mode_info.underscan_property,
                                                              UNDERSCAN_OFF);
-                               drm_connector_attach_property(&radeon_connector->base,
+                               drm_object_attach_property(&radeon_connector->base.base,
                                                              rdev->mode_info.underscan_hborder_property,
                                                              0);
-                               drm_connector_attach_property(&radeon_connector->base,
+                               drm_object_attach_property(&radeon_connector->base.base,
                                                              rdev->mode_info.underscan_vborder_property,
                                                              0);
                        }
                        if (connector_type == DRM_MODE_CONNECTOR_DVII) {
                                radeon_connector->dac_load_detect = true;
-                               drm_connector_attach_property(&radeon_connector->base,
+                               drm_object_attach_property(&radeon_connector->base.base,
                                                              rdev->mode_info.load_detect_property,
                                                              1);
                        }
@@ -1732,17 +1734,17 @@ radeon_add_atom_connector(struct drm_device *dev,
                                if (!radeon_connector->ddc_bus)
                                        DRM_ERROR("HDMI: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
                        }
-                       drm_connector_attach_property(&radeon_connector->base,
+                       drm_object_attach_property(&radeon_connector->base.base,
                                                      rdev->mode_info.coherent_mode_property,
                                                      1);
                        if (ASIC_IS_AVIVO(rdev)) {
-                               drm_connector_attach_property(&radeon_connector->base,
+                               drm_object_attach_property(&radeon_connector->base.base,
                                                              rdev->mode_info.underscan_property,
                                                              UNDERSCAN_OFF);
-                               drm_connector_attach_property(&radeon_connector->base,
+                               drm_object_attach_property(&radeon_connector->base.base,
                                                              rdev->mode_info.underscan_hborder_property,
                                                              0);
-                               drm_connector_attach_property(&radeon_connector->base,
+                               drm_object_attach_property(&radeon_connector->base.base,
                                                              rdev->mode_info.underscan_vborder_property,
                                                              0);
                        }
@@ -1771,17 +1773,17 @@ radeon_add_atom_connector(struct drm_device *dev,
                                        DRM_ERROR("DP: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
                        }
                        subpixel_order = SubPixelHorizontalRGB;
-                       drm_connector_attach_property(&radeon_connector->base,
+                       drm_object_attach_property(&radeon_connector->base.base,
                                                      rdev->mode_info.coherent_mode_property,
                                                      1);
                        if (ASIC_IS_AVIVO(rdev)) {
-                               drm_connector_attach_property(&radeon_connector->base,
+                               drm_object_attach_property(&radeon_connector->base.base,
                                                              rdev->mode_info.underscan_property,
                                                              UNDERSCAN_OFF);
-                               drm_connector_attach_property(&radeon_connector->base,
+                               drm_object_attach_property(&radeon_connector->base.base,
                                                              rdev->mode_info.underscan_hborder_property,
                                                              0);
-                               drm_connector_attach_property(&radeon_connector->base,
+                               drm_object_attach_property(&radeon_connector->base.base,
                                                              rdev->mode_info.underscan_vborder_property,
                                                              0);
                        }
@@ -1806,7 +1808,7 @@ radeon_add_atom_connector(struct drm_device *dev,
                                if (!radeon_connector->ddc_bus)
                                        DRM_ERROR("DP: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
                        }
-                       drm_connector_attach_property(&radeon_connector->base,
+                       drm_object_attach_property(&radeon_connector->base.base,
                                                      dev->mode_config.scaling_mode_property,
                                                      DRM_MODE_SCALE_FULLSCREEN);
                        subpixel_order = SubPixelHorizontalRGB;
@@ -1819,10 +1821,10 @@ radeon_add_atom_connector(struct drm_device *dev,
                        drm_connector_init(dev, &radeon_connector->base, &radeon_tv_connector_funcs, connector_type);
                        drm_connector_helper_add(&radeon_connector->base, &radeon_tv_connector_helper_funcs);
                        radeon_connector->dac_load_detect = true;
-                       drm_connector_attach_property(&radeon_connector->base,
+                       drm_object_attach_property(&radeon_connector->base.base,
                                                      rdev->mode_info.load_detect_property,
                                                      1);
-                       drm_connector_attach_property(&radeon_connector->base,
+                       drm_object_attach_property(&radeon_connector->base.base,
                                                      rdev->mode_info.tv_std_property,
                                                      radeon_atombios_get_tv_info(rdev));
                        /* no HPD on analog connectors */
@@ -1843,7 +1845,7 @@ radeon_add_atom_connector(struct drm_device *dev,
                                if (!radeon_connector->ddc_bus)
                                        DRM_ERROR("LVDS: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
                        }
-                       drm_connector_attach_property(&radeon_connector->base,
+                       drm_object_attach_property(&radeon_connector->base.base,
                                                      dev->mode_config.scaling_mode_property,
                                                      DRM_MODE_SCALE_FULLSCREEN);
                        subpixel_order = SubPixelHorizontalRGB;
@@ -1922,7 +1924,7 @@ radeon_add_legacy_connector(struct drm_device *dev,
                                DRM_ERROR("VGA: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
                }
                radeon_connector->dac_load_detect = true;
-               drm_connector_attach_property(&radeon_connector->base,
+               drm_object_attach_property(&radeon_connector->base.base,
                                              rdev->mode_info.load_detect_property,
                                              1);
                /* no HPD on analog connectors */
@@ -1940,7 +1942,7 @@ radeon_add_legacy_connector(struct drm_device *dev,
                                DRM_ERROR("DVIA: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
                }
                radeon_connector->dac_load_detect = true;
-               drm_connector_attach_property(&radeon_connector->base,
+               drm_object_attach_property(&radeon_connector->base.base,
                                              rdev->mode_info.load_detect_property,
                                              1);
                /* no HPD on analog connectors */
@@ -1959,7 +1961,7 @@ radeon_add_legacy_connector(struct drm_device *dev,
                }
                if (connector_type == DRM_MODE_CONNECTOR_DVII) {
                        radeon_connector->dac_load_detect = true;
-                       drm_connector_attach_property(&radeon_connector->base,
+                       drm_object_attach_property(&radeon_connector->base.base,
                                                      rdev->mode_info.load_detect_property,
                                                      1);
                }
@@ -1983,10 +1985,10 @@ radeon_add_legacy_connector(struct drm_device *dev,
                 */
                if (rdev->family == CHIP_RS400 || rdev->family == CHIP_RS480)
                        radeon_connector->dac_load_detect = false;
-               drm_connector_attach_property(&radeon_connector->base,
+               drm_object_attach_property(&radeon_connector->base.base,
                                              rdev->mode_info.load_detect_property,
                                              radeon_connector->dac_load_detect);
-               drm_connector_attach_property(&radeon_connector->base,
+               drm_object_attach_property(&radeon_connector->base.base,
                                              rdev->mode_info.tv_std_property,
                                              radeon_combios_get_tv_info(rdev));
                /* no HPD on analog connectors */
@@ -2002,7 +2004,7 @@ radeon_add_legacy_connector(struct drm_device *dev,
                        if (!radeon_connector->ddc_bus)
                                DRM_ERROR("LVDS: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
                }
-               drm_connector_attach_property(&radeon_connector->base,
+               drm_object_attach_property(&radeon_connector->base.base,
                                              dev->mode_config.scaling_mode_property,
                                              DRM_MODE_SCALE_FULLSCREEN);
                subpixel_order = SubPixelHorizontalRGB;