Bug 19937 - (EE) intel(0): Unable to write to SDVOCTRL_E for SDVOB Slave 0x70.
Summary: (EE) intel(0): Unable to write to SDVOCTRL_E for SDVOB Slave 0x70.
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: low trivial
Assignee: MaLing
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords: NEEDINFO
Depends on:
Blocks:
 
Reported: 2009-02-03 12:01 UTC by smith
Modified: 2009-04-23 20:26 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Xorg log showing the errors: search for (EE) (238.71 KB, text/plain)
2009-02-03 12:02 UTC, smith
no flags Details
SDVO ddc bus set (1.06 KB, patch)
2009-02-03 21:18 UTC, Wang Zhenyu
no flags Details | Splinter Review
switch ddc bus after i2c stop (2.15 KB, patch)
2009-03-12 02:07 UTC, Wang Zhenyu
no flags Details | Splinter Review
hi, could you please use the patch on you machine, thanks. (1.96 KB, application/octet-stream)
2009-04-15 19:08 UTC, MaLing
no flags Details

Description smith 2009-02-03 12:01:44 UTC
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!
Comment 1 smith 2009-02-03 12:02:45 UTC
Created attachment 22538 [details]
Xorg log showing the errors: search for (EE)
Comment 2 Gordon Jin 2009-02-03 17:27:56 UTC
zhenyu, can we resolve the (EE)?
Comment 3 Michael Fu 2009-02-03 18:03:11 UTC
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.
Comment 4 Wang Zhenyu 2009-02-03 21:14:09 UTC
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. 
Comment 5 Wang Zhenyu 2009-02-03 21:18:40 UTC
Created attachment 22558 [details] [review]
SDVO ddc bus set

Does this patch work for you?
Comment 6 smith 2009-02-04 15:55:43 UTC
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.
Comment 7 Michael Fu 2009-02-04 16:31:23 UTC
no mistake. go ahead and try it.
Comment 8 Wang Zhenyu 2009-02-15 19:50:36 UTC
ping? Any test has been done?
Comment 9 Wang Zhenyu 2009-02-15 21:17:59 UTC
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.

Comment 10 Michael Fu 2009-03-11 22:53:44 UTC
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?
Comment 11 Wang Zhenyu 2009-03-11 23:27:04 UTC
oh, I haven't read SDVO spec for this, if that's required, we can revert the patch. 
Comment 12 Wang Zhenyu 2009-03-12 02:07:13 UTC
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.
Comment 13 Michael Fu 2009-03-12 05:56:08 UTC
do we really need ddc_bus_switch to guard? 
Comment 14 Wang Zhenyu 2009-03-12 08:43:35 UTC
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. 
Comment 15 Wang Zhenyu 2009-03-15 19:31:28 UTC
It looks we lost origin reporter here. Gordon, could you verify my patch on your ADD2 cards which has that error originally?
Comment 16 Gordon Jin 2009-03-16 01:04:54 UTC
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?
Comment 17 liuhaien 2009-03-18 01:38:34 UTC
(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.
Comment 18 MaLing 2009-04-15 19:08:28 UTC
Created attachment 24837 [details]
hi, could you please use the patch on you machine, thanks.
Comment 19 Michael Fu 2009-04-15 21:53:27 UTC
the bug reporter seems gone.. does the patch work for you, Ling?
Comment 20 MaLing 2009-04-15 21:58:50 UTC
(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 
Comment 21 Michael Fu 2009-04-23 01:12:22 UTC
the bug reporter has been gone. could we push the patch out to master?
Comment 22 Wang Zhenyu 2009-04-23 20:26:22 UTC
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.