Uses external VGA port as main screen on iMac G5 rev C - ATI X600

Bug #172427 reported by Étienne BERSAC
4
Affects Status Importance Assigned to Milestone
X.Org X server
Fix Released
High
xserver-xorg-video-ati (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Hi,

This bug is very similar to bug #22985 . I use latest hardy and got the same failure. Plugging the beamer allow me to connect and see that xrandr claim that DVI-0 is not connected. Only DVI-1 is connected (this is the beamer).

With older version of Xorg, i could play with MonitorLayout and such options to workaround this bug. This seems impossible now. Using EDID to generate a monitor section does not help.

Regards,
Étienne.

Revision history for this message
In , Clemens Heese (clemens-heesenet) wrote :

Created an attachment (id=4724)
xorg log with radeon

Revision history for this message
In , Clemens Heese (clemens-heesenet) wrote :

X Window System Version 7.0.0
Release Date: 21 December 2005
X Protocol Version 11, Revision 0, Release 7.0
Build Operating System:Linux 2.6.16-rc4 ppc64
Current Operating System: Linux clemens-imac 2.6.16-rc4 #2 SMP Tue Feb 21
15:08:10 GMT 2006 ppc64
Build Date: 21 February 2006
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Module Loader present
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Mon Feb 27 15:46:22 2006
(==) Using config file: "/etc/X11/xorg.conf"

(WW) ****INVALID IO ALLOCATION**** b: 0xf4000400 e: 0xf40004ff correcting
expected keysym, got dead_diaresis: line 143 of pc/de
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Error: No Symbols named "de" in the include file "pc/de"
> Exiting
> Abandoning symbols file "default"
Errors from xkbcomp are not fatal to the X server
Could not init font path element /usr/share/fonts/local/, removing from list!
twm: unable to open fontset
"-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"

Revision history for this message
In , Erik Andrén (erik-andren) wrote :

Are you still experiencing this with the 7.1 Xorg release?

Revision history for this message
In , Daniel Stone (daniels) wrote :

Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future.

Revision history for this message
Étienne BERSAC (bersace) wrote : Uses external DVI port as main screen on iMac G5 rev C - ATI X600

Hi,

This bug is very similar to bug #22985 . I use latest hardy and got the same failure. Plugging the beamer allow me to connect and see that xrandr claim that VGA-0 is not connected. Only DVI-0 is connected (this is the beamer).

With older version of Xorg, i could play with MonitorLayout and such options to workaround this bug. This seems impossible now. Using EDID to generate a monitor section does not help.

Regards,
Étienne.

Revision history for this message
Étienne BERSAC (bersace) wrote :

Hi,

Using latest src package from https://edge.launchpad.net/~tormodvolden/+archive improved colors on external monitor, but the main screen is still black. Attached the ddcprobe output. It shows the actual internal Apple display. Nothing about the external philips plugged in.

Regards,
Étienne.

Revision history for this message
In , Etienne Bersac (bersace03) wrote :

Hi,

I also own an iMac G5 with a radeon X600 XT Pro (rv380). VGA-0 internal display is not detected (like for some Acer Aspire Ferrari laptops). DVI-0 external display is used instead and works quite well. I'm using git version of xf86-video-ati.

Note that i'm currently working on implementing windfarm_pm121 driver for fans control. There is no MacModel for imac, do we need such special case ? (i wish not).

Regards,
Étienne.

Revision history for this message
In , Michel-tungstengraphics (michel-tungstengraphics) wrote :

(In reply to comment #5)
> VGA-0 internal display is not detected [...]

I think you mean LVDS?

> There is no MacModel for imac, do we need such special case ?

Probably.

Revision history for this message
In , Etienne Bersac (bersace03) wrote :

Hi Michel,

I don't know exactly what is LVDS compared to TMDS in this case (a desktop computer with a built-in screen). All i know is that xrandr report that DVI-0 is connected but not VGA-0.

http://support.apple.com/specs/imac/iMac_G5_iSight.html tells that there is a VGA output, so these become very odd : the DVI output is known to be connected, but i have the actual output is send through the VGA output (external screen).

Regards,

Revision history for this message
In , Etienne Bersac (bersace03) wrote :

Created an attachment (id=12900)
xorg.conf

Revision history for this message
In , Etienne Bersac (bersace03) wrote :

Created an attachment (id=12901)
Xorg log

Revision history for this message
In , Etienne Bersac (bersace03) wrote :

Created an attachment (id=12902)
Xrandr 1.2 output

Revision history for this message
In , Etienne Bersac (bersace03) wrote :

Created an attachment (id=12903)
ddcprobe output

Revision history for this message
In , Etienne Bersac (bersace03) wrote :

Created an attachment (id=12904)
parse-edid output on internal display

Revision history for this message
In , Etienne Bersac (bersace03) wrote :

Hi,

> http://support.apple.com/specs/imac/iMac_G5_iSight.html tells that there is a
> VGA output, so these become very odd : the DVI output is known to be connected,
> but i have the actual output is send through the VGA output (external screen).

I didn't tell it right : the specs page tells the external connector is VGA, so the DVI one is the internal. xrandr report DVI-1 (connected) and DVI-0 (disconnected) outputs :/ So the external (mini-) VGA output is treated as DVI-1 :/

Regards,
Étienne

description: updated
Revision history for this message
In , agd5f (agd5f) wrote :

(In reply to comment #13)
> Hi,
>
> > http://support.apple.com/specs/imac/iMac_G5_iSight.html tells that there is a
> > VGA output, so these become very odd : the DVI output is known to be connected,
> > but i have the actual output is send through the VGA output (external screen).
>
> I didn't tell it right : the specs page tells the external connector is VGA, so
> the DVI one is the internal. xrandr report DVI-1 (connected) and DVI-0
> (disconnected) outputs :/ So the external (mini-) VGA output is treated as
> DVI-1 :/

The driver just defaults to a default setup since the driver doesn't know what outputs your system has. We need to add a macmodel entry for the isight. The tough part is figuring out which outputs are used and which ddc channels map to which outputs. Also, we need to find out whether it uses TMDS (internal or external) or LVDS for the internal panel. If it uses LVDS, the driver will need some changes as we don't currently support LVDS on non-mobility chips. Also, ifs tv-out a direct plug or a special adapter for the vga port? To start you'll have to play with the "ConnectorTable" option.

Try these to start:

LVDS:
Option "ConnectorTable" "1,2,2,1,2,1,2,2"
internal TMDS:
Option "ConnectorTable" "1,2,0,4,2,1,2,2"
external TMDS:
Option "ConnectorTable" "1,2,1,4,2,1,2,2"

for the LVDS option, you'll also have to remove the info->IsMobility check from RADEONRestoreLVDSRegisters().

Changed in xorg-server:
status: Unknown → Confirmed
Revision history for this message
In , Etienne Bersac (bersace03) wrote :

Hi,

Each of the ConnectorTable value you sent changes only one thing : the screen has the right resolution (internal APP 1680x1050) but displayed on the wrong device (the external PHL 1280x1024). I don't find any ConnectorTable documentation. I would like to play a bit with it.

I implemented the windfarm-pm121 driver so the fans are now silent. I'd be happy to fix the radeon driver to get this machine well working (and i'm not afraid of some lines of C :D). Is there some IRC chan where i can ask for help for writing the imac-g5-isight MacModel ?

Regards,
Étienne.

Revision history for this message
In , Etienne Bersac (bersace03) wrote :
Download full text (5.8 KiB)

Hi,

Seems there is a bug in src/radeon.h :

#if defined(__powerpc__)
typedef enum {
       RADEON_MAC_IBOOK = 0x00000001,
       RADEON_MAC_POWERBOOK_EXTERNAL = 0x00000002,
       RADEON_MAC_POWERBOOK_INTERNAL = 0x00000004,
       RADEON_MAC_POWERBOOK_VGA = 0x00000008,
       RADEON_MAC_MINI_EXTERNAL = 0x00000016,
       RADEON_MAC_MINI_INTERNAL = 0x00000032,
} RADEONMacModel;
#endif

I don't understand why the values "seems" decimal power of 2, while there are declared as hexadecimal.

This should be either :

#if defined(__powerpc__)
typedef enum {
       RADEON_MAC_IBOOK = 00000001,
       RADEON_MAC_POWERBOOK_EXTERNAL = 00000002,
       RADEON_MAC_POWERBOOK_INTERNAL = 00000004,
       RADEON_MAC_POWERBOOK_VGA = 00000008,
       RADEON_MAC_MINI_EXTERNAL = 00000016,
       RADEON_MAC_MINI_INTERNAL = 00000032,
} RADEONMacModel;
#endif

OR

#if defined(__powerpc__)
typedef enum...

Read more...

Revision history for this message
In , Etienne Bersac (bersace03) wrote :

Created an attachment (id=12934)
/proc/device-tree entries for the two outputs

Hi,

Attached an archive containing the device-tree directory for the two output of the card. (Not the entire device-tree !). I wish this will help defining the imac-g5-isight MacModel case.

Étienne.

Revision history for this message
In , agd5f (agd5f) wrote :

(In reply to comment #16)
> Hi,
>
> Seems there is a bug in src/radeon.h :
>
> I may be wrong ! Please explain me.

You're right. It's a typo in the driver.

Revision history for this message
In , agd5f (agd5f) wrote :

(In reply to comment #15)
> Hi,
>
> Each of the ConnectorTable value you sent changes only one thing : the screen
> has the right resolution (internal APP 1680x1050) but displayed on the wrong
> device (the external PHL 1280x1024). I don't find any ConnectorTable
> documentation. I would like to play a bit with it.

ConnectorTable defines various components associated with 2 outputs:
DDC line, DAC, TMDS encoder, Connector
See radeon_probe.h for the definitional of these fields. For example:
Option "ConnectorTable" "1,2,2,1,2,1,2,2"

output 1: 1,2,2,1
DDCType: 1 - DDC_MONID
DACType: 2 - DAC_NONE - no DAC associated with that output
TMDSType: 2 - TMDS_NONE - no TMDS encoder associated with that output
ConnectorType: 1 - CONNECTOR_PROPRIETARY - LVDS connector

output 2: 2,1,2,2
DDCType: 2 - DDC_DVI
DACType: 1 - DAC_TVDAC - TV DAC associated with that output
TMDSType: 2 - TMDS_NONE - no TMDS encoder associated with that output
ConnectorType: 2 - CONNECTOR_CRT - VGA connector

Revision history for this message
In , Etienne Bersac (bersace03) wrote :

Hi Alex,

I played a lot with ConnectorTable option but i'm quite clueless of the real meaning of each available values of each enums. I'm a bit tired of playing with random number :/.

I guess that once i have a correct ConnectorTable, this will be simple to add the MacModel. Does device-tree help ?

Can you explain me each field of the Connector table. e.g. what does mean to change the ConnectorType ?

One time, i got xrandr to output "VGA-0" and "DVI-0", but i don't really understand what it changes except the name (at least, VGA-0 was known as connected while DVI-0 disconnected, not the reverse).

Should i use radeonfb instead of offb ?

Regards,
Étienne.

Revision history for this message
In , Benjamin Herrenschmidt (benh-kernel) wrote :

Also, I'd suggest that you do your tests without loading radeonfb, just stick to offb until you get X working, then you can re-enable it... just in case there is a conflict. I've heard of strange issues with radeonfb and the iMac's X600

Revision history for this message
In , agd5f (agd5f) wrote :

Fixed in git: 21ed435398e4a398dd8a0a5d7c1d4cc45e916332

please test without any connectortable options and make sure it is detected properly.

Revision history for this message
Étienne BERSAC (bersace) wrote :

Hi,

We hunt the bug and it's now fixed in git version of radeon driver. Please upgrade at least your PPA :).

Regards,
Étienne.

Changed in xserver-xorg-video-ati:
status: New → Fix Committed
Changed in xorg-server:
status: Confirmed → Fix Released
Revision history for this message
Tormod Volden (tormodvolden) wrote :

Thanks for fixing the bug upstream! I have updated my PPA :)

Revision history for this message
Tormod Volden (tormodvolden) wrote :

xserver-xorg-video-ati 1:6.7.197-1 is now in Hardy and should include the fix for this bug. Please update if you are running Hardy. This version will also be included in Hardy Alpha 3, which is scheduled for release next week. If you want to test this version (or newer) in Gutsy, try the test packages from https://wiki.ubuntu.com/XorgOnTheEdge

If you find that this bug is not fixed with the new version in Hardy, please reopen the bug report.

Changed in xserver-xorg-video-ati:
status: Fix Committed → Fix Released
Changed in xorg-server:
importance: Unknown → High
Changed in xorg-server:
importance: High → Unknown
Changed in xorg-server:
importance: Unknown → High
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.