Created attachment 15250 [details] Xorg.log The driver is unable to get the modes from the projector (Panasonic PT-AX200E) connected to the HDMI port.The projector was the only device connected to the graphics card. I already posted this on the mailing list, but it might have been overlooked. Patrick
I forgot to tell that I'm using a Asus M2A-VM HDMI mainboard. It has a ATI Radeon Xpress 1250 GPU.
Hm, this is weired: (II) RADEONHD(0): EDID data for AX-200 (II) RADEONHD(0): Manufacturer: MEI Model: d076 Serial#: 340131857 (II) RADEONHD(0): Year: 2007 Week: 0 (II) RADEONHD(0): EDID Version: 1.3 The EDID data was clearly read from the projector correctly, however, the resolution look strange: (II) RADEONHD(0): Supported additional Video Mode: (II) RADEONHD(0): clock: 74.2 MHz Image Size: 708 x 398 mm (II) RADEONHD(0): h_active: 1920 h_sync: 2448 h_sync_end 2492 h_blank_end 2640 h_border: 0 (II) RADEONHD(0): v_active: 540 v_sync: 542 v_sync_end 547 v_blanking: 562 v_border: 0 (II) RADEONHD(0): Monitor name: AX-200 Ah, the projector is only announcing a single(!) mode, 1920x540 which looks very much like it is in fact 1080i. AFAIK we don't have interlace support in radeonhd yet, so the mode is discarded, and no modes are left. Does the projector work with different resolutions, if you specify a monitor section for it?
Sorry that it took so long to answer. I was fiddeling around with the projector all the time yesterday. I never got a picture when using radeonhd. Using fglrx it works (it displays a picture...). Fglrx reads the same EDID data than radeonhd. No difference here. The best I could do with radeonhd is that I prepared a dual monitor configuration, the first monitor works (DVI) and the second output device (projector via HDMI) has a mode assigned. But I cannot switch on the projector output. Here is what xrandr says: Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 1280 x 1280 VGA_1 disconnected TV_SVIDEO disconnected DVI-D_1 connected 1280x720+0+0 708mm x 398mm 1280x720_60.00 60.0* DVI-D_2 connected 1280x1024+0+0 376mm x 301mm 1280x1024 60.0*+ 59.9 1024x768 75.1 70.1 60.0 800x600 75.0 60.3 640x480 75.0 60.0 720x400 70.1 xrandr --auto doesn't show a picture on the projector.
Created attachment 15330 [details] dual monitor setup
Created attachment 15331 [details] Xorg.log for dual monitor setup
I just tried the latest git version but still no luck. But I stumbled across another issue. My projector only advertises a single mode which get's rejected by radeonhd. OK, so let's provide a modeline via config file. I tried various modes and it never worked, but I figured out that radeonhd doesn't even use the modes provided via xorg.conf! This happens when the monitor does not have at least a single usable mode. So I commented out lines 1289-1292 in rhd_modes.c. 1281 DisplayModePtr 1282 RHDModesPoolCreate(ScrnInfoPtr pScrn, Bool Silent) 1283 { 1284 DisplayModePtr Pool = NULL, List, TempList, Temp; 1285 char **ModeNames = pScrn->display->modes; 1286 int i; 1287 1288 List = rhdCreateModesListAndValidate(pScrn, Silent); 1289 /* 1290 if (!List) 1291 return List; 1292 */ 1293 1294 /* Reduce our list */ 1295 if (ModeNames && ModeNames[0]) { /* Find the best matching mode for each name */ Now my specified modes are processed but I still get no picture from my projector. I run X with logverbose 7, maybe someone has an idea.
Created attachment 15457 [details] Patched driver version log output The projector was the only device connected to the graphics card (via HDMI).
(In reply to comment #6) > modes and it never worked, but I figured out that radeonhd doesn't even use the > modes provided via xorg.conf! This happens when the monitor does not have at > least a single usable mode. So I commented out lines 1289-1292 in rhd_modes.c. Hm. Sounds reasonable, I have to think a little about this. > Now my specified modes are processed but I still get no picture from my > projector. I run X with logverbose 7, maybe someone has an idea. You have the NoRandr option still defined, and the only mode known is still the bogous 1920x540 mode. Is the 1024x768_60 mode coming from your configuration? Then it's certainly a different one than the one above. (II) RADEONHD(0): Rejected mode "1920x540" (1920x540:74.2Mhz): interlace mode not supported (II) RADEONHD(0): Modeline "1024x768_60.00"x59.8 64.00 1024 1077 1183 1342 768 771 775 798 -hsync +vsync (47.7 kHz) Does the project support 1024x768? I heard there are strange models that *only* support video modes. In that case you should try to set something like a real 1920x540 mode, maybe that tricks the projector into doublescan mode: # 1920x540 59.81 Hz (CVT) hsync: 33.61 kHz; pclk: 81.75 MHz Modeline "1920x540_60.00" 81.75 1920 1984 2176 2432 540 543 553 562 -hsync +vsync
The mode listed is an interlaced mode. I'm not sure how to deal with interlaced modes over a digital interface. I've been looking for specs for HDMI but so far wasn't able to turn up anything on public sites.
Yes, the 1024x768 mode has been supplied by me. According to the manual it is not supported, but the "supported" modes don't work either. I tested various different ones. FGLRX is able to drive the projector. I seems that it uses the interlace mode that the devices advertises.
OK, now it works. Using the latest version, radeonhd now drives my projector via HDMI! The latest changes three days ago made the difference. I still have to specify the modes for my projector explicitly, but that's Panasonics fault. Now my onboard graphics card can drive two digital outputs simultaneously. Great. Really good work. I'm impressed. Best wishes, Patrick
Ah, so you actually stumbled over something subtly different ;) In order to verify modeline handling, can you post the logfile of a now working driver, with the Xserver run with -logverbose 7?
OK, I just found out that the projector has to be switched on when I boot my computer. Otherwise radeonhd doesn't work with it. This is not necessary when using fglrx. I will try an older version of the driver later in the evening just to make sure that it doesn't work when the projector is switched on at boot time. So the attached Xorg.log has been produced when one monitor (DVI) and one projector where connected to the board.
Created attachment 15648 [details] Projector is working via HDMI
Ok, can you - for direct comparison - add a logfile (with -logverbose 7 again) when the projector had been switched off during boot time? Reopening for further investigation.
Created attachment 15669 [details] Projector switched off at boot time
Gee, there is absolutely no difference between the two logfiles :-( Apparently, the BIOS set up some registers we're not handling correctly yet for DDIA on RS690. Maybe Egbert has an idea. One other thing: can you swap the two monitors, so that the projector is connected to DVI-D_2? Of course you have to swap entries in xorg.conf as well. Then test what happens if you boot with switched of projector / switched of monitor. I assume that then a switched of monitor will not light up, and that this is something DDIA specific.
I've tried this with my Asus M2A-VM HDMI board and two DVI monitors. I can get both to light up even when the output wasn't active at boot time and thus not initialized during boot. I was using an HDMI2DVI adaptor to drive the DVI monitor on the HDMI output. Do you have a DVI capable monitor available to you so that you can try this with another display device?
My projector has only HDMI inputs (besides anlog ones). My monitor has only a DVI input (besides VGA). So I need to get a DVI to HDMI adaptor for testing. I'll check today if I can get such a device. My monitor (DVI) also lights up even if the device was switched off at boot time. Only the projector doesn't.
Just tested the connection to the projector using a DVI2HDMI adapter. That means I used the DVI output of the GPU and the HDMI input of the projector. The surprising result was that the projector lights up even it was not activated (switched off) during boot time. I attach a log file for this case. So the projector shows a different behaviour using different output plugs of the GPU.
Created attachment 15744 [details] projector off during boot, connected via DVI2HDMI adaptor
Patrick, thank you for testing! This is kind of what I expected. Should you be able to get an HDMI2DVI connector I would be curious if it works the other way around, too. I can drive my 1280x1024 as well as my 1920x1200 DVI on the HDMI connector of exactly this board.
Thanks, Patrick. This is what I expected as well, this apparently is DDIA related, which drives only one of the two outputs. Not that this is enough information to actually fix this issue, but we now have a strong indication where to look at. Patrick, I assume you don't need your little patch in comment #6 any more?
This problem is not confined to DDIA. We have other reports where this also happens on the LVTMA. On this and on other chips.
Perhaps it's an issue with the hw assisted i2c? It might be interesting to see how SW i2c compares (radeon driver) in this case.
That's right Matthias, my little patch is not needed anymore. I also tested the newest version today, but the situation remains the same.
Thanks, Patrick. Alex, we do get EDID data, just interlaced wasn't implemented (until yesterday), and the projector only announces its 1080i mode. The main issue is that the BIOS somehow initializes some registers (this time regarding DDIA) only if something is connected at boot time.
(In reply to comment #27) > Alex, we do get EDID data, just interlaced wasn't implemented (until > yesterday), and the projector only announces its 1080i mode. > The main issue is that the BIOS somehow initializes some registers (this time > regarding DDIA) only if something is connected at boot time. > Sorry, I misunderstood the problem. A patch to dump the DDIA registers in each case may be helpful. The DDIA block is 0x7200 - 0x7290. for (i = 0x7200; i <= 0x7290; i += 4) { ErrorF("0x%x: 0x%x\n", i, RHDRegRead(Output, i)); }
I might be able to figure out where to put the little patch from Alex, but how about a hint just to speed up the process? Thanks.
(In reply to comment #27) > Thanks, Patrick. > > Alex, we do get EDID data, just interlaced wasn't implemented (until > yesterday), and the projector only announces its 1080i mode. Interlaced is still disabled for digital outputs as i would like to test it first. I don't have such a fancy TV available for testing. I'm still using an old fashioned tube (sufficient for my tv consumption). > The main issue is that the BIOS somehow initializes some registers (this time > regarding DDIA) only if something is connected at boot time. > I will probably do a simple minded reg dumper that can be run stand alone.
(In reply to comment #29) > I might be able to figure out where to put the little patch from Alex, but how > about a hint just to speed up the process? Thanks. > It would be best to compare registers after X is supposed to have set up the mode. So I'd put it into rhdRROutputCommit(), somewhere after rout->Output->Power(...).
OK, here are the register values for the two alternatives at boot time. At least some are different. Enjoy looking at the magic numbers ;-) projector_off projector_on 0x7200: 0x1000 0x7200: 0x1000 0x7204: 0x0 0x7204: 0x1 0x7208: 0x0 0x7208: 0x0 0x720c: 0x0 0x720c: 0x0 0x7210: 0x0 0x7210: 0x0 0x7214: 0x0 0x7214: 0x0 0x7218: 0x0 0x7218: 0x0 0x721c: 0x0 0x721c: 0x0 0x7220: 0x0 0x7220: 0x0 0x7224: 0x0 0x7224: 0x0 0x7228: 0x0 0x7228: 0x0 0x722c: 0x0 0x722c: 0x0 0x7230: 0x1000000 0x7230: 0x1000000 0x7234: 0x7ffffff 0x7234: 0x7ffffff 0x7238: 0x7ffffff 0x7238: 0x7ffffff 0x723c: 0x0 0x723c: 0x0 0x7240: 0x60 0x7240: 0x60 0x7244: 0x222222 0x7244: 0x222222 0x7248: 0x0 0x7248: 0x0 0x724c: 0x0 0x724c: 0x0 0x7250: 0x71 0x7250: 0x1 0x7254: 0x0 0x7254: 0x0 0x7258: 0xaa0355 0x7258: 0xaa0355 0x725c: 0x0 0x725c: 0x0 0x7260: 0x0 0x7260: 0x0 0x7264: 0x0 0x7264: 0x2 0x7268: 0x0 0x7268: 0x0 0x726c: 0x0 0x726c: 0x0 0x7270: 0x0 0x7270: 0x0 0x7274: 0x0 0x7274: 0x0 0x7278: 0x0 0x7278: 0x0 0x727c: 0x0 0x727c: 0x0 0x7280: 0x0 0x7280: 0x0 0x7284: 0x0 0x7284: 0x0 0x7288: 0x0 0x7288: 0x0 0x728c: 0x0 0x728c: 0x64f13f0 0x7290: 0x0 0x7290: 0x1f2
Patrick, thanks for the log data! I've looked at it (again) and I think I may have found the issue. I've just pushed a patch. If you find the time please try and see if your projector comes up even when it's not connected at boot time (on or off doesn't matter as a turned off monitor still does DDC).
Hello Egbert, I tried the latest version from head but it didn't help. Should I try another branch or provide some other debug information?
(In reply to comment #34) > Hello Egbert, I tried the latest version from head but it didn't help. Should I > try another branch or provide some other debug information? > No, this is the very last idea i've had. The dumps in comment #34 were made from the text console, right? What you can do is to create those dumps while X is running. Then I can compare the register sets set by X directly.
OK, I used the rhd_dump utility this time. Here are the result running it from an xterm. In one case the projector was switched off and in the other case it was switched on at boot time. rhd_dump: v1.2.1, git branch master, commit 0780b69e projector on off 0x7200: 0x00001001 0x00001000 0x7204: 0x00000001 0x00000000 0x7208: 0x00000000 0x00000000 0x720C: 0x00000000 0x00000000 0x7210: 0x00000000 0x00000000 0x7214: 0x00000000 0x00000000 0x7218: 0x00000000 0x00000000 0x721C: 0x00000000 0x00000000 0x7220: 0x00000000 0x00000000 0x7224: 0x00000000 0x00000000 0x7228: 0x00000000 0x00000000 0x722C: 0x00000000 0x00000000 0x7230: 0x01000000 0x01000000 0x7234: 0x07FFFFFF 0x07FFFFFF 0x7238: 0x07FFFFFF 0x07FFFFFF 0x723C: 0x00000000 0x00000000 0x7240: 0x00000060 0x00000060 0x7244: 0x00222222 0x00222222 0x7248: 0x00000000 0x00000000 0x724C: 0x00000000 0x00000000 0x7250: 0x00000001 0x00000071 0x7254: 0x00000000 0x00000000 0x7258: 0x00AA0355 0x00AA0355 0x725C: 0x00000000 0x00000000 0x7260: 0x00000000 0x00000000 0x7264: 0x00000002 0x00000000 0x7268: 0x00000000 0x00000000 0x726C: 0x00000000 0x00000000 0x7270: 0x00000000 0x00000000 0x7274: 0x00000000 0x00000000 0x7278: 0x00000000 0x00000000 0x727C: 0x00000000 0x00000000 0x7280: 0x00000000 0x00000000 0x7284: 0x00000000 0x00000000 0x7288: 0x00000000 0x00000000 0x728C: 0x056F09F0 0x00000000 0x7290: 0x000001F2 0x00000000 0x7294: 0x00000000 0x00000000 0x7298: 0x00000000 0x00000000 0x729C: 0x00000000 0x00000000
Patrick: thanks for the listings. I'm sorry to pester you so much! The funny thing here is that the case where the projector was off at boot time the dump looks (almost) identical to the uninitialized case in comment #34. It looks as if this output was not initialized almost as if the driver wasn't active at the time the dump was made. Could I ask you to try and generate the log for the off case again and could you please check if the (-logverbose 7) log file of the running Xserver contains the lines: (II) RADEONHD(0): FUNCTION: DDIAMode (II) RADEONHD(0): FUNCTION: rhdRRCrtcCommit (II) RADEONHD(0): FUNCTION: D2Power before you run rhd_dump? If not please attach the verbose log file. Then there's something else that went wrong :(
Created attachment 17939 [details] projector off; -logverbose 7
I couldn't find "DDIAMode" in the log file so I added the full log as an attachment. Egbert, please don't hesitate to ask for more help, I really want to help to get it to work.
Patrick, was the projector turned on when you started the Xserver? The log file contains: (II) RADEONHD(0): rhdRS69I2CSetupStatus: DDC Line: 2 val: 0 port: 0x1f90 (II) RADEONHD(0): FUNCTION: rhdRS69I2CStatus (II) RADEONHD(0): DDC Probing for Output DDIA returned disconnected (II) RADEONHD(0): Output DVI-D_2 enabled by config file So DDC probing for an attached display device didn't return any results. Usually it should not matter if a device is turned on or not as DDC gets its power from the graphics card. But this might be different here. On the other hand I discovered a bug in the fix i made, so you may want to wait with further tests until i've got the patch committed.
The projector was turned off when I made the test. You asked me to test this case in #37.
Patrick, I've just pushed a fix. Please leave the projector off while the system is booting and turn it on before X starts up. You can turn it on as soon as the kernel comes up because then the BIOS is already done POSTing the card. The main difference between POSTing with the projector off and the projector on is that the BIOS will not set a mode on an output where nothing seems to be connected. For the Xserver driver to detect the projector on your RS690 board it needs to be able to read DDC from it. If it doesn't see DDC it will consider it undetected. Apparently the projector doesn't send DDC data when it's off. (Most display devices do this even in the powered off state as the voltage for the DDC circuits are supplied by the grahics card).
It works now. As you said the projector needs to be switched on before X starts. So when I need my projector I switch it on and restart X and that's it. I don't need to reboot my machine anymore. Thank you!
Patrick, quick note: You should be able to use 'xrandr -q' to force the Xserver to rescan for devices and discover newly attached ones. So even when you start without the projector turned on it should be able to light it up then.
Egbert, xrandr -q would be cool, but doesn't work for me. Projoctor doesn't light up. Here is the output: pvo@bart:~$ xrandr -q Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 1280 x 1280 DVI-D_2 connected 1280x1024+0+0 376mm x 301mm 1280x1024 60.0*+ 59.9 1024x768 75.1 70.1 60.0 800x600 75.0 60.3 640x480 75.0 60.0 720x400 70.1 VGA_1 disconnected TV_SVIDEO disconnected DVI-D_1 connected 1280x720_60.00 60.0 pvo@bart:~$
(In reply to comment #45) > Egbert, xrandr -q would be cool, but doesn't work for me. Projoctor doesn't > light up. Here is the output: > > pvo@bart:~$ xrandr -q > Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 1280 x 1280 > DVI-D_2 connected 1280x1024+0+0 376mm x 301mm > 1280x1024 60.0*+ 59.9 > 1024x768 75.1 70.1 60.0 > 800x600 75.0 60.3 > 640x480 75.0 60.0 > 720x400 70.1 > VGA_1 disconnected > TV_SVIDEO disconnected > DVI-D_1 connected > 1280x720_60.00 60.0 > pvo@bart:~$ > The projector is in DVI-D_2, isn't it? You'd have to do: xrandr --output DVI-D_2 --mode 1280x720 --crtc 1 (I assume).
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.