Bug description: This line appears several times in my Xorg log file: (EE) intel(0): Unable to write to SDVOCTRL_E for SDVOB Slave 0x70. I have done some searching and several people have mentioned this, but no one knows what this error is, or how it might degrade the system. Since I'm having some problems with the driver (for example, see my bug report regarding glDrawPixels, #19888), I'd like to know what causes this error, and what driver capabilities are affected. System environment: -- chipset: GME965 -- system architecture: 32-bit -- using default Fedora 10 packages (xorg-x11-server 1.5.3-6.fc10, intel 2.5.0) -- kernel: from http://intellinuxgraphics.org/2008Q4.html -- Linux distribution: Fedora 10 -- Machine or mobo model: embedded board (Intel Core2 Duo CPU T7500 @ 2.20GHz, 2 GB RAM) -- Display connector: DVI to HP LP2065 Reproducing steps: Boot into X and examine Xorg.0.log Additional info: I am willing to test different combinations of components. Please let me know. Thanks!
Created attachment 22538 [details] Xorg log showing the errors: search for (EE)
zhenyu, can we resolve the (EE)?
this has nothing to do with your bug# 19888. unless you see symptom such as dislay mode is wrong , etc, just ignore this message... Do you have a problem like that? From the log it seems OK.. Gordon, it shouldn't be simply removed.
Current we do a control bus switch before every i2c Start, so that might cause the problem if we've already switched to DDC (some encoder might complain), but should be harmless.
Created attachment 22558 [details] [review] SDVO ddc bus set Does this patch work for you?
Before I try the patching, one question: The patch you sent is for i830_sdvo.c. I have a 965. Does the 965 share code with the 830 files, or is this a mistake? Thanks.
no mistake. go ahead and try it.
ping? Any test has been done?
Patch is pushed. Please test, and reopen if there's still issue. commit ddedf19f889da2ce6d69a3afce4665e2245682fa Author: Zhenyu Wang <zhenyu.z.wang@intel.com> Date: Fri Feb 13 10:09:42 2009 +0800 SDVO: Switch control bus only before DDC access Instead of set control bus switch before every i2c start, just set once before doing DDC. This should eliminate some encoders returning error during that.
cause regression of bug# 20594? SDVO spec also says after every i2c operation, bus will automatically return to internal register domain, so need to do bus switch before every i2c ops... maybe we should consider remove unnecessary bus_switch in funcs other than i2cstart instead?
oh, I haven't read SDVO spec for this, if that's required, we can revert the patch.
Created attachment 23794 [details] [review] switch ddc bus after i2c stop I've reverted last patch in git master, and this is current patch for this bug. Please test with git master.
do we really need ddc_bus_switch to guard?
Current code does ddc bus switch before every start, this trys to do it only after a stop. I don't know about i2c, it should support transfer like start,addr/data,...,start, addr/data,...stop. Anyone with SDVO device can easily debug this if it has this kind of error. So it may be the intercepted ddc bus switch cmd causes sdvo device to complain.
It looks we lost origin reporter here. Gordon, could you verify my patch on your ADD2 cards which has that error originally?
I'm not sure if we have the cards to reproduce this bug. Haien, could you validate if the error message in this bug summary appearing with our SDVO card?
(In reply to comment #16) > I'm not sure if we have the cards to reproduce this bug. > Haien, could you validate if the error message in this bug summary appearing > with our SDVO card? > the error doesn't appear on our cards.
Created attachment 24837 [details] hi, could you please use the patch on you machine, thanks.
the bug reporter seems gone.. does the patch work for you, Ling?
(In reply to comment #19) > the bug reporter seems gone.. does the patch work for you, Ling? yes, based on zhenyu's patch I remove redundant switch operation before get_edid operation in i830_sdvo.c
the bug reporter has been gone. could we push the patch out to master?
Pushed. Close. commit 106e4b44c5af6552cbd079c4ec34def9dcfb168a Author: Zhenyu Wang <zhenyu.z.wang@intel.com> Date: Fri Apr 24 10:55:09 2009 +0800 SDVO: switch bus once for i2c transfer Before sdvo try to get edid by i2c bus, it must do switch control bus to ddc active state from sdvo only state. However if current state has been ddc active state, redundant switch operation in our driver will cause error- "Unable to write to SDVOCTRL_E for SDVOB Slave 0x70". The patch will do switch control bus only one time during whole edid transmission. It has fixed bug #19937 Signed-off-by: Zhenyu Wang <zhenyu.z.wang@intel.com> Tested-by: Ma Ling <ling.ma@intel.com> Signed-off-by: Ma Ling <ling.ma@intel.com>
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.