Re: wi0 problems under latest STABLE

2002-03-14 Thread Tod McQuillin

On Mon, 11 Mar 2002, Brooks Davis wrote:

> At this point there isn't.  I I'm going to have to rethink handling this
> problem.  It appears that WI_TIMEOUT is actually too long (it hangs the
> machine for WI_TIMEOUT*WI_DELAY if the command doesn't return).
> Additionaly, it appears that some cards are just broken and we need to
> find a way to deal with them.

I made some changes to if_wi.c which completely cleared up the "timeout in
wi_cmd" messages and 500ms freezes which came up every minute on my laptop
and desktop machines.

The laptop is now completely back to the same behaviour as in cvs rev
1.18.2.14 and earlier of if_wi.c, though the desktop still logs these
messages at boot:

wi0:  at port 0x240-0x27f irq 15 slot 0 on pccard0
wi0: 802.11 address: 00:02:2d:2b:ab:06
wi0: using Lucent chip or unknown chip
wi0: timeout in wi_cmd 2; event status 8080
wi0: timeout in wi_cmd 0; event status 8080
wi0: wi_cmd: busy bit won't clear.
wi0: wi_cmd: busy bit won't clear.
wi0: wi_cmd: busy bit won't clear.
wi0: wi_cmd: busy bit won't clear.
wi0: init failed

Probably some changes are still needed at attach time.

Here is the patch:

Index: if_wi.c
===
RCS file: /usr/src/cvs-repo/src/sys/i386/isa/Attic/if_wi.c,v
retrieving revision 1.18.2.16
diff -c -r1.18.2.16 if_wi.c
*** if_wi.c 4 Mar 2002 20:03:57 -   1.18.2.16
--- if_wi.c 14 Mar 2002 12:55:54 -
***
*** 453,459 
--- 453,461 
struct wi_ltv_gen   gen;
struct ifnet*ifp;
int error;
+   int s;

+   s = splimp();
sc = device_get_softc(dev);
ifp = &sc->arpcom.ac_if;

***
*** 463,468 
--- 465,471 
if (error) {
device_printf(dev, "bus_setup_intr() failed! (%d)\n", error);
wi_free(dev);
+   splx(s);
return (error);
}

***
*** 481,486 
--- 484,490 
if ((error = wi_read_record(sc, (struct wi_ltv_gen *)&mac)) != 0) {
device_printf(dev, "mac read failed %d\n", error);
wi_free(dev);
+   splx(s);
return (error);
}
bcopy((char *)&mac.wi_mac_addr,
***
*** 584,589 
--- 588,594 
ether_ifattach(ifp, ETHER_BPF_SUPPORTED);
callout_handle_init(&sc->wi_stat_ch);

+   splx(s);
return(0);
  }

***
*** 799,804 
--- 804,810 
  {
struct wi_softc *sc;
struct ifnet*ifp;
+   int s;

sc = xsc;
ifp = &sc->arpcom.ac_if;
***
*** 809,815 
--- 815,823 
if (ifp->if_flags & IFF_OACTIVE)
return;

+   s = splimp();
wi_cmd(sc, WI_CMD_INQUIRE, WI_INFO_COUNTERS);
+   splx(s);

return;
  }

-- 
Tod McQuillin



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-stable" in the body of the message



Re: wi0 problems under latest STABLE

2002-03-11 Thread Dan Langille

On 7 Mar 2002 at 8:13, Michael Sierchio wrote:

> Dan Langille wrote:
> 
> > This is the  /etc/pccard.conf which I was using:
> 
> 
> > card "Lucent Technologies" "WaveLAN/IEEE"
> > config  0x1 "wi" ?
> > insert  /etc/pccard_ether $device start
> > remove  /etc/pccard_ether $device stop
> 
> 
>  > insert  wicontrol -i $device -p 3
>  > insert  wicontrol -i $device -k "4gRp1"
> 
> I don't have those lines in my pccard.conf.  I have the following
> in /etc/rc.conf
> 
> pccard_enable="YES"
> pccard_conf="/etc/pccard.conf"
> pccard_mem="DEFAULT"
> pccard_beep="0"
> pccardd_flags=" -z "

Then what do you have in /etc/pccard.conf?  Why are you overriding 
pccard_conf like that?

> and have the wicontrol commands in /etc/start_if.wi0

Could you paste that file please?

> What rev of the firmware is on the card?  You can download WSU_810.exe and
> exract and run the util on a windoze macheen.

I don't know.  How can I tell?  And I don't have a windows machine I can 
run that UTIL on (I have windows boxes, just not one that will take that 
card).

Thank you.
-- 
Dan Langille
The FreeBSD Diary - http://freebsddiary.org/ - practical examples


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-stable" in the body of the message



Re: wi0 problems under latest STABLE

2002-03-06 Thread Brooks Davis

On Thu, Mar 07, 2002 at 12:14:41AM -0500, Dan Langille wrote:
> I've just updated a my 4.5-STABLE laptop to the latest RELENG_4.  It 
> contains a Lucent Orinoco card which turns up as wi0.  It was working with 
> a STABLE dated Jan 28 2002.  With the build from this evening's cvsup, I'm 
> getting time outs on wi0.
> 
> This is the  /etc/pccard.conf which I was using:
> 
> [dan@laptop:~] $ less /etc/pccard.conf
> # Lucent WaveLAN/IEEE
> card "Lucent Technologies" "WaveLAN/IEEE"
> config  0x1 "wi" ?
> insert  /etc/pccard_ether $device start
> remove  /etc/pccard_ether $device stop
> 
> insert  wicontrol -i $device -p 3
> insert  wicontrol -i $device -k "4gRp1"
> 
> What did I miss?
> 
> Under the latest build, I get this:
> 
>laptop /kernel: wi0: timeout in wi_cmd 11; event status 8000
> 
> If it's any help:
> 
> wi0:  at port 0x240-0x27f irq 3 slot 0 on pccard0
> wi0: 802.11 address: 00:02:2d:0e:66:bd
> wi0: using Lucent chip or unknown chip
> 
> It doesn't seem to be affecting the traffic, it's just a repeating 
> message.  If I don't use the above pccard.conf, the card doesn't seem to 
> work very well at all.

It's fairly harmless (previously the command just failed without saying
anything), it might be worth trying to raise the value of WI_DELAY in
if_wireg.h.  I'd suggest trying 100 and if that fixes it, lower it to
see if you can find a better lower bound then 5.  If that doesn't work,
it might be worth trying to raise WI_TIMEOUT, but 500ms is a long time
for a network adaptor.

I'm not sure what you mean about not using the pccard.conf entry.
The top part is exactly what is in /etc/defaults/pccard.conf and it won't
work if you don't set your wep key and enable ad-hoc mode if that's how
your network is configured.

-- Brooks

-- 
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529  9BF0 5D8E 8BE9 F238 1AD4



msg42176/pgp0.pgp
Description: PGP signature