Re: PCI bus numbering and orphaned devices

From: M. Warner Losh <imp_at_bsdimp.com>
Date: Tue, 10 Jun 2003 08:27:30 -0600 (MDT)
In message: <20030610121249.GE10527_at_cicely12.cicely.de>
            Bernd Walter <ticso_at_cicely12.cicely.de> writes:
: On Tue, Jun 10, 2003 at 01:56:15PM +0200, Bernd Walter wrote:
: > On Mon, Jun 09, 2003 at 10:46:21PM -0600, M. Warner Losh wrote:
: > > I'm thinking that the loop should be more like:
: > > 
: > > 		pcifunchigh = 0;
: > > 		f = 0;
: > > 		hdrtype	= REG(PCIR_HEADERTYPE, 1);
: > > 		if (hdrtype & 0x7f > 2)
: > > 			continue;
: > > 		if (hdrtype & 0x80)
: > s/0x80/PCIM_MFDEV/
: > Maybe we should add a PCIM_REGLAYOUT as well.
: > 
: > > 			pcifunchigh = PCI_FUNCMAX;
: > > 		for (f = 0; f <= pcifunchigh; f++) {
: > > 			dinfo = pci_read_device(pcib, busno, s, f, dinfo_size);
: > > 			if (dinfo != NULL)
: > > 				pci_add_child(dev, dinfo);
: > > 		}
: > > 
: > > might be better code (REG likely needs to be correctly defined for
: > > this context).
: > 
: > This needs to be tested on that given hardware.
: > I don't know if REG will work as expected because it asks function 0,
: > which is disabled.
: 
: I've reread John-Mark's last mail about the readable registers.
: So - yes it should work.

That's what inspired me.  Also, I'd expected that we'd need some kind
of tweaking to make it actually compile and be neat.

Warner
Received on Tue Jun 10 2003 - 05:30:18 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:11 UTC