Skip site navigation (1)Skip section navigation (2)
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>