Move the detection of Linksys PCMCIA cards from attach to probe.

This should solve the problems people were seeing with this driver.

Reported by:	phk & others.
This commit is contained in:
Paul Saab 2000-09-12 11:03:12 +00:00
parent 9ff5ce6baf
commit 6004db96ae
3 changed files with 7 additions and 4 deletions

View File

@ -912,9 +912,10 @@ ed_probe_3Com(dev, port_rid, flags)
* conditionally.
*/
int
ed_get_Linksys(sc)
struct ed_softc *sc;
ed_get_Linksys(dev)
device_t dev;
{
struct ed_softc *sc = device_get_softc(dev);
u_char sum;
int i;

View File

@ -63,6 +63,7 @@ static int ed_pccard_detach(device_t);
static void ax88190_geteprom(struct ed_softc *);
static int ed_pccard_memwrite(device_t dev, off_t offset, u_char byte);
static int ed_pccard_memread(device_t dev, off_t offset, u_char *buf, int size);
static int linksys;
static device_method_t ed_pccard_methods[] = {
/* Device interface */
@ -170,6 +171,7 @@ ed_pccard_probe(device_t dev)
ed_release_resources(dev);
end:
linksys = ed_get_Linksys(dev);
if (error == 0)
error = ed_alloc_irq(dev, 0, 0);
@ -201,7 +203,7 @@ ed_pccard_attach(device_t dev)
return (error);
}
if (ed_get_Linksys(sc) == 0) {
if (linksys == 0) {
pccard_get_ether(dev, ether_addr);
for (i = 0, sum = 0; i < ETHER_ADDR_LEN; i++)
sum |= ether_addr[i];

View File

@ -197,7 +197,7 @@ int ed_probe_Novell __P((device_t, int, int));
int ed_probe_Novell_generic __P((device_t, int));
int ed_probe_HP_pclanp __P((device_t, int, int));
int ed_get_Linksys __P((struct ed_softc *));
int ed_get_Linksys __P((device_t));
int ed_attach __P((struct ed_softc *, int, int));
void ed_stop __P((struct ed_softc *));