Re: Architecture dependant stuff in PCI drivers

Martin Mares (mj@ucw.cz)
Thu, 27 Aug 1998 23:26:23 +0200


Hello,

> The master bit was not enabled by my (probably buggy) bios. So removing
> the #ifdef __powerpc__ solved the problem on my i386 machine.
>
> The above picece of code should probably not be surrounded by #ifdef
> __powerpc__ since it seems to fix some bug/feature/odd behaviour of the
> bios in the ncr810 card I used.
>
> A quick look around revelals the same fix in several drivers. In the
> am53c974.c drive the following comment can be found:
> /* PCI Spec 2.1 states that it is either the driver's or the PCI card's
> responsibility
> to set the PCI Master Enable Bit if needed.
> (from Mark Stockton <marks@schooner.sys.hou.compaq.com>) */
>
> Is there somebody out there who knows PCI specs that can explain this
> and then probably remove some unnessesarly #ifdef __<meta>__
> arcitecture dependant stuff from the drivers. This issue seems to go
> across all drivers/pci cards that requre bus mastering so a generic fix
> for all drivers would be nice.

With current PCI code, the driver should just call the pci_set_master()
function to set up bus mastering flags and do this on all architectures.

Have a nice fortnight

-- 
Martin `MJ' Mares   <mj@ucw.cz>   http://atrey.karlin.mff.cuni.cz/~mj/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
"What's the difference between '486 and Pentium? About 2.10^-4"

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html