diff options
| author | José Roberto de Souza <[email protected]> | 2019-09-13 23:28:57 +0000 |
|---|---|---|
| committer | Manasi Navare <[email protected]> | 2019-09-16 22:13:53 +0000 |
| commit | 62afb4ad425af2bc6ac6ff6d697825ae47c25211 (patch) | |
| tree | d0b023d94f1a625e966218468d297d45e5a6ce43 /drivers/gpu/drm/drm_crtc_helper.c | |
| parent | drm/connector: Share with non-atomic drivers the function to get the single e... (diff) | |
| download | kernel-62afb4ad425af2bc6ac6ff6d697825ae47c25211.tar.gz kernel-62afb4ad425af2bc6ac6ff6d697825ae47c25211.zip | |
drm/connector: Allow max possible encoders to attach to a connector
Currently we restrict the number of encoders that can be linked to
a connector to 3, increase it to match the maximum number of encoders
that can be initialized(32).
To more effiently do that lets switch from an array of encoder ids to
bitmask.
v2: Fixing missed return on amdgpu_dm_connector_to_encoder()
Suggested-by: Ville Syrjälä <[email protected]>
Cc: Ville Syrjälä <[email protected]>
Cc: Alex Deucher <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Reviewed-by: Ville Syrjälä <[email protected]>
Signed-off-by: Dhinakaran Pandiyan <[email protected]>
Signed-off-by: José Roberto de Souza <[email protected]>
Signed-off-by: Manasi Navare <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
Diffstat (limited to 'drivers/gpu/drm/drm_crtc_helper.c')
| -rw-r--r-- | drivers/gpu/drm/drm_crtc_helper.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c index 77a996f69cda..c3c8d4b70dbd 100644 --- a/drivers/gpu/drm/drm_crtc_helper.c +++ b/drivers/gpu/drm/drm_crtc_helper.c @@ -488,8 +488,13 @@ drm_crtc_helper_disable(struct drm_crtc *crtc) struct drm_encoder * drm_connector_get_single_encoder(struct drm_connector *connector) { - WARN_ON(connector->encoder_ids[1]); - return drm_encoder_find(connector->dev, NULL, connector->encoder_ids[0]); + struct drm_encoder *encoder; + + WARN_ON(hweight32(connector->possible_encoders) > 1); + drm_connector_for_each_possible_encoder(connector, encoder) + return encoder; + + return NULL; } /** |
