public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Antonino A. Daplas" <adaplas@gmail.com>
To: Marc Koschewski <marc@osknowledge.org>
Cc: "Calin A. Culianu" <calin@ajvar.org>,
	akpm@osdl.org, adaplas@pol.net, linux-kernel@vger.kernel.org,
	Linus Torvalds <torvalds@osdl.org>
Subject: Re: nvidia fb flicker
Date: Tue, 29 Nov 2005 06:20:20 +0800	[thread overview]
Message-ID: <438B82A4.4030107@gmail.com> (raw)
In-Reply-To: <20051128212418.GA7185@stiffy.osknowledge.org>

Marc Koschewski wrote:
> * Antonino A. Daplas <adaplas@gmail.com> [2005-11-28 22:00:41 +0800]:
> 
>> Marc Koschewski wrote:
>>> * Antonino A. Daplas <adaplas@gmail.com> [2005-11-28 20:31:30 +0800]:
>>>
>>>> Marc Koschewski wrote:
>>>>> * Calin A. Culianu <calin@ajvar.org> [2005-11-26 00:02:46 -0500]:
>>>>>
>>>
>> Try again with CONFIG_FB_NVIDIA_I2C = n in your kernel config.
>>
>> Tony
> 
> Tony,
> 	it works. Could you explain me, what the difference is? :/
> 

The problem is nvidiafb trusts the EDID block as gospel truth :-)

You happen to have an EDID block which left the most important fields
blank -- the hsync and vsync range.  So the EDID parser extrapolated
the ranges, but since the block has only a single mode entry, 1600x1200@60,
what you get is this:

Nov 28 14:02:32 stiffy kernel: Extrapolated
Nov 28 14:02:32 stiffy kernel:            H: 75-75KHz V: 60-60Hz DCLK: 162MHz

Since the min and max value of the sync timings are equal, nvidiafb has
no room left to verify the timings, and will _always_ reject any timings even
if they are valid.

So, try this patch, we make nvidiafb less restrictive by ignoring the
hsync and vsync ranges if the min and max values are equal. This should
make your hardware display properly even if CONFIG_FB_NVIDIA_I2c = y.

Tony


diff --git a/drivers/video/nvidia/nvidia.c b/drivers/video/nvidia/nvidia.c
index 961007d..ff28610 100644
--- a/drivers/video/nvidia/nvidia.c
+++ b/drivers/video/nvidia/nvidia.c
@@ -1239,7 +1239,9 @@ static int nvidiafb_check_var(struct fb_
 		}
 	}
 
-	if (!mode_valid && info->monspecs.modedb_len)
+	if (!mode_valid && info->monspecs.modedb_len &&
+	    !(info->monspecs.hfmin == info->monspecs.hfmax &&
+	      info->monspecs.vfmin == info->monspecs.vfmax))
 		return -EINVAL;
 
 	if (par->fpWidth && par->fpHeight && (par->fpWidth < var->xres ||
 

  reply	other threads:[~2005-11-28 22:21 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-26  5:02 [PATCH] nvidiafb support for 6600 and 6200 Calin A. Culianu
2005-11-26  6:26 ` Antonino A. Daplas
2005-11-26  6:33   ` Antonino A. Daplas
2005-11-26 21:51   ` Antonino A. Daplas
2005-11-28 10:35 ` nvidia fb flicker (was: Re: [PATCH] nvidiafb support for 6600 and 6200) Marc Koschewski
2005-11-28 12:31   ` nvidia fb flicker Antonino A. Daplas
2005-11-28 13:20     ` Marc Koschewski
2005-11-28 14:00       ` Antonino A. Daplas
2005-11-28 21:24         ` Marc Koschewski
2005-11-28 22:20           ` Antonino A. Daplas [this message]
2005-11-28 23:01             ` Linus Torvalds
2005-11-29  0:13               ` Antonino A. Daplas
2005-11-28 19:57   ` Giuseppe Bilotta
2005-11-29  0:20     ` Antonino A. Daplas
2005-11-29  9:08     ` Marc Koschewski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=438B82A4.4030107@gmail.com \
    --to=adaplas@gmail.com \
    --cc=adaplas@pol.net \
    --cc=akpm@osdl.org \
    --cc=calin@ajvar.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marc@osknowledge.org \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox