Date: Wed, 8 Jan 2003 16:15:32 -0500 From: Peter Radcliffe <pir@pir.net> To: freebsd-mobile@FreeBSD.ORG Subject: Re: Thinkpad X30, wireless card Message-ID: <20030108211532.GF18309@pir.net> In-Reply-To: <20030105.161802.122420996.imp@bsdimp.com> References: <20030103220430.GE6054@pir.net> <20030103.201759.108374676.imp@bsdimp.com> <20030105090809.GK17859@pir.net> <20030105.161802.122420996.imp@bsdimp.com>
next in thread | previous in thread | raw e-mail | index | archive | help
"M. Warner Losh" <imp@bsdimp.com> probably said:
> At a minimum, you'll need to save the BARs in suspend (maybe setting
> the power state to D3 afterwards) and then restore them afterwards
> (after setting the power state to D0)....
I was talking to a couple of people about the general FreeBSD
compatability of the X30 and mentioned this problem. One of the people
was winter and he came up with a couple of test patches, this one
seems to have fixed the problem for me.
Thanks winter,
P.
--------------------------------------------------------------------
*** sys/dev/wi/if_wi_pci.c.orig Wed Jan 8 15:45:12 2003
--- sys/dev/wi/if_wi_pci.c Wed Jan 8 16:09:04 2003
***************
*** 69,74 ****
--- 69,76 ----
static int wi_pci_probe(device_t);
static int wi_pci_attach(device_t);
+ static int wi_pci_suspend(device_t);
+ static int wi_pci_resume(device_t);
static device_method_t wi_pci_methods[] = {
/* Device interface */
***************
*** 76,81 ****
--- 78,85 ----
DEVMETHOD(device_attach, wi_pci_attach),
DEVMETHOD(device_detach, wi_generic_detach),
DEVMETHOD(device_shutdown, wi_shutdown),
+ DEVMETHOD(device_suspend, wi_pci_suspend),
+ DEVMETHOD(device_resume, wi_pci_resume),
{ 0, 0 }
};
***************
*** 231,235 ****
--- 235,261 ----
if (error != 0)
return (error);
+ return (0);
+ }
+
+ static int
+ wi_pci_suspend (device_t dev)
+ {
+ return (0);
+ }
+
+ static int
+ wi_pci_resume (device_t dev)
+ {
+ struct wi_softc *sc;
+ struct ifnet *ifp;
+ sc = device_get_softc(dev);
+
+ if (sc->wi_bus_type != WI_BUS_PCI_NATIVE)
+ return (0);
+
+ ifp = &sc->arpcom.ac_if;
+ ifp->if_init(ifp->if_softc);
+
return (0);
}
--------------------------------------------------------------------
--
pir pir-sig@pir.net pir-sig@net.tufts.edu
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-mobile" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030108211532.GF18309>
