Date: Thu, 08 Apr 1999 13:29:33 -0600 From: Wes Peters <wes@softweyr.com> To: Nate Williams <nate@mt.sri.com> Cc: Roger Hardiman <roger@cs.strath.ac.uk>, hackers@FreeBSD.ORG, multimedia@FreeBSD.ORG Subject: Re: Bt848 corruption since upgrading to 3.1. Has DMA code changed? Message-ID: <370D039D.FC2D907A@softweyr.com> References: <370CB2DC.709E7CEA@cs.strath.ac.uk> <370CAA37.3645E2B9@softweyr.com> <370CD277.E9A64E04@cs.strath.ac.uk> <199904081837.MAA28461@mt.sri.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Nate Williams wrote: > > > > Does the driver explicitly turn on PCI bus mastering on the card? The > > > PCI initialization code no longer does this. This change bit the fxp > > > driver on some machines where the BIOS doesn't initialize bus mastering > > > on the card. > > > > The driver has this code which enables the Bus Mastering. > > It was added back in the days of 3.0-current (about 12 months ago) when > > the driver > > was common to 2.2.x and 3.x. That is why there is a #if around the code. Actually the #if is unnecessary, it only saves you the pci_conf_read and pci_conf_write, which are small potatoes in an attach routine. Worst case, you're turning on a bit that was already turned on. > > #if __FreeBSD__ > 2 > > fun = pci_conf_read(tag, PCI_COMMAND_STATUS_REG); > > pci_conf_write(tag, PCI_COMMAND_STATUS_REG, fun | 4); > > #endif > > Other than using a magic number of 4, that's almost the same as what's > used in the fxp code. However, that also enables adds 0x2, which has > another meaning. The correct name for "4" here would be PCIM_CMD_BUSMASTEREN. > (It should be updated to not use the magic numbers, and instead use the > constants supplied in <pci/pcireg.h>, but that's a minor issue). Unless you're trying to maintain that and don't know to look in pcireg.h for the bit definitions. Magic numbers BAD! Other than that, I have no help to offer. Do you know for sure where it dies? I tracked down the problem in fxp with some simple printfs, and then several someones on -hackers pointed out the fix. -- "Where am I, and what am I doing in this handbasket?" Wes Peters Softweyr LLC http://www.softweyr.com/~softweyr wes@softweyr.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-multimedia" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?370D039D.FC2D907A>