drm/i915/opregion: handle missing connector types for acpi display types
authorJani Nikula <jani.nikula@intel.com>
Mon, 13 Jun 2016 09:30:07 +0000 (12:30 +0300)
committerJani Nikula <jani.nikula@intel.com>
Wed, 29 Jun 2016 14:41:50 +0000 (17:41 +0300)
Most notably eDP, DSI, and TV. Add MISSING_CASE handling so we won't
miss this in the future.

Reviewed-and-tested-by: Peter Wu <peter@lekensteyn.nl>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/5773794027ea0d699052a343491b52343ba30504.1465810007.git.jani.nikula@intel.com
drivers/gpu/drm/i915/intel_opregion.c

index 108cfbf..82e687d 100644 (file)
@@ -676,7 +676,7 @@ static void set_did(struct intel_opregion *opregion, int i, u32 val)
 
 static u32 acpi_display_type(struct drm_connector *connector)
 {
-       u32 display_type = ACPI_DISPLAY_TYPE_OTHER;
+       u32 display_type;
 
        switch (connector->connector_type) {
        case DRM_MODE_CONNECTOR_VGA:
@@ -687,6 +687,7 @@ static u32 acpi_display_type(struct drm_connector *connector)
        case DRM_MODE_CONNECTOR_SVIDEO:
        case DRM_MODE_CONNECTOR_Component:
        case DRM_MODE_CONNECTOR_9PinDIN:
+       case DRM_MODE_CONNECTOR_TV:
                display_type = ACPI_DISPLAY_TYPE_TV;
                break;
        case DRM_MODE_CONNECTOR_DVII:
@@ -697,8 +698,18 @@ static u32 acpi_display_type(struct drm_connector *connector)
                display_type = ACPI_DISPLAY_TYPE_EXTERNAL_DIGITAL;
                break;
        case DRM_MODE_CONNECTOR_LVDS:
+       case DRM_MODE_CONNECTOR_eDP:
+       case DRM_MODE_CONNECTOR_DSI:
                display_type = ACPI_DISPLAY_TYPE_INTERNAL_DIGITAL;
                break;
+       case DRM_MODE_CONNECTOR_Unknown:
+       case DRM_MODE_CONNECTOR_VIRTUAL:
+               display_type = ACPI_DISPLAY_TYPE_OTHER;
+               break;
+       default:
+               MISSING_CASE(connector->connector_type);
+               display_type = ACPI_DISPLAY_TYPE_OTHER;
+               break;
        }
 
        return display_type;