Hi, TL;DR: There is an error in the function that calculates the clock dividers.
I think I found the error. The test program finds the following dividers: ; Requested clock = 216180000 ; Actual clock = 214285680 (difference = 1894320) ; Dividers = sel:1 pre:35 post:1 sel=1 corresponds to the 125MHz reference clock. After clock scaling this results in a 171.4MHz clock, which when divided by the total number of pixels gives the observed 47.6 Hz refresh rate. I'm not quite sure why oga1_get_clock_dividers returns the wrong choice. In the attached lisp file I reimplemented the function as lisp-get-clock-dividers which suggests sel=1 pre=28 post=1 which corresponds to a clock of 214.28 MHz and should refresh the screen with 59.543 Hz. This is 0.8% below the target frequency. There is the comment /* Allow clocks within 0.5% over required */ in oga1_get_clock_dividers but I don't see any code that would reject frequencies that are more than 0.5% off. 2011/6/27 Martin Kielhorn <[email protected]> > > > 2011/6/27 Timothy Normand Miller <[email protected]> > >> What are the horizontal and vertical total for this mode? The mode >> definition could just be wrong. >> > > The OGA1 totals are 1280+408=1688 and 1024+42=1066. > This is the same as what the NVIDIA reports in Xorg.0.log, > if I summed them up correctly. But why is the H/V polarity +/+ > according to the Nvidia? > > When I counted correctly, the 71th byte of the EDID has the value > 0x1e=0b11110 > which probably means that H/V should be positive (bit 1 and bit 2 are > high). > http://en.wikipedia.org/wiki/Extended_display_identification_data > > I'm just trying to get a Common Lisp binding for liboga1 working > so that I can debug this better. > > [ extract from Xorg.0.log ] > (--) Jun 27 12:47:10 NVIDIA(0): EDID Version : 1.3 > (--) Jun 27 12:47:10 NVIDIA(0): Manufacturer : FDD > (--) Jun 27 12:47:10 NVIDIA(0): Monitor Name : FDD > (--) Jun 27 12:47:10 NVIDIA(0): Product ID : 4868 > (--) Jun 27 12:47:10 NVIDIA(0): 32-bit Serial Number : 16777216 > (--) Jun 27 12:47:10 NVIDIA(0): Serial Number String : ;=?A^K > (--) Jun 27 12:47:10 NVIDIA(0): Manufacture Date : 2006, week > 12 > (--) Jun 27 12:47:10 NVIDIA(0): DPMS Capabilities : > (--) Jun 27 12:47:10 NVIDIA(0): Prefer first detailed timing : No > (--) Jun 27 12:47:10 NVIDIA(0): Supports GTF : Yes > (--) Jun 27 12:47:10 NVIDIA(0): Maximum Image Size : 320mm x > 240mm > (--) Jun 27 12:47:10 NVIDIA(0): Valid HSync Range : 64.0 kHz - > 91.1 kHz > (--) Jun 27 12:47:10 NVIDIA(0): Valid VRefresh Range : 60 Hz - 85 > Hz > (--) Jun 27 12:47:10 NVIDIA(0): EDID maximum pixel clock : 157.5 MHz > (--) Jun 27 12:47:10 NVIDIA(0): > (--) Jun 27 12:47:10 NVIDIA(0): Standard Timings: > (--) Jun 27 12:47:10 NVIDIA(0): 1280 x 1024 @ 75 Hz > (--) Jun 27 12:47:10 NVIDIA(0): 1280 x 1024 @ 85 Hz > (--) Jun 27 12:47:10 NVIDIA(0): 1024 x 768 @ 85 Hz > (--) Jun 27 12:47:10 NVIDIA(0): > (--) Jun 27 12:47:10 NVIDIA(0): Detailed Timings: > (--) Jun 27 12:47:10 NVIDIA(0): 1280 x 1024 @ 60 Hz > (--) Jun 27 12:47:10 NVIDIA(0): Pixel Clock : 108.09 MHz > (--) Jun 27 12:47:10 NVIDIA(0): HRes, HSyncStart : 1280, 1328 > (--) Jun 27 12:47:10 NVIDIA(0): HSyncEnd, HTotal : 1440, 1688 > (--) Jun 27 12:47:10 NVIDIA(0): VRes, VSyncStart : 1024, 1025 > (--) Jun 27 12:47:10 NVIDIA(0): VSyncEnd, VTotal : 1028, 1066 > (--) Jun 27 12:47:10 NVIDIA(0): H/V Polarity : +/+ > (--) Jun 27 12:47:10 NVIDIA(0): > (--) Jun 27 12:47:10 NVIDIA(0): > (--) Jun 27 12:47:10 NVIDIA(0): Raw EDID bytes: > (--) Jun 27 12:47:10 NVIDIA(0): > (--) Jun 27 12:47:10 NVIDIA(0): 00 ff ff ff ff ff ff 00 18 84 04 13 00 > 00 00 01 > (--) Jun 27 12:47:10 NVIDIA(0): 0c 10 01 03 81 20 18 00 09 04 88 a0 57 > 4a 9b 26 > (--) Jun 27 12:47:10 NVIDIA(0): 12 48 4c 00 00 00 81 80 81 8f 81 99 61 > 59 01 01 > (--) Jun 27 12:47:10 NVIDIA(0): 01 01 01 01 01 01 39 2a 00 98 51 00 2a > 40 30 70 > (--) Jun 27 12:47:10 NVIDIA(0): 13 00 40 f0 10 00 00 1e 00 00 00 ff 00 > 3b 3d 3f > (--) Jun 27 12:47:10 NVIDIA(0): 41 0b 0a 0a 0a 0a 0a 0a 0a 0a 00 00 00 > fe 00 53 > (--) Jun 27 12:47:10 NVIDIA(0): 58 47 41 20 49 2f 46 0a 20 20 20 20 00 > 00 00 fe > (--) Jun 27 12:47:10 NVIDIA(0): 00 53 58 47 41 0a 20 20 20 20 20 20 20 > 20 00 62 > (--) Jun 27 12:47:10 NVIDIA(0): > (--) Jun 27 12:47:10 NVIDIA(0): --- End of EDID for FDD (DFP-1) --- > > > > > >> >> On Mon, Jun 27, 2011 at 6:10 AM, Martin Kielhorn >> <[email protected]> wrote: >> > Hi, >> > I have a problem in the sense that the 1280x1024-32@60Hz mode >> > isn't really 60Hz. The screen says the VSYNC rate is 47Hz. The >> > Samsung screen actually displays the test picture, but the ForthDD >> > display that I need to get running, doesn't work. >> > Hopefully someone on this list can shed some light on this. >> > >> > I uploaded two screenshots of a tool that came with the ForthDD display >> > http://imgur.com/a/a4f6p >> > The top one is with the Nvidia card and the bottom one with the open >> > graphics hardware. >> > The OGD1 tool prints this: >> > Requested clock = 216180000 >> > Actual clock = 214285680 (difference = 1894320) >> > That means the actual clock is 0.8% off, that doesn't explain the 47Hz >> VSYNC >> > rate that the screens report >> > Appart from the frequencies I see differences in the IFM_PIX_SYS_RATIO >> and >> > the tick at 'h+ sync'. >> > >> > >> > This is the output of oga1-vide-test: >> > >> > cyberpower:/opt/ogp/bin# ./oga1-vid-test --busid 0b:1.0 >> > oga1_i2c_get_edid: Reading EDID for top head. >> > manufacturer ID = "FDD" product=4868 sn=16777216 (2002 week 16) >> > EDID version 1.3 >> > Display is digital >> > Digital interface: DVI >> > Color Bit Depth is undefined >> > image size 32x24 >> > display gama 1.000000 >> > Power management: >> > Color encoding : RGB 4:4:4:4 & YCrCb 4:4:4 >> > Features: (default GTF supported) >> > Chromaticity Coordinates: >> > Red: 280:15c 0.625000:0.339844 >> > Green: 129:26c 0.290039:0.605469 >> > Blue: 09a:048 0.150391:0.070312 >> > White: 122:130 0.283203:0.296875 >> > Established Timings: >> > Standard Timing: >> > 0: 1280x1024 @ 60 Hz >> > 1: 1280x1024 @ 75 Hz >> > 2: 1280x1024 @ 85 Hz >> > 3: 1024x768 @ 85 Hz >> > Descriptor 0: >> > pixel clock = 108090 KHz >> > H active 1280 >> > H blanking 408 >> > V active 1024 >> > V blanking 42 >> > H sync offset 48 >> > H sync width 112 >> > V sync offset 1 >> > V sync width 3 >> > H image size 320mm >> > V image size 240mm >> > H border 0 >> > V border 0 >> > flags 1e >> > Descriptor 1: (FF) >> > Serial Number ;=?A >> > Descriptor 2: (FE) >> > ASCII string SXGA I/F >> > Descriptor 3: (FE) >> > ASCII string SXGA >> > 00 ff ff ff ff ff ff 00 18 84 04 13 00 00 00 01 >> > 0c 10 01 03 81 20 18 00 09 04 88 a0 57 4a 9b 26 WJ & >> > 12 48 4c 00 00 00 81 80 81 8f 81 99 61 59 01 01 HL aY >> > 01 01 01 01 01 01 39 2a 00 98 51 00 2a 40 30 70 9* Q *@0p >> > 13 00 40 f0 10 00 00 1e 00 00 00 ff 00 3b 3d 3f @ ;=? >> > 41 0b 0a 0a 0a 0a 0a 0a 0a 0a 00 00 00 fe 00 53 A S >> > 58 47 41 20 49 2f 46 0a 20 20 20 20 00 00 00 fe XGA I/F >> > 00 53 58 47 41 0a 20 20 20 20 20 20 20 20 00 62 SXGA b >> > oga1_i2c_get_edid: Reading EDID for bottom head. >> > oga1_i2c_get_edid: failed to read byte 0. >> > Looking for mode: ddc >> > Requested clock = 216180000 >> > Actual clock = 214285680 (difference = 1894320) >> > Dividers = sel:1 pre:35 post:1 >> > Setting Up DVI on top head. >> > oga1_dvi_init_single_link: pixel clock = 108090000 >> > Loading Video Program on top head (1280x1024@60). >> > start=0x8000000 pitch=1280 >> > hres=1280, hfp=48, hsync=112, hbp=248 [408] >> > vres=1024, vfp=1, vsync=3, vbp=38 [42] >> > pix-clock=108090000 digital hsync-low vsync-high >> > oga1_set_video_mode: digital 1 dvi_sl 1 vid_mode 5 >> > oga1_set_video_mode: pixel_info = d output_mode = 1 >> > 00987654 >> > 00123456 >> > >> > I checked that the nvidia tool reports exactly the same EDID >> information. >> > >> > -- >> > Martin Kielhorn >> > Randall Division of Cell & Molecular Biophysics >> > King's College London, New Hunt's House >> > Guy's Campus, London SE1 1UL, U.K. >> > tel: +44 (0) 207 848 6519, fax: +44 (0) 207 848 6435 >> > >> > _______________________________________________ >> > Open-graphics mailing list >> > [email protected] >> > http://lists.duskglow.com/mailman/listinfo/open-graphics >> > List service provided by Duskglow Consulting, LLC (www.duskglow.com) >> > >> >> >> >> -- >> Timothy Normand Miller >> http://www.cse.ohio-state.edu/~millerti >> Open Graphics Project >> > > > > -- > Martin Kielhorn > Randall Division of Cell & Molecular Biophysics > King's College London, New Hunt's House > Guy's Campus, London SE1 1UL, U.K. > tel: +44 (0) 207 848 6519, fax: +44 (0) 207 848 6435 > -- Martin Kielhorn Randall Division of Cell & Molecular Biophysics King's College London, New Hunt's House Guy's Campus, London SE1 1UL, U.K. tel: +44 (0) 207 848 6519, fax: +44 (0) 207 848 6435
ogp.lisp
Description: Binary data
_______________________________________________ Open-graphics mailing list [email protected] http://lists.duskglow.com/mailman/listinfo/open-graphics List service provided by Duskglow Consulting, LLC (www.duskglow.com)
