linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Fw: Rivafb I2C problem, new patch
@ 2004-07-12 23:39 Andrew Morton
  2004-07-12 23:43 ` Greg KH
  2004-07-13  1:58 ` Antonino A. Daplas
  0 siblings, 2 replies; 8+ messages in thread
From: Andrew Morton @ 2004-07-12 23:39 UTC (permalink / raw)
  To: linux-fbdev-devel; +Cc: Greg KH, Nicolas Boichat

[-- Attachment #1: Type: text/plain, Size: 947 bytes --]


Maybe Greg, or the linux-fbdev-devel denizens can comment upon
this?


Begin forwarded message:

Date: Tue, 13 Jul 2004 01:24:02 +0200
From: Nicolas Boichat <nicolas@boichat.ch>
To: akpm@digeo.com
Subject: Rivafb I2C problem, new patch


Hello,

I'm currently writing a DDC/CI tool for Linux (DDC/CI is the protocol which permits to modify monitor parameters without using the OSD), see http://www.boichat.ch/nicolas/ddcci .

I use the new rivafb I2C support, but a problem appeared: the I2C bus is immediately deleted after the DDC2 EDID is read, but I need to access it from my application!

I attached a patch which fixes this problem: the bus is deleted only when the driver is unloaded (please note that the atyfb behave like my patched version). Could you add it to the next -mm kernel release ?

I also contacted the driver maintainer but he seems not to answer (I sent an e-mail to him about a week ago).

Best regards,

Nicolas Boichat


[-- Attachment #2: riva-2.6.7-mm6.patch --]
[-- Type: text/x-patch, Size: 1233 bytes --]

--- linux-2.6.7/drivers/video/riva.old/fbdev.c	2004-07-07 11:26:23.000000000 +0200
+++ linux-2.6.7/drivers/video/riva/fbdev.c	2004-07-07 11:36:47.008371568 +0200
@@ -1773,7 +1773,7 @@
 	struct riva_par *par = (struct riva_par *) info->par;
 	int i;
 
-	riva_create_i2c_busses(par);
+	//riva_create_i2c_busses(par);
 	for (i = par->bus; i >= 1; i--) {
 		riva_probe_i2c_connector(par, i, &par->EDID);
 		if (par->EDID) {
@@ -1781,7 +1781,7 @@
 			break;
 		}
 	}
-	riva_delete_i2c_busses(par);
+	//riva_delete_i2c_busses(par);
 #endif
 #endif
 }
@@ -1933,6 +1933,8 @@
 	}
 #endif /* CONFIG_MTRR */
 
+	riva_create_i2c_busses((struct riva_par *) info->par);
+
 	info->fbops = &riva_fb_ops;
 	info->fix = rivafb_fix;
 	riva_get_EDID(info, pd);
@@ -1961,6 +1963,7 @@
 	return 0;
 
 err_out_iounmap_fb:
+	riva_delete_i2c_busses((struct riva_par *) info->par);
 	iounmap(info->screen_base);
 err_out_free_base1:
 	if (default_par->riva.Architecture == NV_ARCH_03) 
@@ -1985,10 +1988,12 @@
 {
 	struct fb_info *info = pci_get_drvdata(pd);
 	struct riva_par *par = (struct riva_par *) info->par;
-	
+
 	if (!info)
 		return;
 
+	riva_delete_i2c_busses(par);
+
 	unregister_framebuffer(info);
 #ifdef CONFIG_MTRR
 	if (par->mtrr.vram_valid)


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2004-07-13 23:46 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-07-12 23:39 Fw: Rivafb I2C problem, new patch Andrew Morton
2004-07-12 23:43 ` Greg KH
2004-07-13  1:58 ` Antonino A. Daplas
2004-07-13  9:53   ` Nicolas Boichat
2004-07-13 20:52     ` Antonino A. Daplas
2004-07-13 21:46       ` Nicolas Boichat
2004-07-13 22:02         ` Andrew Morton
2004-07-13 23:45           ` Nicolas Boichat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).