drm: copy mode type in drm_mode_connector_list_update()

In commit 38d5487db7, Keith explained:
    This patch simply merges the two mode type bits together; that seems
    reasonable to me, but perhaps only a subset of the bits should be
    used? None of these can be user defined as they all come from
    looking at just the hardware.

However, merging the bits means that a flag becomes sticky. It is not
possible, for example to update the mode type to remove the
DRM_MODE_TYPE_PREFERRED bit.

After a brief discussion with Dave Airlie on irc, it was agreed to
propose that change, instead of introducing another function to remove a
bit from exisiting modes type.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Marc-André Lureau 2013-10-18 16:11:30 +02:00 committed by Dave Airlie
parent 4fdb086924
commit 3fbd6439e4

View File

@ -1041,7 +1041,7 @@ void drm_mode_connector_list_update(struct drm_connector *connector)
/* if equal delete the probed mode */ /* if equal delete the probed mode */
mode->status = pmode->status; mode->status = pmode->status;
/* Merge type bits together */ /* Merge type bits together */
mode->type |= pmode->type; mode->type = pmode->type;
list_del(&pmode->head); list_del(&pmode->head);
drm_mode_destroy(connector->dev, pmode); drm_mode_destroy(connector->dev, pmode);
break; break;