diff options
Diffstat (limited to 'drivers/gpu/drm/drm_edid.c')
| -rw-r--r-- | drivers/gpu/drm/drm_edid.c | 32 | 
1 files changed, 10 insertions, 22 deletions
| diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index e0dbd9140726..340da8257b51 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -230,6 +230,7 @@ static const struct edid_quirk {  	/* OSVR HDK and HDK2 VR Headsets */  	EDID_QUIRK('S', 'V', 'R', 0x1019, EDID_QUIRK_NON_DESKTOP), +	EDID_QUIRK('A', 'U', 'O', 0x1111, EDID_QUIRK_NON_DESKTOP),  };  /* @@ -3456,6 +3457,10 @@ static struct drm_display_mode *drm_mode_detailed(struct drm_connector *connecto  			    connector->base.id, connector->name);  		return NULL;  	} +	if (!(pt->misc & DRM_EDID_PT_SEPARATE_SYNC)) { +		drm_dbg_kms(dev, "[CONNECTOR:%d:%s] Composite sync not supported\n", +			    connector->base.id, connector->name); +	}  	/* it is incorrect if hsync/vsync width is zero */  	if (!hsync_pulse_width || !vsync_pulse_width) { @@ -3502,27 +3507,10 @@ static struct drm_display_mode *drm_mode_detailed(struct drm_connector *connecto  	if (info->quirks & EDID_QUIRK_DETAILED_SYNC_PP) {  		mode->flags |= DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC;  	} else { -		switch (pt->misc & DRM_EDID_PT_SYNC_MASK) { -		case DRM_EDID_PT_ANALOG_CSYNC: -		case DRM_EDID_PT_BIPOLAR_ANALOG_CSYNC: -			drm_dbg_kms(dev, "[CONNECTOR:%d:%s] Analog composite sync!\n", -				    connector->base.id, connector->name); -			mode->flags |= DRM_MODE_FLAG_CSYNC | DRM_MODE_FLAG_NCSYNC; -			break; -		case DRM_EDID_PT_DIGITAL_CSYNC: -			drm_dbg_kms(dev, "[CONNECTOR:%d:%s] Digital composite sync!\n", -				    connector->base.id, connector->name); -			mode->flags |= DRM_MODE_FLAG_CSYNC; -			mode->flags |= (pt->misc & DRM_EDID_PT_HSYNC_POSITIVE) ? -				DRM_MODE_FLAG_PCSYNC : DRM_MODE_FLAG_NCSYNC; -			break; -		case DRM_EDID_PT_DIGITAL_SEPARATE_SYNC: -			mode->flags |= (pt->misc & DRM_EDID_PT_HSYNC_POSITIVE) ? -				DRM_MODE_FLAG_PHSYNC : DRM_MODE_FLAG_NHSYNC; -			mode->flags |= (pt->misc & DRM_EDID_PT_VSYNC_POSITIVE) ? -				DRM_MODE_FLAG_PVSYNC : DRM_MODE_FLAG_NVSYNC; -			break; -		} +		mode->flags |= (pt->misc & DRM_EDID_PT_HSYNC_POSITIVE) ? +			DRM_MODE_FLAG_PHSYNC : DRM_MODE_FLAG_NHSYNC; +		mode->flags |= (pt->misc & DRM_EDID_PT_VSYNC_POSITIVE) ? +			DRM_MODE_FLAG_PVSYNC : DRM_MODE_FLAG_NVSYNC;  	}  set_size: @@ -3962,7 +3950,7 @@ static int drm_cvt_modes(struct drm_connector *connector,  	struct drm_display_mode *newmode;  	struct drm_device *dev = connector->dev;  	const struct cvt_timing *cvt; -	const int rates[] = { 60, 85, 75, 60, 50 }; +	static const int rates[] = { 60, 85, 75, 60, 50 };  	const u8 empty[3] = { 0, 0, 0 };  	for (i = 0; i < 4; i++) { | 
