|
@@ -1504,6 +1504,24 @@ static const struct drm_connector_funcs radeon_dp_connector_funcs = {
|
|
|
.force = radeon_dvi_force,
|
|
|
};
|
|
|
|
|
|
+static const struct drm_connector_funcs radeon_edp_connector_funcs = {
|
|
|
+ .dpms = drm_helper_connector_dpms,
|
|
|
+ .detect = radeon_dp_detect,
|
|
|
+ .fill_modes = drm_helper_probe_single_connector_modes,
|
|
|
+ .set_property = radeon_lvds_set_property,
|
|
|
+ .destroy = radeon_dp_connector_destroy,
|
|
|
+ .force = radeon_dvi_force,
|
|
|
+};
|
|
|
+
|
|
|
+static const struct drm_connector_funcs radeon_lvds_bridge_connector_funcs = {
|
|
|
+ .dpms = drm_helper_connector_dpms,
|
|
|
+ .detect = radeon_dp_detect,
|
|
|
+ .fill_modes = drm_helper_probe_single_connector_modes,
|
|
|
+ .set_property = radeon_lvds_set_property,
|
|
|
+ .destroy = radeon_dp_connector_destroy,
|
|
|
+ .force = radeon_dvi_force,
|
|
|
+};
|
|
|
+
|
|
|
void
|
|
|
radeon_add_atom_connector(struct drm_device *dev,
|
|
|
uint32_t connector_id,
|
|
@@ -1595,8 +1613,6 @@ radeon_add_atom_connector(struct drm_device *dev,
|
|
|
goto failed;
|
|
|
radeon_dig_connector->igp_lane_info = igp_lane_info;
|
|
|
radeon_connector->con_priv = radeon_dig_connector;
|
|
|
- drm_connector_init(dev, &radeon_connector->base, &radeon_dp_connector_funcs, connector_type);
|
|
|
- drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs);
|
|
|
if (i2c_bus->valid) {
|
|
|
/* add DP i2c bus */
|
|
|
if (connector_type == DRM_MODE_CONNECTOR_eDP)
|
|
@@ -1613,6 +1629,10 @@ radeon_add_atom_connector(struct drm_device *dev,
|
|
|
case DRM_MODE_CONNECTOR_VGA:
|
|
|
case DRM_MODE_CONNECTOR_DVIA:
|
|
|
default:
|
|
|
+ drm_connector_init(dev, &radeon_connector->base,
|
|
|
+ &radeon_dp_connector_funcs, connector_type);
|
|
|
+ drm_connector_helper_add(&radeon_connector->base,
|
|
|
+ &radeon_dp_connector_helper_funcs);
|
|
|
connector->interlace_allowed = true;
|
|
|
connector->doublescan_allowed = true;
|
|
|
radeon_connector->dac_load_detect = true;
|
|
@@ -1625,6 +1645,10 @@ 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_init(dev, &radeon_connector->base,
|
|
|
+ &radeon_dp_connector_funcs, connector_type);
|
|
|
+ drm_connector_helper_add(&radeon_connector->base,
|
|
|
+ &radeon_dp_connector_helper_funcs);
|
|
|
drm_object_attach_property(&radeon_connector->base.base,
|
|
|
rdev->mode_info.underscan_property,
|
|
|
UNDERSCAN_OFF);
|
|
@@ -1652,6 +1676,10 @@ radeon_add_atom_connector(struct drm_device *dev,
|
|
|
break;
|
|
|
case DRM_MODE_CONNECTOR_LVDS:
|
|
|
case DRM_MODE_CONNECTOR_eDP:
|
|
|
+ drm_connector_init(dev, &radeon_connector->base,
|
|
|
+ &radeon_lvds_bridge_connector_funcs, connector_type);
|
|
|
+ drm_connector_helper_add(&radeon_connector->base,
|
|
|
+ &radeon_dp_connector_helper_funcs);
|
|
|
drm_object_attach_property(&radeon_connector->base.base,
|
|
|
dev->mode_config.scaling_mode_property,
|
|
|
DRM_MODE_SCALE_FULLSCREEN);
|
|
@@ -1830,7 +1858,7 @@ radeon_add_atom_connector(struct drm_device *dev,
|
|
|
goto failed;
|
|
|
radeon_dig_connector->igp_lane_info = igp_lane_info;
|
|
|
radeon_connector->con_priv = radeon_dig_connector;
|
|
|
- drm_connector_init(dev, &radeon_connector->base, &radeon_dp_connector_funcs, connector_type);
|
|
|
+ drm_connector_init(dev, &radeon_connector->base, &radeon_edp_connector_funcs, connector_type);
|
|
|
drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs);
|
|
|
if (i2c_bus->valid) {
|
|
|
/* add DP i2c bus */
|