Thread (9 messages) 9 messages, 3 authors, 2006-07-18

Re: [PATCH 2.6.17-1] fbmon: add generic ddc read functionality

From: "Antonino A. Daplas" <adaplas@gmail.com>
Date: 2006-07-16 03:25:31
Subsystem: framebuffer layer, the rest · Maintainers: Helge Deller, Linus Torvalds

Dennis Munsie wrote:
I've attached both patches -- the fb-ddc-read.patch adds the generic ddc
functionality, and the other patches the radeonfb driver to use the
generic functionality instead.

There are other drivers that should be patched to use the generic
functionality as well, but since I didn't have any other cards to test
with, I just did the patch for the radeon (and intelfb as well, but
that's not ready yet).

dennis

On Jul 15, 2006, at 9:15 AM, Antonino A. Daplas wrote:
quoted
Dennis Munsie wrote:
quoted
did anyone have any problems with this patch?  Just wondering if it
was going to be flipped upstream or if I need to make some changes to
it.
And here's the updated nvidiafb driver...

Tony

nvidiafb: Use generic DDC reading

Update driver to use generic DDC reading

Signed-off-by: Antonino Daplas <redacted>
---

 drivers/video/Kconfig         |    1 +
 drivers/video/nvidia/nv_i2c.c |   45 +++--------------------------------------
 2 files changed, 4 insertions(+), 42 deletions(-)
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 8846262..215ad28 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -699,6 +699,7 @@ config FB_NVIDIA
 	depends on FB && PCI
 	select I2C_ALGOBIT if FB_NVIDIA_I2C
 	select I2C if FB_NVIDIA_I2C
+	select FB_DDC if FB_NVIDIA_I2C
 	select FB_MODE_HELPERS
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
diff --git a/drivers/video/nvidia/nv_i2c.c b/drivers/video/nvidia/nv_i2c.c
index 19eef3a..e48de3c 100644
--- a/drivers/video/nvidia/nv_i2c.c
+++ b/drivers/video/nvidia/nv_i2c.c
@@ -160,51 +160,12 @@ void nvidia_delete_i2c_busses(struct nvi
 
 }
 
-static u8 *nvidia_do_probe_i2c_edid(struct nvidia_i2c_chan *chan)
-{
-	u8 start = 0x0;
-	struct i2c_msg msgs[] = {
-		{
-		 .addr = 0x50,
-		 .len = 1,
-		 .buf = &start,
-		 }, {
-		     .addr = 0x50,
-		     .flags = I2C_M_RD,
-		     .len = EDID_LENGTH,
-		     },
-	};
-	u8 *buf;
-
-	if (!chan->par)
-		return NULL;
-
-	buf = kmalloc(EDID_LENGTH, GFP_KERNEL);
-	if (!buf) {
-		dev_warn(&chan->par->pci_dev->dev, "Out of memory!\n");
-		return NULL;
-	}
-	msgs[1].buf = buf;
-
-	if (i2c_transfer(&chan->adapter, msgs, 2) == 2)
-		return buf;
-	dev_dbg(&chan->par->pci_dev->dev, "Unable to read EDID block.\n");
-	kfree(buf);
-	return NULL;
-}
-
 int nvidia_probe_i2c_connector(struct fb_info *info, int conn, u8 **out_edid)
 {
 	struct nvidia_par *par = info->par;
-	u8 *edid = NULL;
-	int i;
-
-	for (i = 0; i < 3; i++) {
-		/* Do the real work */
-		edid = nvidia_do_probe_i2c_edid(&par->chan[conn - 1]);
-		if (edid)
-			break;
-	}
+	u8 *edid;
+
+	edid = fb_ddc_read(&par->chan[conn - 1].adapter);
 
 	if (!edid && conn == 1) {
 		/* try to get from firmware */


-------------------------------------------------------------------------
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help