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

Attachment: 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)

Reply via email to