drm/nouveau/kms: handle mDP connectors
authorKarol Herbst <kherbst@redhat.com>
Fri, 27 Nov 2020 18:39:09 +0000 (19:39 +0100)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 29 Jan 2021 06:49:15 +0000 (16:49 +1000)
In some cases we have the handle those explicitly as the fallback
connector type detection fails and marks those as eDP connectors.

Attempting to use such a connector with mutter leads to a crash of mutter
as it ends up with two eDP displays.

Information is taken from the official DCB documentation.

Cc: stable@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: Ben Skeggs <bskeggs@redhat.com>
Reported-by: Mark Pearson <markpearson@lenovo.com>
Tested-by: Mark Pearson <markpearson@lenovo.com>
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h
drivers/gpu/drm/nouveau/nouveau_connector.c

index f5f5926..d1beaad 100644 (file)
@@ -14,6 +14,7 @@ enum dcb_connector_type {
        DCB_CONNECTOR_LVDS_SPWG = 0x41,
        DCB_CONNECTOR_DP = 0x46,
        DCB_CONNECTOR_eDP = 0x47,
+       DCB_CONNECTOR_mDP = 0x48,
        DCB_CONNECTOR_HDMI_0 = 0x60,
        DCB_CONNECTOR_HDMI_1 = 0x61,
        DCB_CONNECTOR_HDMI_C = 0x63,
index 14c29e6..61e6d74 100644 (file)
@@ -1212,6 +1212,7 @@ drm_conntype_from_dcb(enum dcb_connector_type dcb)
        case DCB_CONNECTOR_DMS59_DP0:
        case DCB_CONNECTOR_DMS59_DP1:
        case DCB_CONNECTOR_DP       :
+       case DCB_CONNECTOR_mDP      :
        case DCB_CONNECTOR_USB_C    : return DRM_MODE_CONNECTOR_DisplayPort;
        case DCB_CONNECTOR_eDP      : return DRM_MODE_CONNECTOR_eDP;
        case DCB_CONNECTOR_HDMI_0   :