diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2014-08-14 18:22:04 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-09-03 05:05:21 -0400 |
commit | b07aaf8849f08b2e4c1ea1a91cae80e0c11c8d2a (patch) | |
tree | dff4fc928235b0c7d611a113c1158bee88034e8e /drivers/gpu/drm/i915 | |
parent | d9d9bced0a711ab5c14f8a6b6df497e5f27b783d (diff) |
drm/i915: Check pixel clock in ns2501 mode_valid hook
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.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Thomas Richter <richter@rus.uni-stuttgart.de>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r-- | drivers/gpu/drm/i915/dvo_ns2501.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/dvo_ns2501.c b/drivers/gpu/drm/i915/dvo_ns2501.c index 345235b12601..441630434d34 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, | |||
521 | * of the panel in here so we could always accept it | 521 | * of the panel in here so we could always accept it |
522 | * by disabling the scaler. | 522 | * by disabling the scaler. |
523 | */ | 523 | */ |
524 | if ((mode->hdisplay == 800 && mode->vdisplay == 600) || | 524 | if ((mode->hdisplay == 640 && mode->vdisplay == 480 && mode->clock == 25175) || |
525 | (mode->hdisplay == 640 && mode->vdisplay == 480) || | 525 | (mode->hdisplay == 800 && mode->vdisplay == 600 && mode->clock == 40000) || |
526 | (mode->hdisplay == 1024 && mode->vdisplay == 768)) { | 526 | (mode->hdisplay == 1024 && mode->vdisplay == 768 && mode->clock == 65000)) { |
527 | return MODE_OK; | 527 | return MODE_OK; |
528 | } else { | 528 | } else { |
529 | return MODE_ONE_SIZE; /* Is this a reasonable error? */ | 529 | return MODE_ONE_SIZE; /* Is this a reasonable error? */ |