[Intel-gfx] [PATCH 12/16] drm/i915: Check pixel clock in ns2501 mode_valid hook

Thomas Richter richter at rus.uni-stuttgart.de
Fri Aug 15 15:19:29 CEST 2014


On 15.08.2014 00:22, ville.syrjala at linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> The vbt on my Fujitsu-Siemens Lifebook S6010 provides two 800x600 modes,
> 60Hz and 56Hz. The magic register values we have correspond to the 60Hz
> mode, and as I don't know how one would trick the VGA BIOS to set up
> the 56Hz mode we can't get the magic values for the orther mode. So
> when checking whether a mode is valid also check the pixel clock so that
> we filter out the 56Hz variant.

The 56Hz mode works here as does the 60Hz mode, though it is really 
better to have only one 800x600 mode. Looks fine.

Signed-off-by: Thomas Richter <richter at rus.uni-stuttgart.de>

>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
>   drivers/gpu/drm/i915/dvo_ns2501.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/dvo_ns2501.c b/drivers/gpu/drm/i915/dvo_ns2501.c
> index 345235b..4416304 100644
> --- a/drivers/gpu/drm/i915/dvo_ns2501.c
> +++ b/drivers/gpu/drm/i915/dvo_ns2501.c
> @@ -521,9 +521,9 @@ static enum drm_mode_status ns2501_mode_valid(struct intel_dvo_device *dvo,
>   	 * of the panel in here so we could always accept it
>   	 * by disabling the scaler.
>   	 */
> -	if ((mode->hdisplay == 800 && mode->vdisplay == 600) ||
> -	    (mode->hdisplay == 640 && mode->vdisplay == 480) ||
> -	    (mode->hdisplay == 1024 && mode->vdisplay == 768)) {
> +	if ((mode->hdisplay == 640 && mode->vdisplay == 480 && mode->clock == 25175) ||
> +	    (mode->hdisplay == 800 && mode->vdisplay == 600 && mode->clock == 40000) ||
> +	    (mode->hdisplay == 1024 && mode->vdisplay == 768 && mode->clock == 65000)) {
>   		return MODE_OK;
>   	} else {
>   		return MODE_ONE_SIZE;	/* Is this a reasonable error? */
>




More information about the Intel-gfx mailing list