[Openchrome-devel] VX800 and interlaced mode

Anders Gunnarsson d00guan
Wed Jul 22 08:32:00 PDT 2009


On m?n, 2009-03-02 at 18:14 +0100, Anders Gunnarsson wrote:
> Den Sunday 01 March 2009 22:29:06 skrev Xavier Bachelot:
> > Anders Gunnarsson wrote:
> > > Bump
> > >
> > > Anyone?
> > >
> > > Sunday 15 February 2009 18:47:10 you wrote:
> > >> Hi all,
> > >>
> > >> I try to get my vx800 based M700 into interlaced mode. The
> response I
> > >> get from the driver is "interlace mode not supported". Is this a
> > >> hardware limitation or is it a limitation from the driver?
> > >>
> > >> If it is the driver, can someone point me in the right direction
> for a
> > >> solution.
> > >>
> > >> My driver is openchrome-svn checked out like 2 months ago, if
> something
> > >> has changed lately.
> > >>
> > >> Best regards
> > >> /Anders
> >
> > The best I can do is a link to the VX800 doc. I have no idea if
> > interlaced mode is supported or not, but iirc, it was not supported
> on
> > the earlier chipsets.
> >
> > http://www.openchrome.org/trac/wiki/Development#a2D
> >
> > Regards,
> > Xavier
> 
> Thanks!
> 
> Hadn't seen that documentation earlier. Only the one at via's linux
> site.
> 
> IO Port / Index: 3X5.33 HSynch Adjuster, bit 6 Primary Display
> Interlace Mode seem suspicious. I'll see if I can manage to make
> something out of this information myself or not. All help is
> appreciated.
> 
> /Anders
> 

I finally got some time over to have a look at this again. Tried to do
the changes below without much luck. This means I get no image on my tv
over my non verified vga-scart cable. Could someone help me to verify if
the result is an interlaced signal?

I don't know if I got things right, since I'm not much of a c developer
and not at all an xorg developer. The manual states that interlace mode
on primary display is set through 3X5.33 (port 3B5, index 33?) bit 6
which is what I tried to do. Then I don't know if this is sufficient or
if there are more things that need to be done like manipulating nuber of
rows etc. From what I found on interlace in the manual there is a
similar setting for secondary display, and some IGA2 Interlace Half Line
Register on 3X5.AB-AC.

Any help is appreciated
/Anders

----
Index: src/via_crtc.c
===================================================================
--- src/via_crtc.c	(revision 758)
+++ src/via_crtc.c	(working copy)
@@ -184,6 +184,11 @@
     }
 
     /* Crtc registers */
+    /* Interlace */
+    if (mode->Flags & V_INTERLACE) {
+        ViaCrtcMask(hwp, 0x33, 0x40, 0xFF);
+    }
+
     /* horizontal total : 4100 */
     temp = (mode->CrtcHTotal >> 3) - 5;
     hwp->writeCrtc(hwp, 0x00, temp & 0xFF);
Index: src/via_mode.c
===================================================================
--- src/via_mode.c	(revision 758)
+++ src/via_mode.c	(working copy)
@@ -882,8 +882,14 @@
     DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "ViaValidMode: Validating %s (%
d)\n",
                      mode->name, mode->Clock));
 
-    if (mode->Flags & V_INTERLACE)
-        return MODE_NO_INTERLACE;
+    if (mode->Flags & V_INTERLACE) {
+        switch (pVia->Chipset) {
+            case VIA_VX800:
+                break;
+            default:
+                return MODE_NO_INTERLACE;
+        }
+    }
 
     if (pVia->UseLegacyModeSwitch) {
 






More information about the Openchrome-devel mailing list