Re: xawtv and rage 128 troubles

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



>  the v4l module in XF86Config. If I load v4l, the picture goes
>  away. I'm perfectly happy not to load v41, but I'm curious as to why
>  it causes the picture not to work. My guess is that my POS video card
>  (Rage 128) doesn't support something that's required. Is that correct?

No, it's a bug in the r128 driver.  It doesn't set memPhysBase
correctly.

  Gerd

---------------------------- cut here --------------------
--- xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c.phys	Thu Sep 13 10:16:29 2001
+++ xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c	Thu Sep 13 10:19:59 2001
@@ -817,6 +817,7 @@
 
     from             = X_PROBED;
     info->LinearAddr = info->PciInfo->memBase[0] & 0xfc000000;
+    pScrn->memPhysBase = info->LinearAddr;
     if (dev->MemBase) {
 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
 		   "Linear address override, using 0x%08x instead of 0x%08x\n",
--- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c.phys	Thu Sep 13 10:20:35 2001
+++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c	Thu Sep 13 10:21:35 2001
@@ -1213,6 +1213,7 @@
 
     from             = X_PROBED;
     info->LinearAddr = info->PciInfo->memBase[0] & 0xfc000000;
+    pScrn->memPhysBase = info->LinearAddr;
     if (dev->MemBase) {
 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
 		   "Linear address override, using 0x%08x instead of 0x%08x\n",
--- xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c.phys	Thu Sep 13 11:00:48 2001
+++ xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c	Thu Sep 13 11:01:04 2001
@@ -207,6 +207,8 @@
 
 static int V4lOpenDevice(PortPrivPtr pPPriv, ScrnInfoPtr pScrn)
 {
+    static int first = 1;
+
     if (-1 == V4L_FD) {
 	V4L_FD = open(V4L_NAME, O_RDWR, 0);
 
@@ -215,7 +217,12 @@
 	pPPriv->rgb_fbuf.depth        = pScrn->bitsPerPixel;
 	pPPriv->rgb_fbuf.bytesperline = pScrn->displayWidth * ((pScrn->bitsPerPixel + 7)/8);
 	pPPriv->rgb_fbuf.base         = (pointer)(pScrn->memPhysBase + pScrn->fbOffset);
-	
+	if (first) {
+	    first = 0;
+	    xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 2,
+			 "v4l: memPhysBase=%p\n", pScrn->memPhysBase);
+	}
+
 	switch (pScrn->bitsPerPixel) {
 	case 16:
 	    if (pScrn->weight.green == 5) {





[Index of Archives]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [Linux USB]

Powered by Linux