All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Antonino A. Daplas" <adaplas@gmail.com>
To: linux-fbdev-devel@lists.sourceforge.net
Cc: Robert Siemer <Robert.Siemer@backsla.sh>
Subject: Re: radeonfb: DDC read wrong?
Date: Sun, 25 Jun 2006 07:27:08 +0800	[thread overview]
Message-ID: <449DCA4C.7060400@gmail.com> (raw)
In-Reply-To: <20060624174731.GA6091@polar.elf12.net>

Robert Siemer wrote:
> On Sat, Jun 24, 2006 at 08:11:46PM +0800, Antonino A. Daplas wrote:
>> Robert Siemer wrote:
>>> Hello everybody!
>>>
>>> Any comments?
>> Can you change #undef DEBUG to #define DEBUG in drivers/video/fbmon.c
>> then post your dmesg?
>>
>> If your monitor's EDID block is faulty, we can add it to our
>> monitor database for fixups.
> 
> Have you read this message from me?
> http://marc.theaimsgroup.com/?l=linux-fbdev-devel&m=115096319623635&w=2

Okay, now I see it.

> 
> The EDID block has a correct checksum as "get-edid | parse-edid" is
> saying...
> 
> The monitor is a 17", with frequencies H: 30 - 86 kHz, V: 55 - 160 Hz. I
> recommand it with 1024x768@100
> 

BTW, I'm attaching a patch that does basic fix-ups. It just marks the
invalid detailed timings descriptor blocks to "unknown".  Post your
dmesg again, and if it works you should see something like:

fbmon: The EDID block of blah-blah is known to be broken
fbmon: Trying to fix blah-blah

As mentioned, this is a basic fix. We can be more fancy with the fix-ups
but I will need the specifications of your monitor.

Hsync and Vsync ranges, PixelClock
A working and preferred modeline to replace the detailed timing:
	 xvidtune would help
A few supported VESA compatible modes,
etc...

Tony

diff --git a/drivers/video/fbmon.c b/drivers/video/fbmon.c
index fb9ed4c..31ccc35 100644
--- a/drivers/video/fbmon.c
+++ b/drivers/video/fbmon.c
@@ -49,8 +49,9 @@ #else
 #define DPRINTK(fmt, args...)
 #endif
 
-#define FBMON_FIX_HEADER 1
-#define FBMON_FIX_INPUT  2
+#define FBMON_FIX_HEADER   1
+#define FBMON_FIX_INPUT    2
+#define FBMON_FIX_DETAILED 3
 
 #ifdef CONFIG_FB_MODE_HELPERS
 struct broken_edid {
@@ -72,6 +73,12 @@ static struct broken_edid brokendb[] = {
 		.model        = 0x5a44,
 		.fix          = FBMON_FIX_INPUT,
 	},
+	/* Eizo (202) */
+	{
+		.manufacturer = "EIZ",
+		.model        = 0x0202,
+		.fix          = FBMON_FIX_DETAILED,
+	},
 };
 
 static const unsigned char edid_v1_header[] = { 0x00, 0xff, 0xff, 0xff,
@@ -127,6 +134,17 @@ static int check_edid(unsigned char *edi
 		if (b[4] & 0x01 && b[0] & 0x80)
 			ret = fix;
 		break;
+	case FBMON_FIX_DETAILED:
+		b = edid + DETAILED_TIMING_DESCRIPTIONS_START;
+
+		for (i = 0; i < 4; i++, b+=DETAILED_TIMING_DESCRIPTION_SIZE) {
+			if (!(b[0] == 0 && b[1] == 0 && b[2] == 0)) {
+				ret = fix;
+				break;
+			}
+		}
+
+		break;
 	}
 
 	return ret;
@@ -135,6 +153,7 @@ static int check_edid(unsigned char *edi
 static void fix_edid(unsigned char *edid, int fix)
 {
 	unsigned char *b;
+	int i;
 
 	switch (fix) {
 	case FBMON_FIX_HEADER:
@@ -146,8 +165,21 @@ static void fix_edid(unsigned char *edid
 		b = edid + EDID_STRUCT_DISPLAY;
 		b[0] &= ~0x80;
 		edid[127] += 0x80;
+		break;
+	case FBMON_FIX_DETAILED:
+		printk("fbmon: trying to fix detailed description blocks\n");
+		b = edid + DETAILED_TIMING_DESCRIPTIONS_START;
+
+		/* Use 0xf0 which is currently unused for tagging */
+		for (i = 0; i < 4; i++, b+=DETAILED_TIMING_DESCRIPTION_SIZE) {
+			if (!(b[0] == 0 && b[1] == 0 && b[2] == 0)) {
+				b[3] = 0xf0;
+				b[0] = 	b[1] = b[2] = b[4] = 0;
+			}
+		}
 	}
-}
+}
+
 
 static int edid_checksum(unsigned char *edid)
 {

Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

  parent reply	other threads:[~2006-06-24 23:27 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-20 14:01 radeonfb: DDC read wrong? Robert Siemer
2006-06-24 12:11 ` Antonino A. Daplas
2006-06-24 17:47   ` Robert Siemer
2006-06-24 21:33     ` Antonino A. Daplas
2006-06-24 21:56       ` Robert Siemer
2006-06-24 23:27     ` Antonino A. Daplas [this message]
2006-06-25  0:00     ` Antonino A. Daplas
2006-06-26 17:01       ` Robert Siemer
2006-06-26 20:55         ` Antonino A. Daplas
2006-06-27 19:11           ` Luca

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=449DCA4C.7060400@gmail.com \
    --to=adaplas@gmail.com \
    --cc=Robert.Siemer@backsla.sh \
    --cc=linux-fbdev-devel@lists.sourceforge.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.