Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 Jun 2004 21:43:36 -0700 (PDT)
From:      Bill Paul <wpaul@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/dev/if_ndis if_ndis.c
Message-ID:  <200406040443.i544haeR039396@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
wpaul       2004/06/03 21:43:36 PDT

  FreeBSD src repository

  Modified files:
    sys/dev/if_ndis      if_ndis.c 
  Log:
  Unbreak the Intel 2100 Centrino wireless driver (and probably others):
  
  - In subr_ndis.c, my_strcasecmp() actually behaved like my_strncasecmp():
    we really need it to behave like the former, not the latter. (It was
    falsely matching "RadioEnable", which defaults to 1 with "RadioEnableHW"
    which the driver creates itself and to 0, because we were using
    strlen("RadioEnable") as the length to test. This caused the radio to
    always be turned off. :( )
  
  - In if_ndis.c, only set IEEE80211_CHAN_A for channels if we actually
    set any IEEE80211_MODE_11A rates. (ieee80211_attach() will "helpfully"
    add IEEE80211_MODE_11A to ic_modecaps for you if you initialize any
    802.11a channels. This caused "ndis0: 11a rates:" to erroneously be
    displayed during driver load.)
  
  - Also in if_ndis.c, when using TESTSETRATE() to add in any missing 802.11b
    rates, remember to OR the rates with IEEE80211_RATE_BASIC, otherwise
    comparing against existing basic rates won't match. (1, 2, 5.5 and
    11Mbps are basic rates, according to the 802.11b spec.) This erroneously
    cause 11Mbps to be added to the 11b rate list twice.
  
  Revision  Changes    Path
  1.63      +12 -7     src/sys/dev/if_ndis/if_ndis.c



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