Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Jun 1996 01:01:54 +0930 (CST)
From:      Michael Smith <msmith@atrad.adelaide.edu.au>
To:        mobile@freebsd.org
Subject:   Solved suspend hang with if_ed driver
Message-ID:  <199606041531.BAA07857@genesis.atrad.adelaide.edu.au>

next in thread | raw e-mail | index | archive | help
I hope the Right People are subscribed to this list 8)

I've found the 'suspend wedge' I was getting with the Accton 2216 (ed)
PC-Card and my Sharp notebook; when the slot is shut down, the card generates
a spurious interrupt which is never cleared (obviously because the card
is gone 8)

Part of the fix is simple; change edsuspend to read :

static void
edsuspend(struct pccard_dev *dp)
{
        struct ed_softc *sc = &ed_softc[dp->isahd.id_unit];

        printf("ed%d: suspending\n", dp->isahd.id_unit);
	sc->gone = 1;			/* avoid interrupt spin on suspend */
}

Not so simple is how to clear it again, or whether the card should be
fully unloaded and then reloaded again on resume.

Any ideas?  I don't have a network here to test on at the moment, so I
can't actually tell if the card has come back to life despite sc->gone
being set, or whether it's deaf to interrupts (I suspect this...)

If the card's been powered down is it likely to need reconfiguring, or do
PC-Cards tend to retain their configuration across suspends?

(Yes, I'll be investigating this when I get the time, but I'm sure
someone else knows 8)

-- 
]] Mike Smith, Software Engineer        msmith@atrad.adelaide.edu.au    [[
]] Genesis Software                     genesis@atrad.adelaide.edu.au   [[
]] High-speed data acquisition and      (GSM mobile) 0411-222-496       [[
]] realtime instrument control          (ph/fax)  +61-8-267-3039        [[
]] Collector of old Unix hardware.      "Where are your PEZ?" The Tick  [[



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199606041531.BAA07857>