Intel i915GM with SDVO CH7021A support?
Will .
nodenet at hotmail.com
Tue Jan 2 15:19:23 PST 2007
>Hey, good work.
Thanks for the encouragement, much appreciated.
>Yes, please post the code. If you have a chance, I think you'll find the
>modesetting branch a lot easier to work in for this kind of thing, it
>has SDVO communication code all set up.
I think that's good advice (which I know I should have taken). Hopefully if
there is time available to add support for this I'll pull the latest
modesetting branch and try to put my changes in the correct places. I assume
you'll want to minimize conditional branching etc as much as possible so if
someone has the time to talk to me about whats required I'll do my best to
contribute as appropriate.
=======================================================
//output connection (DAC select ?)
* memset(s->sdvo_regs, 0, 9);
* s->sdvo_regs[SDVO_I2C_ARG_0] = 0x4;
* s->sdvo_regs[SDVO_I2C_ARG_4] = 0x4;
* s->sdvo_regs[SDVO_I2C_OPCODE] = 0x5; //SDVO_CMD_SET_ACTIVE_OUTPUTS
//Composite= 0x4 DACB
//Component = 0x10; DACA
//Scart = 0x20; DACC
The ports bellow were found using an incremental scan of the first 256 op
codes (I used an xv hack and a shell script - probably not the best solution
but it worked). Perhaps a better/alternative tactic may have been to look
for opcodes that responded as it seems set/get pairs may travel in similar
or adjoining locations.
The op codes listed may alter their range and function depending on the
output type that is selected and possibly the tv format e.g.
interlace/progressive. Most seem to support clock values. I've listed my
notes with approximate defaults that relate to my setup, most of the notes
relate to the component output I was using at the time.
93 (CONTRAST)
approx 60 is def
96 - 0x60 (BRIGHTNESS)
approx 60 is def
99- 0x63 (WIDTH) Height is done with input timing
approx 28 is def
105 (HORZ POSITION)
500 is def
520 is better
507 is correct for my display using scart
108 (VERT POSITION)
199 is correct for my display using scart (the default)
81 (SHARPNESS/FILTER??)
111 (FILTER??)
87 (COLOUR - AMOUNT)
approx 60 is def 0=BW 100=SATURATED
90 (HUE)
approx 60 is def
45 (UNKNOWN - Causes display to blank and sync loss)
59 (UNKNOWN - Causes display to flash)
=======================================================
A corresponding modeline is required for the TV output to work, I think this
can be generated using create preferred input timings (does this take note
of the selected tv format). There is a relationship between input timing and
output timings related to the tv format selected. I didn't notice much
difference when playing with the sdvo output timings for this device,
presumably output timings are fixed by the tv format.
Modeline "720x576_SDVO" 0.96 720 763 795 864 576 585 587 630 +vsync
#original from BIOS trace
#Modeline "720x576_SDVO" 0.96 720 756 788 864 576 616 618 700 +vsync
I made a corresponding adjustment to the 630 above in the input timings to
get the overscan working as desired. There were some discrepancies between
the original mode line from the bios trace (PAL 720x576 using 915resolution
and vbetool) and the dtd that was created by create input timings, not sure
if this is because I miss interpreted the data or due to some other reason.
The only discrepancy was vsync offset which seemed way off.
When adjusting the overscan I reduced m in the PLL timings to gain a sync
lock. I don't have the correct fixups for the PLL registers so I just used
guess work, there is undoubtedly a proper way to calculate this but the full
PLL routines may be required for them to be of any use.
e.g. I noticed the following not sure if its of any use though
3000/96/2=15.625 (Horizontal timing for PAL)
3000=clock value from create preferred input timings (ok not exactly but
2999+1)
96=the modeline clock from the BIOS trace
2=because its interlaced???
By adjusting the sync offset of the modeline horizontal/vertical position is
adjustable in the normal way, I didn't adjust the input timing for this,
there are sdvo op codes available for horiz/vert position anyway.
I've left sync disabled in ADPA, I think the sync is taken from 7021A's PLL
anyway. I seem to remembed that if sync in ADPA is enabled that the CRT
output will also be enabled, presumably with the TV timings from the 7021A.
Perhaps this could be used to get exact tv timing for DVI if that isn't
already possible
That's all I can remember for the moment hope this helps!
_________________________________________________________________
Find Singles In Your Area This Christmas With Match.com! msnuk.match.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: thunk.diff
Type: text/x-diff
Size: 10843 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20070102/4ab6a4fc/attachment.diff>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sdvo.diff
Type: text/x-diff
Size: 26914 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20070102/4ab6a4fc/attachment-0001.diff>
More information about the xorg
mailing list