Try to make the BROKEN_VLSI chipset detection better, and not break

non-broken chipssets whose ID is 0x84, such as the one found in the NEC
6030H.

> The code relies on the assumption that on a genuine_broken vlsi, you
> don't get 0x84 when probing slot 1 in the normal location.  On the versa I
> do get 0x84 when probing slot 1 in the normal location.  What you get on
> genuine_broken at the normal slot 1 location is unknown to me;

Submitted by:	Chris Timmons <skynyrd@opus.cts.cwu.edu>
This commit is contained in:
nate 1997-02-18 19:20:52 +00:00
parent 7fe0f1f48b
commit 4bdceb645f

View File

@ -568,8 +568,14 @@ pcic_probe(void)
sp->data = PCIC_DATA_1;
sp->offset = (slot - 4) * PCIC_SLOT_SIZE;
}
/* XXX - Screwed up slot 1 on the VLSI chips */
if (slot == 1 && is_vlsi) {
/*
* XXX - Screwed up slot 1 on the VLSI chips. According to
* the Linux PCMCIA code from David Hinds, working chipsets
* return 0x84 from their (correct) ID ports, while the broken
* ones would need to be probed at the new offset we set after
* we assume it's broken.
*/
if ((slot == 1) && is_vlsi && (getb(sp, PCIC_ID_REV != 0x84)) {
sp->index += 4;
sp->data += 4;
sp->offset = PCIC_SLOT_SIZE << 1;