Re: Linksys EG1032 rev. 3 patch

From: M. Warner Losh <imp_at_bsdimp.com>
Date: Mon, 03 Oct 2005 13:26:34 -0600 (MDT)
Is rev the right thing to filter based on, or is the subvendor id and
subvendor device?  if a vendor sets the vendor id/vendor device fields
wrong, who is to say that we can know based on the pci revision field
if this device is right or not.  The revision field tends to change a
lot and having a sample size of 1 or 2 (or even 5) likely is
insufficient to know if it can be relied upon to not cause problems
with the next container load of the cards arrives...

I know that the re vs rl decision is made based on the revision in the
device's I/O space right now:

	while (t->rl_name != NULL) {
		if ((pci_get_vendor(dev) == t->rl_vid) &&
		    (pci_get_device(dev) == t->rl_did)) {
... map I/O
			hwrev = CSR_READ_4(sc, RL_TXCFG) & RL_TXCFG_HWREV;
... unmap I/O
			if (t->rl_basetype == hwrev) {
				device_set_desc(dev, t->rl_name);
				return (BUS_PROBE_DEFAULT);
			}
		}
		t++;
	}
	return (ENXIO);

Checking for 0x10 vs 0x15 for a card that has gone from rev 2 to rev 3
just strikes me as unwise.

Warner
Received on Mon Oct 03 2005 - 17:28:11 UTC

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