diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2016-09-30 12:37:36 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-10-25 14:38:06 -0400 |
commit | 66264ba80492571d9177158f2989e267a591507b (patch) | |
tree | d2a155d7ee14e5177e3bf1b170779809519a8d5c /drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | |
parent | 9405e47dbab33706c43caba72cf8d83b5746f843 (diff) |
drm/amdgpu: simplify encoder and connector setup (v2)
No need to emulate all of the stuff for real hw.
v2: warning fix
Reviewed-By: Emily Deng <Emily.Deng@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c index e3281d4e3e41..3af8ffb45b64 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | |||
@@ -1517,88 +1517,6 @@ static const struct drm_connector_funcs amdgpu_connector_edp_funcs = { | |||
1517 | .force = amdgpu_connector_dvi_force, | 1517 | .force = amdgpu_connector_dvi_force, |
1518 | }; | 1518 | }; |
1519 | 1519 | ||
1520 | static struct drm_encoder * | ||
1521 | amdgpu_connector_virtual_encoder(struct drm_connector *connector) | ||
1522 | { | ||
1523 | int enc_id = connector->encoder_ids[0]; | ||
1524 | struct drm_encoder *encoder; | ||
1525 | int i; | ||
1526 | for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) { | ||
1527 | if (connector->encoder_ids[i] == 0) | ||
1528 | break; | ||
1529 | |||
1530 | encoder = drm_encoder_find(connector->dev, connector->encoder_ids[i]); | ||
1531 | if (!encoder) | ||
1532 | continue; | ||
1533 | |||
1534 | if (encoder->encoder_type == DRM_MODE_ENCODER_VIRTUAL) | ||
1535 | return encoder; | ||
1536 | } | ||
1537 | |||
1538 | /* pick the first one */ | ||
1539 | if (enc_id) | ||
1540 | return drm_encoder_find(connector->dev, enc_id); | ||
1541 | return NULL; | ||
1542 | } | ||
1543 | |||
1544 | static int amdgpu_connector_virtual_get_modes(struct drm_connector *connector) | ||
1545 | { | ||
1546 | struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); | ||
1547 | |||
1548 | if (encoder) { | ||
1549 | amdgpu_connector_add_common_modes(encoder, connector); | ||
1550 | } | ||
1551 | |||
1552 | return 0; | ||
1553 | } | ||
1554 | |||
1555 | static int amdgpu_connector_virtual_mode_valid(struct drm_connector *connector, | ||
1556 | struct drm_display_mode *mode) | ||
1557 | { | ||
1558 | return MODE_OK; | ||
1559 | } | ||
1560 | |||
1561 | static int | ||
1562 | amdgpu_connector_virtual_dpms(struct drm_connector *connector, int mode) | ||
1563 | { | ||
1564 | return 0; | ||
1565 | } | ||
1566 | |||
1567 | static enum drm_connector_status | ||
1568 | |||
1569 | amdgpu_connector_virtual_detect(struct drm_connector *connector, bool force) | ||
1570 | { | ||
1571 | return connector_status_connected; | ||
1572 | } | ||
1573 | |||
1574 | static int | ||
1575 | amdgpu_connector_virtual_set_property(struct drm_connector *connector, | ||
1576 | struct drm_property *property, | ||
1577 | uint64_t val) | ||
1578 | { | ||
1579 | return 0; | ||
1580 | } | ||
1581 | |||
1582 | static void amdgpu_connector_virtual_force(struct drm_connector *connector) | ||
1583 | { | ||
1584 | return; | ||
1585 | } | ||
1586 | |||
1587 | static const struct drm_connector_helper_funcs amdgpu_connector_virtual_helper_funcs = { | ||
1588 | .get_modes = amdgpu_connector_virtual_get_modes, | ||
1589 | .mode_valid = amdgpu_connector_virtual_mode_valid, | ||
1590 | .best_encoder = amdgpu_connector_virtual_encoder, | ||
1591 | }; | ||
1592 | |||
1593 | static const struct drm_connector_funcs amdgpu_connector_virtual_funcs = { | ||
1594 | .dpms = amdgpu_connector_virtual_dpms, | ||
1595 | .detect = amdgpu_connector_virtual_detect, | ||
1596 | .fill_modes = drm_helper_probe_single_connector_modes, | ||
1597 | .set_property = amdgpu_connector_virtual_set_property, | ||
1598 | .destroy = amdgpu_connector_destroy, | ||
1599 | .force = amdgpu_connector_virtual_force, | ||
1600 | }; | ||
1601 | |||
1602 | void | 1520 | void |
1603 | amdgpu_connector_add(struct amdgpu_device *adev, | 1521 | amdgpu_connector_add(struct amdgpu_device *adev, |
1604 | uint32_t connector_id, | 1522 | uint32_t connector_id, |
@@ -1983,17 +1901,6 @@ amdgpu_connector_add(struct amdgpu_device *adev, | |||
1983 | connector->interlace_allowed = false; | 1901 | connector->interlace_allowed = false; |
1984 | connector->doublescan_allowed = false; | 1902 | connector->doublescan_allowed = false; |
1985 | break; | 1903 | break; |
1986 | case DRM_MODE_CONNECTOR_VIRTUAL: | ||
1987 | amdgpu_dig_connector = kzalloc(sizeof(struct amdgpu_connector_atom_dig), GFP_KERNEL); | ||
1988 | if (!amdgpu_dig_connector) | ||
1989 | goto failed; | ||
1990 | amdgpu_connector->con_priv = amdgpu_dig_connector; | ||
1991 | drm_connector_init(dev, &amdgpu_connector->base, &amdgpu_connector_virtual_funcs, connector_type); | ||
1992 | drm_connector_helper_add(&amdgpu_connector->base, &amdgpu_connector_virtual_helper_funcs); | ||
1993 | subpixel_order = SubPixelHorizontalRGB; | ||
1994 | connector->interlace_allowed = false; | ||
1995 | connector->doublescan_allowed = false; | ||
1996 | break; | ||
1997 | } | 1904 | } |
1998 | } | 1905 | } |
1999 | 1906 | ||