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:
parent
9ff5ce6baf
commit
6004db96ae
@ -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;
|
||||
|
||||
|
@ -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];
|
||||
|
@ -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 *));
|
||||
|
Loading…
x
Reference in New Issue
Block a user