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>
