svn commit: r243622 - head/sys/dev/iwn
Author: bschmidt Date: Tue Nov 27 19:09:36 2012 New Revision: 243622 URL: http://svnweb.freebsd.org/changeset/base/243622 Log: fix a panic resulting from a stray '' MFC after:1 week Modified: head/sys/dev/iwn/if_iwn.c Modified: head/sys/dev/iwn/if_iwn.c == --- head/sys/dev/iwn/if_iwn.c Tue Nov 27 19:07:28 2012(r243621) +++ head/sys/dev/iwn/if_iwn.c Tue Nov 27 19:09:36 2012(r243622) @@ -1253,7 +1253,7 @@ iwn_dma_contig_free(struct iwn_dma_info bus_dmamap_sync(dma-tag, dma-map, BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); bus_dmamap_unload(dma-tag, dma-map); - bus_dmamem_free(dma-tag, dma-vaddr, dma-map); + bus_dmamem_free(dma-tag, dma-vaddr, dma-map); dma-vaddr = NULL; } bus_dmamap_destroy(dma-tag, dma-map); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r239641 - releng/9.1/sys/net80211
Author: bschmidt Date: Fri Aug 24 06:56:44 2012 New Revision: 239641 URL: http://svn.freebsd.org/changeset/base/239641 Log: MFC r231187: Update the 802.11s IE numbers to represent the latest 802.11 amendment standard. This update breaks compatibility with older mesh setups but is necessary as the previous IDs are used by another amendment leading to unexpected results when trying to associate with an accesspoint using the affected IDs. Approved by: re (kib) Modified: releng/9.1/sys/net80211/ieee80211.h Directory Properties: releng/9.1/sys/ (props changed) Modified: releng/9.1/sys/net80211/ieee80211.h == --- releng/9.1/sys/net80211/ieee80211.h Fri Aug 24 06:55:16 2012 (r239640) +++ releng/9.1/sys/net80211/ieee80211.h Fri Aug 24 06:56:44 2012 (r239641) @@ -709,27 +709,32 @@ enum { IEEE80211_ELEMID_VENDOR = 221, /* vendor private */ /* -* 802.11s IEs based on D3.03 spec and were not assigned by -* ANA. Beware changing them because some of them are being -* kept compatible with Linux. +* 802.11s IEs +* NB: On vanilla Linux still IEEE80211_ELEMID_MESHPEER = 55, +* but they defined a new with id 117 called PEER_MGMT. +* NB: complies with open80211 */ - IEEE80211_ELEMID_MESHCONF = 51, - IEEE80211_ELEMID_MESHID = 52, - IEEE80211_ELEMID_MESHLINK = 35, - IEEE80211_ELEMID_MESHCNGST = 36, - IEEE80211_ELEMID_MESHPEER = 55, - IEEE80211_ELEMID_MESHCSA= 38, - IEEE80211_ELEMID_MESHTIM= 39, - IEEE80211_ELEMID_MESHAWAKEW = 40, - IEEE80211_ELEMID_MESHBEACONT= 41, - IEEE80211_ELEMID_MESHPANN = 48, - IEEE80211_ELEMID_MESHRANN = 49, - IEEE80211_ELEMID_MESHPREQ = 68, - IEEE80211_ELEMID_MESHPREP = 69, - IEEE80211_ELEMID_MESHPERR = 70, - IEEE80211_ELEMID_MESHPXU= 53, - IEEE80211_ELEMID_MESHPXUC = 54, - IEEE80211_ELEMID_MESHAH = 60, /* Abbreviated Handshake */ + IEEE80211_ELEMID_MESHCONF = 113, + IEEE80211_ELEMID_MESHID = 114, + IEEE80211_ELEMID_MESHLINK = 115, + IEEE80211_ELEMID_MESHCNGST = 116, + IEEE80211_ELEMID_MESHPEER = 117, + IEEE80211_ELEMID_MESHCSA= 118, + IEEE80211_ELEMID_MESHTIM= 39, /* XXX: remove */ + IEEE80211_ELEMID_MESHAWAKEW = 119, + IEEE80211_ELEMID_MESHBEACONT= 120, + /* 121-124 MMCAOP not implemented yet */ + IEEE80211_ELEMID_MESHPANN = 125, /* XXX: is GANN now, not used */ + IEEE80211_ELEMID_MESHRANN = 126, + /* 127 Extended Capabilities */ + /* 128-129 reserved */ + IEEE80211_ELEMID_MESHPREQ = 130, + IEEE80211_ELEMID_MESHPREP = 131, + IEEE80211_ELEMID_MESHPERR = 132, + /* 133-136 reserved */ + IEEE80211_ELEMID_MESHPXU= 137, + IEEE80211_ELEMID_MESHPXUC = 138, + IEEE80211_ELEMID_MESHAH = 60, /* XXX: remove */ }; struct ieee80211_tim_ie { ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r239649 - head/release/doc/en_US.ISO8859-1/relnotes
Author: bschmidt Date: Fri Aug 24 13:55:22 2012 New Revision: 239649 URL: http://svn.freebsd.org/changeset/base/239649 Log: Document update of 802.11s IE identifiers. Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.sgml Modified: head/release/doc/en_US.ISO8859-1/relnotes/article.sgml == --- head/release/doc/en_US.ISO8859-1/relnotes/article.sgml Fri Aug 24 13:11:30 2012(r239648) +++ head/release/doc/en_US.ISO8859-1/relnotes/article.sgml Fri Aug 24 13:55:22 2012(r239649) @@ -282,6 +282,13 @@ para role=mergedA bug in TCP options padding, where the wrong padding bytes were used, has been fixed./para + para role=mergedThe IEEE 802.11s element identifiers have +been updated to reflect the final version of the amendment. This +update breaks compatibility with older mesh setups but is necessary +as the previous IDs are used by another amendment leading to +unexpected results when trying to associate with an accesspoint +using the affected IDs./para + /sect3 sect3 id=disks ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r239650 - stable/9/release/doc/en_US.ISO8859-1/relnotes
Author: bschmidt Date: Fri Aug 24 14:11:54 2012 New Revision: 239650 URL: http://svn.freebsd.org/changeset/base/239650 Log: MFC r239649: Document update of 802.11s IE identifiers. Modified: stable/9/release/doc/en_US.ISO8859-1/relnotes/article.sgml Directory Properties: stable/9/release/ (props changed) Modified: stable/9/release/doc/en_US.ISO8859-1/relnotes/article.sgml == --- stable/9/release/doc/en_US.ISO8859-1/relnotes/article.sgml Fri Aug 24 13:55:22 2012(r239649) +++ stable/9/release/doc/en_US.ISO8859-1/relnotes/article.sgml Fri Aug 24 14:11:54 2012(r239650) @@ -871,6 +871,14 @@ wpi0: wpi_rx_intr: bus_dmamap_load faile literalexport9/literal hook has been added for NetFlow v9 data. Note that data export can be done simultaneously in both version 5 and version 9./para + + para revision=239615The IEEE 802.11s element identifiers have + been updated to reflect the final version of the amendment. This + update breaks compatibility with older mesh setups but is necessary + as the previous IDs are used by another amendment leading to + unexpected results when trying to associate with an accesspoint + using the affected IDs./para + /sect3 sect3 id=disks ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r239651 - stable/8/release/doc/en_US.ISO8859-1/relnotes
Author: bschmidt Date: Fri Aug 24 14:22:47 2012 New Revision: 239651 URL: http://svn.freebsd.org/changeset/base/239651 Log: MFC r239649: Document update of 802.11s IE identifiers. Modified: stable/8/release/doc/en_US.ISO8859-1/relnotes/article.sgml Directory Properties: stable/8/release/ (props changed) Modified: stable/8/release/doc/en_US.ISO8859-1/relnotes/article.sgml == --- stable/8/release/doc/en_US.ISO8859-1/relnotes/article.sgml Fri Aug 24 14:11:54 2012(r239650) +++ stable/8/release/doc/en_US.ISO8859-1/relnotes/article.sgml Fri Aug 24 14:22:47 2012(r239651) @@ -718,6 +718,13 @@ para revision=212319os; virtual network stack (vnet) now supports IPv4 multicast routing./para + + para revision=239616The IEEE 802.11s element identifiers have + been updated to reflect the final version of the amendment. This + update breaks compatibility with older mesh setups but is necessary + as the previous IDs are used by another amendment leading to + unexpected results when trying to associate with an accesspoint + using the affected IDs./para /sect3 sect3 id=disks ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r239653 - releng/9.1/release/doc/en_US.ISO8859-1/relnotes
Author: bschmidt Date: Fri Aug 24 14:50:44 2012 New Revision: 239653 URL: http://svn.freebsd.org/changeset/base/239653 Log: MFC r239649: Document update of 802.11s IE identifiers. Approved by: re (kib) Modified: releng/9.1/release/doc/en_US.ISO8859-1/relnotes/article.sgml Directory Properties: releng/9.1/release/ (props changed) Modified: releng/9.1/release/doc/en_US.ISO8859-1/relnotes/article.sgml == --- releng/9.1/release/doc/en_US.ISO8859-1/relnotes/article.sgmlFri Aug 24 14:25:57 2012(r239652) +++ releng/9.1/release/doc/en_US.ISO8859-1/relnotes/article.sgmlFri Aug 24 14:50:44 2012(r239653) @@ -871,6 +871,14 @@ wpi0: wpi_rx_intr: bus_dmamap_load faile literalexport9/literal hook has been added for NetFlow v9 data. Note that data export can be done simultaneously in both version 5 and version 9./para + + para revision=239615The IEEE 802.11s element identifiers have + been updated to reflect the final version of the amendment. This + update breaks compatibility with older mesh setups but is necessary + as the previous IDs are used by another amendment leading to + unexpected results when trying to associate with an accesspoint + using the affected IDs./para + /sect3 sect3 id=disks ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r239615 - stable/9/sys/net80211
Author: bschmidt Date: Thu Aug 23 17:09:52 2012 New Revision: 239615 URL: http://svn.freebsd.org/changeset/base/239615 Log: MFC r231187: Update the 802.11s IE numbers to represent the latest 802.11 amendment standard. This update breaks compatibility with older mesh setups but is necessary as the previous IDs are used by another amendment leading to unexpected results when trying to associate with an accesspoint using the affected IDs. Discussed with: re Tested by:honestqiao at gmail dot com Modified: stable/9/sys/net80211/ieee80211.h Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/net80211/ieee80211.h == --- stable/9/sys/net80211/ieee80211.h Thu Aug 23 17:08:07 2012 (r239614) +++ stable/9/sys/net80211/ieee80211.h Thu Aug 23 17:09:52 2012 (r239615) @@ -709,27 +709,32 @@ enum { IEEE80211_ELEMID_VENDOR = 221, /* vendor private */ /* -* 802.11s IEs based on D3.03 spec and were not assigned by -* ANA. Beware changing them because some of them are being -* kept compatible with Linux. +* 802.11s IEs +* NB: On vanilla Linux still IEEE80211_ELEMID_MESHPEER = 55, +* but they defined a new with id 117 called PEER_MGMT. +* NB: complies with open80211 */ - IEEE80211_ELEMID_MESHCONF = 51, - IEEE80211_ELEMID_MESHID = 52, - IEEE80211_ELEMID_MESHLINK = 35, - IEEE80211_ELEMID_MESHCNGST = 36, - IEEE80211_ELEMID_MESHPEER = 55, - IEEE80211_ELEMID_MESHCSA= 38, - IEEE80211_ELEMID_MESHTIM= 39, - IEEE80211_ELEMID_MESHAWAKEW = 40, - IEEE80211_ELEMID_MESHBEACONT= 41, - IEEE80211_ELEMID_MESHPANN = 48, - IEEE80211_ELEMID_MESHRANN = 49, - IEEE80211_ELEMID_MESHPREQ = 68, - IEEE80211_ELEMID_MESHPREP = 69, - IEEE80211_ELEMID_MESHPERR = 70, - IEEE80211_ELEMID_MESHPXU= 53, - IEEE80211_ELEMID_MESHPXUC = 54, - IEEE80211_ELEMID_MESHAH = 60, /* Abbreviated Handshake */ + IEEE80211_ELEMID_MESHCONF = 113, + IEEE80211_ELEMID_MESHID = 114, + IEEE80211_ELEMID_MESHLINK = 115, + IEEE80211_ELEMID_MESHCNGST = 116, + IEEE80211_ELEMID_MESHPEER = 117, + IEEE80211_ELEMID_MESHCSA= 118, + IEEE80211_ELEMID_MESHTIM= 39, /* XXX: remove */ + IEEE80211_ELEMID_MESHAWAKEW = 119, + IEEE80211_ELEMID_MESHBEACONT= 120, + /* 121-124 MMCAOP not implemented yet */ + IEEE80211_ELEMID_MESHPANN = 125, /* XXX: is GANN now, not used */ + IEEE80211_ELEMID_MESHRANN = 126, + /* 127 Extended Capabilities */ + /* 128-129 reserved */ + IEEE80211_ELEMID_MESHPREQ = 130, + IEEE80211_ELEMID_MESHPREP = 131, + IEEE80211_ELEMID_MESHPERR = 132, + /* 133-136 reserved */ + IEEE80211_ELEMID_MESHPXU= 137, + IEEE80211_ELEMID_MESHPXUC = 138, + IEEE80211_ELEMID_MESHAH = 60, /* XXX: remove */ }; struct ieee80211_tim_ie { ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r239616 - stable/8/sys/net80211
Author: bschmidt Date: Thu Aug 23 17:09:58 2012 New Revision: 239616 URL: http://svn.freebsd.org/changeset/base/239616 Log: MFC r231187: Update the 802.11s IE numbers to represent the latest 802.11 amendment standard. This update breaks compatibility with older mesh setups but is necessary as the previous IDs are used by another amendment leading to unexpected results when trying to associate with an accesspoint using the affected IDs. Discussed with: re Tested by:honestqiao at gmail dot com Modified: stable/8/sys/net80211/ieee80211.h Directory Properties: stable/8/sys/ (props changed) Modified: stable/8/sys/net80211/ieee80211.h == --- stable/8/sys/net80211/ieee80211.h Thu Aug 23 17:09:52 2012 (r239615) +++ stable/8/sys/net80211/ieee80211.h Thu Aug 23 17:09:58 2012 (r239616) @@ -708,27 +708,32 @@ enum { IEEE80211_ELEMID_VENDOR = 221, /* vendor private */ /* -* 802.11s IEs based on D3.03 spec and were not assigned by -* ANA. Beware changing them because some of them are being -* kept compatible with Linux. +* 802.11s IEs +* NB: On vanilla Linux still IEEE80211_ELEMID_MESHPEER = 55, +* but they defined a new with id 117 called PEER_MGMT. +* NB: complies with open80211 */ - IEEE80211_ELEMID_MESHCONF = 51, - IEEE80211_ELEMID_MESHID = 52, - IEEE80211_ELEMID_MESHLINK = 35, - IEEE80211_ELEMID_MESHCNGST = 36, - IEEE80211_ELEMID_MESHPEER = 55, - IEEE80211_ELEMID_MESHCSA= 38, - IEEE80211_ELEMID_MESHTIM= 39, - IEEE80211_ELEMID_MESHAWAKEW = 40, - IEEE80211_ELEMID_MESHBEACONT= 41, - IEEE80211_ELEMID_MESHPANN = 48, - IEEE80211_ELEMID_MESHRANN = 49, - IEEE80211_ELEMID_MESHPREQ = 68, - IEEE80211_ELEMID_MESHPREP = 69, - IEEE80211_ELEMID_MESHPERR = 70, - IEEE80211_ELEMID_MESHPXU= 53, - IEEE80211_ELEMID_MESHPXUC = 54, - IEEE80211_ELEMID_MESHAH = 60, /* Abbreviated Handshake */ + IEEE80211_ELEMID_MESHCONF = 113, + IEEE80211_ELEMID_MESHID = 114, + IEEE80211_ELEMID_MESHLINK = 115, + IEEE80211_ELEMID_MESHCNGST = 116, + IEEE80211_ELEMID_MESHPEER = 117, + IEEE80211_ELEMID_MESHCSA= 118, + IEEE80211_ELEMID_MESHTIM= 39, /* XXX: remove */ + IEEE80211_ELEMID_MESHAWAKEW = 119, + IEEE80211_ELEMID_MESHBEACONT= 120, + /* 121-124 MMCAOP not implemented yet */ + IEEE80211_ELEMID_MESHPANN = 125, /* XXX: is GANN now, not used */ + IEEE80211_ELEMID_MESHRANN = 126, + /* 127 Extended Capabilities */ + /* 128-129 reserved */ + IEEE80211_ELEMID_MESHPREQ = 130, + IEEE80211_ELEMID_MESHPREP = 131, + IEEE80211_ELEMID_MESHPERR = 132, + /* 133-136 reserved */ + IEEE80211_ELEMID_MESHPXU= 137, + IEEE80211_ELEMID_MESHPXUC = 138, + IEEE80211_ELEMID_MESHAH = 60, /* XXX: remove */ }; struct ieee80211_tim_ie { ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r237917 - stable/9/sys/dev/iwn
Author: bschmidt Date: Sun Jul 1 09:30:37 2012 New Revision: 237917 URL: http://svn.freebsd.org/changeset/base/237917 Log: MFC BA/DELBA fixes: - r234321: Use the M_AMPDU_MPDU flag to determine when to manually set the seqno and use a BA queue. - r235686: Discard frames after a DELBA which where queued during an active BA session. - r235687: remove unused vap variable - r237647: Fix a TX aggregation issue, if after the last compressed BA notification the TX queue is empty, there won't be a TX done notification, effectly resulting in an mbuf leak. The correct way to handle this is to free up mbufs on both BA and TX done notifications up to the last sent seqno. - r237649 (1): We need to defer passing the DELBA request to the firmware until the aggr queue is empty or the firmware will go nuts. PR: kern/167806 (1) Modified: stable/9/sys/dev/iwn/if_iwn.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/iwn/if_iwn.c == --- stable/9/sys/dev/iwn/if_iwn.c Sun Jul 1 09:17:55 2012 (r237916) +++ stable/9/sys/dev/iwn/if_iwn.c Sun Jul 1 09:30:37 2012 (r237917) @@ -2432,23 +2432,66 @@ static void iwn_rx_compressed_ba(struct iwn_softc *sc, struct iwn_rx_desc *desc, struct iwn_rx_data *data) { + struct iwn_ops *ops = sc-ops; struct ifnet *ifp = sc-sc_ifp; struct iwn_node *wn; struct ieee80211_node *ni; struct iwn_compressed_ba *ba = (struct iwn_compressed_ba *)(desc + 1); struct iwn_tx_ring *txq; + struct iwn_tx_data *txdata; struct ieee80211_tx_ampdu *tap; + struct mbuf *m; uint64_t bitmap; + uint16_t ssn; uint8_t tid; - int ackfailcnt = 0, i, shift; + int ackfailcnt = 0, i, lastidx, qid, *res, shift; bus_dmamap_sync(sc-rxq.data_dmat, data-map, BUS_DMASYNC_POSTREAD); - txq = sc-txq[le16toh(ba-qid)]; - tap = sc-qid2tap[le16toh(ba-qid)]; + qid = le16toh(ba-qid); + txq = sc-txq[ba-qid]; + tap = sc-qid2tap[ba-qid]; tid = WME_AC_TO_TID(tap-txa_ac); - ni = tap-txa_ni; - wn = (void *)ni; + wn = (void *)tap-txa_ni; + + res = NULL; + ssn = 0; + if (!IEEE80211_AMPDU_RUNNING(tap)) { + res = tap-txa_private; + ssn = tap-txa_start 0xfff; + } + + for (lastidx = le16toh(ba-ssn) 0xff; txq-read != lastidx;) { + txdata = txq-data[txq-read]; + + /* Unmap and free mbuf. */ + bus_dmamap_sync(txq-data_dmat, txdata-map, + BUS_DMASYNC_POSTWRITE); + bus_dmamap_unload(txq-data_dmat, txdata-map); + m = txdata-m, txdata-m = NULL; + ni = txdata-ni, txdata-ni = NULL; + + KASSERT(ni != NULL, (no node)); + KASSERT(m != NULL, (no mbuf)); + + if (m-m_flags M_TXCB) + ieee80211_process_callback(ni, m, 1); + + m_freem(m); + ieee80211_free_node(ni); + + txq-queued--; + txq-read = (txq-read + 1) % IWN_TX_RING_COUNT; + } + + if (txq-queued == 0 res != NULL) { + iwn_nic_lock(sc); + ops-ampdu_tx_stop(sc, qid, tid, ssn); + iwn_nic_unlock(sc); + sc-qid2tap[qid] = NULL; + free(res, M_DEVBUF); + return; + } if (wn-agg[tid].bitmap == 0) return; @@ -2460,6 +2503,7 @@ iwn_rx_compressed_ba(struct iwn_softc *s if (wn-agg[tid].nframes (64 - shift)) return; + ni = tap-txa_ni; bitmap = (le64toh(ba-bitmap) shift) wn-agg[tid].bitmap; for (i = 0; bitmap; i++) { if ((bitmap 1) == 0) { @@ -2759,19 +2803,20 @@ static void iwn_ampdu_tx_done(struct iwn_softc *sc, int qid, int idx, int nframes, void *stat) { + struct iwn_ops *ops = sc-ops; struct ifnet *ifp = sc-sc_ifp; struct iwn_tx_ring *ring = sc-txq[qid]; struct iwn_tx_data *data; struct mbuf *m; struct iwn_node *wn; struct ieee80211_node *ni; - struct ieee80211vap *vap; struct ieee80211_tx_ampdu *tap; uint64_t bitmap; uint32_t *status = stat; uint16_t *aggstatus = stat; + uint16_t ssn; uint8_t tid; - int bit, i, lastidx, seqno, shift, start; + int bit, i, lastidx, *res, seqno, shift, start; #ifdef NOT_YET if (nframes == 1) { @@ -2804,27 +2849,32 @@ iwn_ampdu_tx_done(struct iwn_softc *sc, bitmap |= 1ULL bit; } tap = sc-qid2tap[qid]; - if (tap != NULL) { - tid = WME_AC_TO_TID(tap-txa_ac); - wn = (void *)tap-txa_ni; -
svn commit: r237647 - head/sys/dev/iwn
Author: bschmidt Date: Wed Jun 27 15:55:34 2012 New Revision: 237647 URL: http://svn.freebsd.org/changeset/base/237647 Log: Fix a TX aggregation issue, if after the last compressed BA notification the TX queue is empty, there won't be a TX done notification, effectly resulting in an mbuf leak. The correct way to handle this is to free up mbufs on both BA and TX done notifications up to the last sent seqno. Tested by:osa@ MFC after:3 days Modified: head/sys/dev/iwn/if_iwn.c Modified: head/sys/dev/iwn/if_iwn.c == --- head/sys/dev/iwn/if_iwn.c Wed Jun 27 12:30:56 2012(r237646) +++ head/sys/dev/iwn/if_iwn.c Wed Jun 27 15:55:34 2012(r237647) @@ -2437,18 +2437,43 @@ iwn_rx_compressed_ba(struct iwn_softc *s struct ieee80211_node *ni; struct iwn_compressed_ba *ba = (struct iwn_compressed_ba *)(desc + 1); struct iwn_tx_ring *txq; + struct iwn_tx_data *txdata; struct ieee80211_tx_ampdu *tap; + struct mbuf *m; uint64_t bitmap; uint8_t tid; - int ackfailcnt = 0, i, shift; + int ackfailcnt = 0, i, lastidx, qid, shift; bus_dmamap_sync(sc-rxq.data_dmat, data-map, BUS_DMASYNC_POSTREAD); - txq = sc-txq[le16toh(ba-qid)]; - tap = sc-qid2tap[le16toh(ba-qid)]; + qid = le16toh(ba-qid); + txq = sc-txq[ba-qid]; + tap = sc-qid2tap[ba-qid]; tid = tap-txa_tid; - ni = tap-txa_ni; - wn = (void *)ni; + wn = (void *)tap-txa_ni; + + for (lastidx = le16toh(ba-ssn) 0xff; txq-read != lastidx;) { + txdata = txq-data[txq-read]; + + /* Unmap and free mbuf. */ + bus_dmamap_sync(txq-data_dmat, txdata-map, + BUS_DMASYNC_POSTWRITE); + bus_dmamap_unload(txq-data_dmat, txdata-map); + m = txdata-m, txdata-m = NULL; + ni = txdata-ni, txdata-ni = NULL; + + KASSERT(ni != NULL, (no node)); + KASSERT(m != NULL, (no mbuf)); + + if (m-m_flags M_TXCB) + ieee80211_process_callback(ni, m, 1); + + m_freem(m); + ieee80211_free_node(ni); + + txq-queued--; + txq-read = (txq-read + 1) % IWN_TX_RING_COUNT; + } if (wn-agg[tid].bitmap == 0) return; @@ -2460,6 +2485,7 @@ iwn_rx_compressed_ba(struct iwn_softc *s if (wn-agg[tid].nframes (64 - shift)) return; + ni = tap-txa_ni; bitmap = (le64toh(ba-bitmap) shift) wn-agg[tid].bitmap; for (i = 0; bitmap; i++) { if ((bitmap 1) == 0) { @@ -2815,8 +2841,6 @@ iwn_ampdu_tx_done(struct iwn_softc *sc, for (lastidx = (seqno 0xff); ring-read != lastidx;) { data = ring-data[ring-read]; - KASSERT(data-ni != NULL, (no node)); - /* Unmap and free mbuf. */ bus_dmamap_sync(ring-data_dmat, data-map, BUS_DMASYNC_POSTWRITE); @@ -2824,6 +2848,9 @@ iwn_ampdu_tx_done(struct iwn_softc *sc, m = data-m, data-m = NULL; ni = data-ni, data-ni = NULL; + KASSERT(ni != NULL, (no node)); + KASSERT(m != NULL, (no mbuf)); + if (m-m_flags M_TXCB) ieee80211_process_callback(ni, m, 1); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r237649 - head/sys/dev/iwn
Author: bschmidt Date: Wed Jun 27 16:07:01 2012 New Revision: 237649 URL: http://svn.freebsd.org/changeset/base/237649 Log: We need to defer passing the DELBA request to the firmware until the aggr queue is empty or the firmware will go nuts. PR: kern/167806 Tested by:osa@, Brandon Gooch (earlier version), Bojan Petrovic (earlier version) MFC after:3 days Modified: head/sys/dev/iwn/if_iwn.c Modified: head/sys/dev/iwn/if_iwn.c == --- head/sys/dev/iwn/if_iwn.c Wed Jun 27 16:05:09 2012(r237648) +++ head/sys/dev/iwn/if_iwn.c Wed Jun 27 16:07:01 2012(r237649) @@ -2432,6 +2432,7 @@ static void iwn_rx_compressed_ba(struct iwn_softc *sc, struct iwn_rx_desc *desc, struct iwn_rx_data *data) { + struct iwn_ops *ops = sc-ops; struct ifnet *ifp = sc-sc_ifp; struct iwn_node *wn; struct ieee80211_node *ni; @@ -2441,8 +2442,9 @@ iwn_rx_compressed_ba(struct iwn_softc *s struct ieee80211_tx_ampdu *tap; struct mbuf *m; uint64_t bitmap; + uint16_t ssn; uint8_t tid; - int ackfailcnt = 0, i, lastidx, qid, shift; + int ackfailcnt = 0, i, lastidx, qid, *res, shift; bus_dmamap_sync(sc-rxq.data_dmat, data-map, BUS_DMASYNC_POSTREAD); @@ -2452,6 +2454,13 @@ iwn_rx_compressed_ba(struct iwn_softc *s tid = tap-txa_tid; wn = (void *)tap-txa_ni; + res = NULL; + ssn = 0; + if (!IEEE80211_AMPDU_RUNNING(tap)) { + res = tap-txa_private; + ssn = tap-txa_start 0xfff; + } + for (lastidx = le16toh(ba-ssn) 0xff; txq-read != lastidx;) { txdata = txq-data[txq-read]; @@ -2475,6 +2484,15 @@ iwn_rx_compressed_ba(struct iwn_softc *s txq-read = (txq-read + 1) % IWN_TX_RING_COUNT; } + if (txq-queued == 0 res != NULL) { + iwn_nic_lock(sc); + ops-ampdu_tx_stop(sc, qid, tid, ssn); + iwn_nic_unlock(sc); + sc-qid2tap[qid] = NULL; + free(res, M_DEVBUF); + return; + } + if (wn-agg[tid].bitmap == 0) return; @@ -2785,6 +2803,7 @@ static void iwn_ampdu_tx_done(struct iwn_softc *sc, int qid, int idx, int nframes, void *stat) { + struct iwn_ops *ops = sc-ops; struct ifnet *ifp = sc-sc_ifp; struct iwn_tx_ring *ring = sc-txq[qid]; struct iwn_tx_data *data; @@ -2795,8 +2814,9 @@ iwn_ampdu_tx_done(struct iwn_softc *sc, uint64_t bitmap; uint32_t *status = stat; uint16_t *aggstatus = stat; + uint16_t ssn; uint8_t tid; - int bit, i, lastidx, seqno, shift, start; + int bit, i, lastidx, *res, seqno, shift, start; #ifdef NOT_YET if (nframes == 1) { @@ -2829,12 +2849,17 @@ iwn_ampdu_tx_done(struct iwn_softc *sc, bitmap |= 1ULL bit; } tap = sc-qid2tap[qid]; - if (tap != NULL) { - tid = tap-txa_tid; - wn = (void *)tap-txa_ni; - wn-agg[tid].bitmap = bitmap; - wn-agg[tid].startidx = start; - wn-agg[tid].nframes = nframes; + tid = tap-txa_tid; + wn = (void *)tap-txa_ni; + wn-agg[tid].bitmap = bitmap; + wn-agg[tid].startidx = start; + wn-agg[tid].nframes = nframes; + + res = NULL; + ssn = 0; + if (!IEEE80211_AMPDU_RUNNING(tap)) { + res = tap-txa_private; + ssn = tap-txa_start 0xfff; } seqno = le32toh(*(status + nframes)) 0xfff; @@ -2861,6 +2886,15 @@ iwn_ampdu_tx_done(struct iwn_softc *sc, ring-read = (ring-read + 1) % IWN_TX_RING_COUNT; } + if (ring-queued == 0 res != NULL) { + iwn_nic_lock(sc); + ops-ampdu_tx_stop(sc, qid, tid, ssn); + iwn_nic_unlock(sc); + sc-qid2tap[qid] = NULL; + free(res, M_DEVBUF); + return; + } + sc-sc_tx_timer = 0; if (ring-queued IWN_TX_RING_LOMARK) { sc-qfullmsk = ~(1 ring-qid); @@ -5661,6 +5695,8 @@ iwn_ampdu_tx_start(struct ieee80211com * if ((error = iwn_nic_lock(sc)) != 0) return 0; qid = *(int *)tap-txa_private; + DPRINTF(sc, IWN_DEBUG_XMIT, %s: ra=%d tid=%d ssn=%d qid=%d\n, + __func__, wn-id, tid, tap-txa_start, qid); ops-ampdu_tx_start(sc, ni, qid, tid, tap-txa_start 0xfff); iwn_nic_unlock(sc); @@ -5676,10 +5712,14 @@ iwn_ampdu_tx_stop(struct ieee80211_node uint8_t tid = tap-txa_tid; int qid; + sc-sc_addba_stop(ni, tap); + if (tap-txa_private == NULL) return; qid = *(int *)tap-txa_private; + if (sc-txq[qid].queued != 0) + return; if (iwn_nic_lock(sc) !=
svn commit: r236005 - stable/9/share/man/man4
Author: bschmidt Date: Fri May 25 16:09:06 2012 New Revision: 236005 URL: http://svn.freebsd.org/changeset/base/236005 Log: MFC r235235-235237: Update man page due to import of RT2800/RT3000 support. Modified: stable/9/share/man/man4/ral.4 Directory Properties: stable/9/share/man/man4/ (props changed) Modified: stable/9/share/man/man4/ral.4 == --- stable/9/share/man/man4/ral.4 Fri May 25 16:07:39 2012 (r236004) +++ stable/9/share/man/man4/ral.4 Fri May 25 16:09:06 2012 (r236005) @@ -1,5 +1,4 @@ -.\ Copyright (c) 2005, 2006 -.\ Damien Bergamini damien.bergam...@free.fr +.\ Copyright (c) 2005-2010 Damien Bergamini damien.bergam...@free.fr .\ .\ Permission to use, copy, modify, and distribute this software for any .\ purpose with or without fee is hereby granted, provided that the above @@ -15,12 +14,12 @@ .\ .\ $FreeBSD$ .\ -.Dd July 8, 2009 +.Dd May 10, 2012 .Dt RAL 4 .Os .Sh NAME .Nm ral -.Nd Ralink Technology IEEE 802.11 wireless network driver +.Nd Ralink Technology IEEE 802.11a/g/n wireless network device .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your @@ -42,31 +41,43 @@ if_ral_load=YES .Sh DESCRIPTION The .Nm -driver supports PCI/CardBus wireless adapters based on the Ralink Technology -RT2500, RT2501, and RT2600 chipsets. +driver supports PCI/PCIe/CardBus wireless adapters based on the Ralink RT2500, +RT2501, RT2600, RT2700, RT2800 and RT3090 chipsets. .Pp The RT2500 chipset is the first generation of 802.11b/g adapters from Ralink. -It consists of two integrated chips, a RT2560 MAC/BBP and a RT2525 radio +It consists of two integrated chips, an RT2560 MAC/BBP and an RT2525 radio transceiver. .Pp -The RT2501 chipset is the second generation of 802.11b/g adapters from Ralink. -It consists of two integrated chips, a RT2561 MAC/BBP and a RT2527 radio +The RT2501 chipset is the second generation of 802.11a/b/g adapters from +Ralink. +It consists of two integrated chips, an RT2561 MAC/BBP and an RT2527 radio transceiver. This chipset provides support for the IEEE 802.11e standard with multiple hardware transmission queues and allows scatter/gather for efficient DMA operations. .Pp -The RT2600 chipset consists of two integrated chips, a RT2661 MAC/BBP and a +The RT2600 chipset consists of two integrated chips, an RT2661 MAC/BBP and an RT2529 radio transceiver. This chipset uses the MIMO (multiple-input multiple-output) technology with -multiple antennas to extend the operating range of the adapter and to achieve -higher throughput. -MIMO is the basis of the forthcoming IEEE 802.11n standard. -.Pp -The transmit speed is user-selectable or can be adapted automatically by the -driver depending on the received signal strength and on the number of hardware -transmission retries. +multiple radio transceivers to extend the operating range of the adapter and +to achieve higher throughput. +However, the RT2600 chipset does not support any of the 802.11n features. +.Pp +The RT2700 chipset is a low-cost version of the RT2800 chipset. +It supports a single transmit path and two receiver paths (1T2R). +It consists of two integrated chips, an RT2760 or RT2790 (PCIe) MAC/BBP and +an RT2720 (2.4GHz) or RT2750 (2.4GHz/5GHz) radio transceiver. +.Pp +The RT2800 chipset is the first generation of 802.11n adapters from Ralink. +It consists of two integrated chips, an RT2860 or RT2890 (PCIe) MAC/BBP and +an RT2820 (2.4GHz) or RT2850 (2.4GHz/5GHz) radio transceiver. +The RT2800 chipset supports two transmit paths and up to three receiver +paths (2T2R/2T3R). +It can achieve speeds up to 144Mbps (20MHz bandwidth) and 300Mbps (40MHz +bandwidth.) .Pp +The RT3090 chipset is the first generation of single-chip 802.11n adapters +from Ralink. .Nm supports .Cm station , @@ -92,13 +103,16 @@ Multiple interfaces may be operated together with a .Cm hostap interface to construct a wireless repeater device. +.Pp +The transmit speed is user-selectable or can be adapted automatically by the +driver depending on the number of hardware transmission retries. For more information on configuring this device, see .Xr ifconfig 8 . .Sh HARDWARE The .Nm -driver supports PCI/CardBus wireless adapters based on the Ralink Technology -RT2500, RT2501, and RT2600 chipsets, including: +driver supports PCI/PCIe/CardBus wireless adapters based on Ralink Technology +chipsets, including: .Pp .Bl -column -compact .Li Atlantis Land A02-PCM-W54 RT2561S CardBus .It Em Card Ta Em MAC/BBP Ta Em Bus @@ -188,9 +202,6 @@ RT2500, RT2501, and RT2600 chipsets, inc .It Zonet ZEW1500 Ta RT2560 Ta CardBus .It Zonet ZEW1600 Ta RT2560 Ta PCI .El -.Pp -An up to date list can be found at -.Pa http://damien.bergamini.free.fr/ral/list.html . .Sh EXAMPLES Join an existing BSS network (i.e., connect to an access point): .Pp @@ -238,7 +249,7 @@ This should not happen. .Xr
svn commit: r236008 - stable/8/share/man/man4
Author: bschmidt Date: Fri May 25 16:40:31 2012 New Revision: 236008 URL: http://svn.freebsd.org/changeset/base/236008 Log: MFC r235235-235237: Update man page due to import of RT2800/RT3000 support. Modified: stable/8/share/man/man4/ral.4 Directory Properties: stable/8/share/man/man4/ (props changed) Modified: stable/8/share/man/man4/ral.4 == --- stable/8/share/man/man4/ral.4 Fri May 25 16:39:56 2012 (r236007) +++ stable/8/share/man/man4/ral.4 Fri May 25 16:40:31 2012 (r236008) @@ -1,5 +1,4 @@ -.\ Copyright (c) 2005, 2006 -.\ Damien Bergamini damien.bergam...@free.fr +.\ Copyright (c) 2005-2010 Damien Bergamini damien.bergam...@free.fr .\ .\ Permission to use, copy, modify, and distribute this software for any .\ purpose with or without fee is hereby granted, provided that the above @@ -15,12 +14,12 @@ .\ .\ $FreeBSD$ .\ -.Dd July 8, 2009 +.Dd May 10, 2012 .Dt RAL 4 .Os .Sh NAME .Nm ral -.Nd Ralink Technology IEEE 802.11 wireless network driver +.Nd Ralink Technology IEEE 802.11a/g/n wireless network device .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your @@ -42,31 +41,43 @@ if_ral_load=YES .Sh DESCRIPTION The .Nm -driver supports PCI/CardBus wireless adapters based on the Ralink Technology -RT2500, RT2501, and RT2600 chipsets. +driver supports PCI/PCIe/CardBus wireless adapters based on the Ralink RT2500, +RT2501, RT2600, RT2700, RT2800 and RT3090 chipsets. .Pp The RT2500 chipset is the first generation of 802.11b/g adapters from Ralink. -It consists of two integrated chips, a RT2560 MAC/BBP and a RT2525 radio +It consists of two integrated chips, an RT2560 MAC/BBP and an RT2525 radio transceiver. .Pp -The RT2501 chipset is the second generation of 802.11b/g adapters from Ralink. -It consists of two integrated chips, a RT2561 MAC/BBP and a RT2527 radio +The RT2501 chipset is the second generation of 802.11a/b/g adapters from +Ralink. +It consists of two integrated chips, an RT2561 MAC/BBP and an RT2527 radio transceiver. This chipset provides support for the IEEE 802.11e standard with multiple hardware transmission queues and allows scatter/gather for efficient DMA operations. .Pp -The RT2600 chipset consists of two integrated chips, a RT2661 MAC/BBP and a +The RT2600 chipset consists of two integrated chips, an RT2661 MAC/BBP and an RT2529 radio transceiver. This chipset uses the MIMO (multiple-input multiple-output) technology with -multiple antennas to extend the operating range of the adapter and to achieve -higher throughput. -MIMO is the basis of the forthcoming IEEE 802.11n standard. -.Pp -The transmit speed is user-selectable or can be adapted automatically by the -driver depending on the received signal strength and on the number of hardware -transmission retries. +multiple radio transceivers to extend the operating range of the adapter and +to achieve higher throughput. +However, the RT2600 chipset does not support any of the 802.11n features. +.Pp +The RT2700 chipset is a low-cost version of the RT2800 chipset. +It supports a single transmit path and two receiver paths (1T2R). +It consists of two integrated chips, an RT2760 or RT2790 (PCIe) MAC/BBP and +an RT2720 (2.4GHz) or RT2750 (2.4GHz/5GHz) radio transceiver. +.Pp +The RT2800 chipset is the first generation of 802.11n adapters from Ralink. +It consists of two integrated chips, an RT2860 or RT2890 (PCIe) MAC/BBP and +an RT2820 (2.4GHz) or RT2850 (2.4GHz/5GHz) radio transceiver. +The RT2800 chipset supports two transmit paths and up to three receiver +paths (2T2R/2T3R). +It can achieve speeds up to 144Mbps (20MHz bandwidth) and 300Mbps (40MHz +bandwidth.) .Pp +The RT3090 chipset is the first generation of single-chip 802.11n adapters +from Ralink. .Nm supports .Cm station , @@ -92,13 +103,16 @@ Multiple interfaces may be operated together with a .Cm hostap interface to construct a wireless repeater device. +.Pp +The transmit speed is user-selectable or can be adapted automatically by the +driver depending on the number of hardware transmission retries. For more information on configuring this device, see .Xr ifconfig 8 . .Sh HARDWARE The .Nm -driver supports PCI/CardBus wireless adapters based on the Ralink Technology -RT2500, RT2501, and RT2600 chipsets, including: +driver supports PCI/PCIe/CardBus wireless adapters based on Ralink Technology +chipsets, including: .Pp .Bl -column -compact .Li Atlantis Land A02-PCM-W54 RT2561S CardBus .It Em Card Ta Em MAC/BBP Ta Em Bus @@ -188,9 +202,6 @@ RT2500, RT2501, and RT2600 chipsets, inc .It Zonet ZEW1500 Ta RT2560 Ta CardBus .It Zonet ZEW1600 Ta RT2560 Ta PCI .El -.Pp -An up to date list can be found at -.Pa http://damien.bergamini.free.fr/ral/list.html . .Sh EXAMPLES Join an existing BSS network (i.e., connect to an access point): .Pp @@ -239,7 +250,7 @@ This should not happen. .Xr
svn commit: r236010 - stable/8/sys/dev/ral
Author: bschmidt Date: Fri May 25 16:52:00 2012 New Revision: 236010 URL: http://svn.freebsd.org/changeset/base/236010 Log: MFC r220502: Don't hardcode assumptions about basic rates, similar to what the rt2661 support code does. While here remove an unnecessary loop. Modified: stable/8/sys/dev/ral/rt2560.c stable/8/sys/dev/ral/rt2661.c Directory Properties: stable/8/sys/ (props changed) Modified: stable/8/sys/dev/ral/rt2560.c == --- stable/8/sys/dev/ral/rt2560.c Fri May 25 16:45:56 2012 (r236009) +++ stable/8/sys/dev/ral/rt2560.c Fri May 25 16:52:00 2012 (r236010) @@ -144,7 +144,8 @@ static void rt2560_enable_tsf_sync(stru static voidrt2560_enable_tsf(struct rt2560_softc *); static voidrt2560_update_plcp(struct rt2560_softc *); static voidrt2560_update_slot(struct ifnet *); -static voidrt2560_set_basicrates(struct rt2560_softc *); +static voidrt2560_set_basicrates(struct rt2560_softc *, + const struct ieee80211_rateset *); static voidrt2560_update_led(struct rt2560_softc *, int, int); static voidrt2560_set_bssid(struct rt2560_softc *, const uint8_t *); static voidrt2560_set_macaddr(struct rt2560_softc *, uint8_t *); @@ -779,7 +780,7 @@ rt2560_newstate(struct ieee80211vap *vap if (vap-iv_opmode != IEEE80211_M_MONITOR) { rt2560_update_plcp(sc); - rt2560_set_basicrates(sc); + rt2560_set_basicrates(sc, ni-ni_rates); rt2560_set_bssid(sc, ni-ni_bssid); } @@ -2353,22 +2354,29 @@ rt2560_update_slot(struct ifnet *ifp) } static void -rt2560_set_basicrates(struct rt2560_softc *sc) +rt2560_set_basicrates(struct rt2560_softc *sc, +const struct ieee80211_rateset *rs) { +#define RV(r) ((r) IEEE80211_RATE_VAL) struct ifnet *ifp = sc-sc_ifp; struct ieee80211com *ic = ifp-if_l2com; + uint32_t mask = 0; + uint8_t rate; + int i; - /* update basic rate set */ - if (ic-ic_curmode == IEEE80211_MODE_11B) { - /* 11b basic rates: 1, 2Mbps */ - RAL_WRITE(sc, RT2560_ARSP_PLCP_1, 0x3); - } else if (IEEE80211_IS_CHAN_5GHZ(ic-ic_curchan)) { - /* 11a basic rates: 6, 12, 24Mbps */ - RAL_WRITE(sc, RT2560_ARSP_PLCP_1, 0x150); - } else { - /* 11g basic rates: 1, 2, 5.5, 11, 6, 12, 24Mbps */ - RAL_WRITE(sc, RT2560_ARSP_PLCP_1, 0x15f); + for (i = 0; i rs-rs_nrates; i++) { + rate = rs-rs_rates[i]; + + if (!(rate IEEE80211_RATE_BASIC)) + continue; + + mask |= 1 ic-ic_rt-rateCodeToIndex[RV(rate)]; } + + RAL_WRITE(sc, RT2560_ARSP_PLCP_1, mask); + + DPRINTF(sc, Setting basic rate mask to 0x%x\n, mask); +#undef RV } static void Modified: stable/8/sys/dev/ral/rt2661.c == --- stable/8/sys/dev/ral/rt2661.c Fri May 25 16:45:56 2012 (r236009) +++ stable/8/sys/dev/ral/rt2661.c Fri May 25 16:52:00 2012 (r236010) @@ -1915,7 +1915,7 @@ rt2661_set_basicrates(struct rt2661_soft struct ieee80211com *ic = ifp-if_l2com; uint32_t mask = 0; uint8_t rate; - int i, j; + int i; for (i = 0; i rs-rs_nrates; i++) { rate = rs-rs_rates[i]; @@ -1923,13 +1923,7 @@ rt2661_set_basicrates(struct rt2661_soft if (!(rate IEEE80211_RATE_BASIC)) continue; - /* -* Find h/w rate index. We know it exists because the rate -* set has already been negotiated. -*/ - for (j = 0; ic-ic_sup_rates[IEEE80211_MODE_11G].rs_rates[j] != RV(rate); j++); - - mask |= 1 j; + mask |= 1 ic-ic_rt-rateCodeToIndex[RV(rate)]; } RAL_WRITE(sc, RT2661_TXRX_CSR5, mask); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r235843 - stable/9/sys/dev/iwn
Author: bschmidt Date: Wed May 23 16:43:16 2012 New Revision: 235843 URL: http://svn.freebsd.org/changeset/base/235843 Log: MFC r235684: Add some more 100/130 series device IDs. Modified: stable/9/sys/dev/iwn/if_iwn.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/iwn/if_iwn.c == --- stable/9/sys/dev/iwn/if_iwn.c Wed May 23 16:19:19 2012 (r235842) +++ stable/9/sys/dev/iwn/if_iwn.c Wed May 23 16:43:16 2012 (r235843) @@ -92,6 +92,9 @@ static const struct iwn_ident iwn_ident_ { 0x8086, 0x0885, Intel Centrino Wireless-N + WiMAX 6150 }, { 0x8086, 0x0886, Intel Centrino Wireless-N + WiMAX 6150 }, { 0x8086, 0x0896, Intel Centrino Wireless-N 130 }, + { 0x8086, 0x0887, Intel Centrino Wireless-N 130 }, + { 0x8086, 0x08ae, Intel Centrino Wireless-N 100 }, + { 0x8086, 0x08af, Intel Centrino Wireless-N 100 }, { 0x8086, 0x4229, Intel Wireless WiFi Link 4965 }, { 0x8086, 0x422b, Intel Centrino Ultimate-N 6300 }, { 0x8086, 0x422c, Intel Centrino Advanced-N 6200 }, ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r235844 - stable/8/sys/dev/iwn
Author: bschmidt Date: Wed May 23 16:43:37 2012 New Revision: 235844 URL: http://svn.freebsd.org/changeset/base/235844 Log: MFC r235684: Add some more 100/130 series device IDs. Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Wed May 23 16:43:16 2012 (r235843) +++ stable/8/sys/dev/iwn/if_iwn.c Wed May 23 16:43:37 2012 (r235844) @@ -92,6 +92,9 @@ static const struct iwn_ident iwn_ident_ { 0x8086, 0x0885, Intel Centrino Wireless-N + WiMAX 6150 }, { 0x8086, 0x0886, Intel Centrino Wireless-N + WiMAX 6150 }, { 0x8086, 0x0896, Intel Centrino Wireless-N 130 }, + { 0x8086, 0x0887, Intel Centrino Wireless-N 130 }, + { 0x8086, 0x08ae, Intel Centrino Wireless-N 100 }, + { 0x8086, 0x08af, Intel Centrino Wireless-N 100 }, { 0x8086, 0x4229, Intel Wireless WiFi Link 4965 }, { 0x8086, 0x422b, Intel Centrino Ultimate-N 6300 }, { 0x8086, 0x422c, Intel Centrino Advanced-N 6200 }, ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r235684 - head/sys/dev/iwn
Author: bschmidt Date: Sun May 20 09:29:14 2012 New Revision: 235684 URL: http://svn.freebsd.org/changeset/base/235684 Log: Add some more 100/130 series device IDs. MFC after:3 days Modified: head/sys/dev/iwn/if_iwn.c Modified: head/sys/dev/iwn/if_iwn.c == --- head/sys/dev/iwn/if_iwn.c Sun May 20 08:17:20 2012(r235683) +++ head/sys/dev/iwn/if_iwn.c Sun May 20 09:29:14 2012(r235684) @@ -92,6 +92,9 @@ static const struct iwn_ident iwn_ident_ { 0x8086, 0x0885, Intel Centrino Wireless-N + WiMAX 6150 }, { 0x8086, 0x0886, Intel Centrino Wireless-N + WiMAX 6150 }, { 0x8086, 0x0896, Intel Centrino Wireless-N 130 }, + { 0x8086, 0x0887, Intel Centrino Wireless-N 130 }, + { 0x8086, 0x08ae, Intel Centrino Wireless-N 100 }, + { 0x8086, 0x08af, Intel Centrino Wireless-N 100 }, { 0x8086, 0x4229, Intel Wireless WiFi Link 4965 }, { 0x8086, 0x422b, Intel Centrino Ultimate-N 6300 }, { 0x8086, 0x422c, Intel Centrino Advanced-N 6200 }, ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r235685 - head/sys/dev/ath
Author: bschmidt Date: Sun May 20 09:46:48 2012 New Revision: 235685 URL: http://svn.freebsd.org/changeset/base/235685 Log: Remove unused variable. Modified: head/sys/dev/ath/if_ath_rx.c Modified: head/sys/dev/ath/if_ath_rx.c == --- head/sys/dev/ath/if_ath_rx.cSun May 20 09:29:14 2012 (r235684) +++ head/sys/dev/ath/if_ath_rx.cSun May 20 09:46:48 2012 (r235685) @@ -766,7 +766,6 @@ ath_rx_proc(struct ath_softc *sc, int re ((_pa) - (_sc)-sc_rxdma.dd_desc_paddr))) struct ath_buf *bf; struct ifnet *ifp = sc-sc_ifp; - struct ieee80211com *ic = ifp-if_l2com; struct ath_hal *ah = sc-sc_ah; struct ath_desc *ds; struct ath_rx_status *rs; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r235686 - head/sys/dev/iwn
Author: bschmidt Date: Sun May 20 10:00:36 2012 New Revision: 235686 URL: http://svn.freebsd.org/changeset/base/235686 Log: Discard frames after a DELBA which where queued during an active BA session. MFC after:1 week Modified: head/sys/dev/iwn/if_iwn.c Modified: head/sys/dev/iwn/if_iwn.c == --- head/sys/dev/iwn/if_iwn.c Sun May 20 09:46:48 2012(r235685) +++ head/sys/dev/iwn/if_iwn.c Sun May 20 10:00:36 2012(r235686) @@ -3314,6 +3314,11 @@ iwn_tx_data(struct iwn_softc *sc, struct if (m-m_flags M_AMPDU_MPDU) { struct ieee80211_tx_ampdu *tap = ni-ni_tx_ampdu[ac]; + if (!IEEE80211_AMPDU_RUNNING(tap)) { + m_freem(m); + return EINVAL; + } + ac = *(int *)tap-txa_private; *(uint16_t *)wh-i_seq = htole16(ni-ni_txseqs[tid] IEEE80211_SEQ_SEQ_SHIFT); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r235687 - head/sys/dev/iwn
Author: bschmidt Date: Sun May 20 10:02:24 2012 New Revision: 235687 URL: http://svn.freebsd.org/changeset/base/235687 Log: remove unused vap variable MFC after:1 week Modified: head/sys/dev/iwn/if_iwn.c Modified: head/sys/dev/iwn/if_iwn.c == --- head/sys/dev/iwn/if_iwn.c Sun May 20 10:00:36 2012(r235686) +++ head/sys/dev/iwn/if_iwn.c Sun May 20 10:02:24 2012(r235687) @@ -2767,7 +2767,6 @@ iwn_ampdu_tx_done(struct iwn_softc *sc, struct mbuf *m; struct iwn_node *wn; struct ieee80211_node *ni; - struct ieee80211vap *vap; struct ieee80211_tx_ampdu *tap; uint64_t bitmap; uint32_t *status = stat; @@ -2826,7 +2825,6 @@ iwn_ampdu_tx_done(struct iwn_softc *sc, bus_dmamap_unload(ring-data_dmat, data-map); m = data-m, data-m = NULL; ni = data-ni, data-ni = NULL; - vap = ni-ni_vap; if (m-m_flags M_TXCB) ieee80211_process_callback(ni, m, 1); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r235328 - in stable/9/usr.sbin/wpa: . hostapd wpa_supplicant
Author: bschmidt Date: Sat May 12 08:22:41 2012 New Revision: 235328 URL: http://svn.freebsd.org/changeset/base/235328 Log: MFC r234711, r234756-234759, r234786: r234711: fix EAP server support after the 0.7.3 import: - eap_xxx.c files have been renamed to eap_server_xxx.c - additional crypto files are required for some options - EAP_MD5 and EAP_GTC is now enabled by default to match vendor config - move each file on its own line to hopefully make further diffs easier to read EAP_SERVER is now enabled by default. Fiddling with HOSTAPD_CFLAGS in src.conf is no longer required to get a basic WPA-EAP/radius setup running. [1] r234756-234758: - Follow up r234711 and do same for the supplicant, one file/option per line. While here merge the options which are always enabled. - enable EAP_GTC and EAP_OTP to match upstream's default configuration - not only the file names have changed from eap_xxx.c to eap_server_xxx.c, the defines too r234759: Move crypto stuff into a common Makefile. While here fix the WITHOUT_OPENSSL build by using the wpa's internal crypto support if openssl is not available, this allows us to unconditionally enable EAP support. r234786: Fix WITHOUT_EXAMPLES build: While removing unnecessary entries from .PATH.c I missed that for the examples WPA_SUPPLICANT_DISTDIR/HOSTAPD_DISTDIR is explicitly added to .PATH. Added: stable/9/usr.sbin/wpa/Makefile.crypto - copied unchanged from r234759, head/usr.sbin/wpa/Makefile.crypto Modified: stable/9/usr.sbin/wpa/Makefile.inc stable/9/usr.sbin/wpa/hostapd/Makefile stable/9/usr.sbin/wpa/wpa_supplicant/Makefile Directory Properties: stable/9/usr.sbin/wpa/ (props changed) stable/9/usr.sbin/wpa/wpa_supplicant/ (props changed) Copied: stable/9/usr.sbin/wpa/Makefile.crypto (from r234759, head/usr.sbin/wpa/Makefile.crypto) == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/9/usr.sbin/wpa/Makefile.crypto Sat May 12 08:22:41 2012 (r235328, copy of r234759, head/usr.sbin/wpa/Makefile.crypto) @@ -0,0 +1,121 @@ +# $FreeBSD$ + +.if ${MK_OPENSSL} != no !defined(RELEASE_CRUNCH) +SRCS+= crypto_openssl.c +DPADD+=${LIBSSL} ${LIBCRYPTO} +LDADD+=-lssl -lcrypto +.else +CFLAGS+=-DCONFIG_CRYPTO_INTERNAL +SRCS+= crypto_internal.c +CONFIG_INTERNAL_AES=y +CONFIG_INTERNAL_DES=y +CONFIG_INTERNAL_MD4=y +CONFIG_INTERNAL_MD5=y +CONFIG_INTERNAL_RC4=y +CONFIG_INTERNAL_SHA1=y +CONFIG_INTERNAL_SHA256=y +CONFIG_INTERNAL_TLS=y +NEED_AES_ENC=true +.endif + +.if defined(TLS_FUNCS) +NEED_TLS_PRF=y +.if defined(CONFIG_INTERNAL_TLS) +CFLAGS+=-DCONFIG_INTERNAL_LIBTOMMATH \ + -DCONFIG_TLS_INTERNAL_CLIENT +SRCS+= asn1.c \ + bignum.c \ + crypto_internal-cipher.c \ + crypto_internal-modexp.c \ + crypto_internal-rsa.c \ + pkcs1.c \ + pkcs5.c \ + pkcs8.c \ + rsa.c \ + tls_internal.c \ + tlsv1_common.c \ + tlsv1_record.c \ + tlsv1_cred.c \ + tlsv1_client.c \ + tlsv1_client_write.c \ + tlsv1_client_read.c \ + x509v3.c +NEED_DES=y +NEED_MD4=y +NEED_RC4=y +.else +CFLAGS+=-DEAP_TLS_OPENSSL +SRCS+= tls_openssl.c +.endif +.endif + +.if defined(CONFIG_INTERNAL_AES) +SRCS+= aes-internal.c \ + aes-internal-dec.c \ + aes-internal-enc.c +.endif + +.if defined(NEED_AES_CBC) +SRCS+= aes-cbc.c +.endif + +.if defined(NEED_AES_EAX) +SRCS+= aes-eax.c +NEED_AES_CTR=y +.endif + +.if defined(NEED_AES_CTR) +SRCS+= aes-ctr.c +.endif + +.if defined(NEED_AES_ENCBLOCK) +SRCS+= aes-encblock.c +.endif + +.if defined(NEED_AES_OMAC1) +SRCS+= aes-omac1.c +.endif + +.if defined(NEED_DES) +.if defined(CONFIG_INTERNAL_DES) +SRCS+= des-internal.c +.endif +.endif + +.if defined(NEED_MD4) +.if defined(CONFIG_INTERNAL_MD4) +SRCS+= md4-internal.c +.endif +.endif + +.if defined(CONFIG_INTERNAL_MD5) +SRCS+= md5-internal.c +.endif + +.if defined(NEED_FIPS186_2_PRF) +.if defined(CONFIG_INTERNAL_SHA1) +SRCS+= fips_prf_internal.c +.else +SRCS+= fips_prf_openssl.c +.endif +.endif + +.if defined(CONFIG_INTERNAL_RC4) +SRCS+= rc4.c +.endif + +.if defined(CONFIG_INTERNAL_SHA1) +SRCS+= sha1-internal.c +.endif + +.if defined(NEED_SHA256) +CFLAGS+=-DCONFIG_SHA256 +SRCS+= sha256.c +.if defined(CONFIG_INTERNAL_SHA256) +SRCS+= sha256-internal.c +.endif +.endif + +.if defined(NEED_TLS_PRF) +SRCS+= sha1-tlsprf.c +.endif Modified: stable/9/usr.sbin/wpa/Makefile.inc == --- stable/9/usr.sbin/wpa/Makefile.inc Sat May 12 07:52:45 2012 (r235327) +++ stable/9/usr.sbin/wpa/Makefile.inc Sat May 12 08:22:41 2012 (r235328) @@ -7,17 +7,26 @@ WPA_SUPPLICANT_DISTDIR?=${WPA_DISTDIR}/w HOSTAPD_DISTDIR?= ${WPA_DISTDIR}/hostapd .PATH.c:${.CURDIR}/.. \ + ${WPA_DISTDIR}/src/ap \ ${WPA_DISTDIR}/src/common \
svn commit: r235233 - in head/sys: conf dev/ral modules/ral
Damien Bergamini damien.bergam...@free.fr + * Copyright (c) 2012 Bernhard Schmidt bschm...@freebsd.org + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED AS IS AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * $OpenBSD: rt2860.c,v 1.65 2010/10/23 14:24:54 damien Exp $ + */ + +#include sys/cdefs.h +__FBSDID($FreeBSD$); + +/*- + * Ralink Technology RT2860/RT3090/RT3390/RT3562 chipset driver + * http://www.ralinktech.com/ + */ + +#include sys/param.h +#include sys/sysctl.h +#include sys/sockio.h +#include sys/mbuf.h +#include sys/kernel.h +#include sys/socket.h +#include sys/systm.h +#include sys/malloc.h +#include sys/lock.h +#include sys/mutex.h +#include sys/module.h +#include sys/bus.h +#include sys/endian.h +#include sys/firmware.h + +#include machine/bus.h +#include machine/resource.h +#include sys/rman.h + +#include net/bpf.h +#include net/if.h +#include net/if_arp.h +#include net/ethernet.h +#include net/if_dl.h +#include net/if_media.h +#include net/if_types.h + +#include net80211/ieee80211_var.h +#include net80211/ieee80211_radiotap.h +#include net80211/ieee80211_regdomain.h +#include net80211/ieee80211_ratectl.h + +#include netinet/in.h +#include netinet/in_systm.h +#include netinet/in_var.h +#include netinet/ip.h +#include netinet/if_ether.h + +#include dev/ral/rt2860reg.h +#include dev/ral/rt2860var.h + +#define RAL_DEBUG +#ifdef RAL_DEBUG +#define DPRINTF(x) do { if (sc-sc_debug 0) printf x; } while (0) +#define DPRINTFN(n, x) do { if (sc-sc_debug = (n)) printf x; } while (0) +#else +#define DPRINTF(x) +#define DPRINTFN(n, x) +#endif + +static struct ieee80211vap *rt2860_vap_create(struct ieee80211com *, + const char [IFNAMSIZ], int, enum ieee80211_opmode, + int, const uint8_t [IEEE80211_ADDR_LEN], + const uint8_t [IEEE80211_ADDR_LEN]); +static voidrt2860_vap_delete(struct ieee80211vap *); +static voidrt2860_dma_map_addr(void *, bus_dma_segment_t *, int, int); +static int rt2860_alloc_tx_ring(struct rt2860_softc *, + struct rt2860_tx_ring *); +static voidrt2860_reset_tx_ring(struct rt2860_softc *, + struct rt2860_tx_ring *); +static voidrt2860_free_tx_ring(struct rt2860_softc *, + struct rt2860_tx_ring *); +static int rt2860_alloc_tx_pool(struct rt2860_softc *); +static voidrt2860_free_tx_pool(struct rt2860_softc *); +static int rt2860_alloc_rx_ring(struct rt2860_softc *, + struct rt2860_rx_ring *); +static voidrt2860_reset_rx_ring(struct rt2860_softc *, + struct rt2860_rx_ring *); +static voidrt2860_free_rx_ring(struct rt2860_softc *, + struct rt2860_rx_ring *); +static voidrt2860_updatestats(struct rt2860_softc *); +static voidrt2860_newassoc(struct ieee80211_node *, int); +static voidrt2860_node_free(struct ieee80211_node *); +#ifdef IEEE80211_HT +static int rt2860_ampdu_rx_start(struct ieee80211com *, + struct ieee80211_node *, uint8_t); +static voidrt2860_ampdu_rx_stop(struct ieee80211com *, + struct ieee80211_node *, uint8_t); +#endif +static int rt2860_newstate(struct ieee80211vap *, enum ieee80211_state, + int); +static uint16_trt3090_efuse_read_2(struct rt2860_softc *, uint16_t); +static uint16_trt2860_eeprom_read_2(struct rt2860_softc *, uint16_t); +static voidrt2860_intr_coherent(struct rt2860_softc *); +static voidrt2860_drain_stats_fifo(struct rt2860_softc *); +static voidrt2860_tx_intr(struct rt2860_softc *, int); +static voidrt2860_rx_intr(struct rt2860_softc *); +static voidrt2860_tbtt_intr(struct rt2860_softc *); +static voidrt2860_gp_intr(struct rt2860_softc *); +static int rt2860_tx(struct rt2860_softc *, struct mbuf *, + struct ieee80211_node *); +static int rt2860_raw_xmit(struct ieee80211_node *, struct mbuf *, + const struct ieee80211_bpf_params *); +static int rt2860_tx_raw(struct rt2860_softc *, struct mbuf *, + struct ieee80211_node *, + const struct ieee80211_bpf_params *params); +static voidrt2860_start(struct ifnet *); +static voidrt2860_start_locked(struct ifnet *); +static voidrt2860_watchdog(void
svn commit: r235235 - head/share/man/man4
Author: bschmidt Date: Thu May 10 18:10:20 2012 New Revision: 235235 URL: http://svn.freebsd.org/changeset/base/235235 Log: Update man page due import of RT2800/RT3000 support. Obtained from:OpenBSD MFC after:3 weeks Modified: head/share/man/man4/ral.4 Modified: head/share/man/man4/ral.4 == --- head/share/man/man4/ral.4 Thu May 10 18:06:00 2012(r235234) +++ head/share/man/man4/ral.4 Thu May 10 18:10:20 2012(r235235) @@ -1,5 +1,4 @@ -.\ Copyright (c) 2005, 2006 -.\ Damien Bergamini damien.bergam...@free.fr +.\ Copyright (c) 2005-2010 Damien Bergamini damien.bergam...@free.fr .\ .\ Permission to use, copy, modify, and distribute this software for any .\ purpose with or without fee is hereby granted, provided that the above @@ -15,12 +14,12 @@ .\ .\ $FreeBSD$ .\ -.Dd July 8, 2009 +.Dd May 10, 2012 .Dt RAL 4 .Os .Sh NAME .Nm ral -.Nd Ralink Technology IEEE 802.11 wireless network driver +.Nd Ralink Technology IEEE 802.11a/g/n wireless network device .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your @@ -42,31 +41,43 @@ if_ral_load=YES .Sh DESCRIPTION The .Nm -driver supports PCI/CardBus wireless adapters based on the Ralink Technology -RT2500, RT2501, and RT2600 chipsets. +driver supports PCI/PCIe/CardBus wireless adapters based on the Ralink RT2500, +RT2501, RT2600, RT2700, RT2800 and RT3090 chipsets. .Pp The RT2500 chipset is the first generation of 802.11b/g adapters from Ralink. -It consists of two integrated chips, a RT2560 MAC/BBP and a RT2525 radio +It consists of two integrated chips, an RT2560 MAC/BBP and an RT2525 radio transceiver. .Pp -The RT2501 chipset is the second generation of 802.11b/g adapters from Ralink. -It consists of two integrated chips, a RT2561 MAC/BBP and a RT2527 radio +The RT2501 chipset is the second generation of 802.11a/b/g adapters from +Ralink. +It consists of two integrated chips, an RT2561 MAC/BBP and an RT2527 radio transceiver. This chipset provides support for the IEEE 802.11e standard with multiple hardware transmission queues and allows scatter/gather for efficient DMA operations. .Pp -The RT2600 chipset consists of two integrated chips, a RT2661 MAC/BBP and a +The RT2600 chipset consists of two integrated chips, an RT2661 MAC/BBP and an RT2529 radio transceiver. This chipset uses the MIMO (multiple-input multiple-output) technology with -multiple antennas to extend the operating range of the adapter and to achieve -higher throughput. -MIMO is the basis of the forthcoming IEEE 802.11n standard. -.Pp -The transmit speed is user-selectable or can be adapted automatically by the -driver depending on the received signal strength and on the number of hardware -transmission retries. +multiple radio transceivers to extend the operating range of the adapter and +to achieve higher throughput. +However, the RT2600 chipset does not support any of the 802.11n features. +.Pp +The RT2700 chipset is a low-cost version of the RT2800 chipset. +It supports a single transmit path and two receiver paths (1T2R). +It consists of two integrated chips, an RT2760 or RT2790 (PCIe) MAC/BBP and +an RT2720 (2.4GHz) or RT2750 (2.4GHz/5GHz) radio transceiver. +.Pp +The RT2800 chipset is the first generation of 802.11n adapters from Ralink. +It consists of two integrated chips, an RT2860 or RT2890 (PCIe) MAC/BBP and +an RT2820 (2.4GHz) or RT2850 (2.4GHz/5GHz) radio transceiver. +The RT2800 chipset supports two transmit paths and up to three receiver +paths (2T2R/2T3R). +It can achieve speeds up to 144Mbps (20MHz bandwidth) and 300Mbps (40MHz +bandwidth.) .Pp +The RT3090 chipset is the first generation of single-chip 802.11n adapters +from Ralink. .Nm supports .Cm station , @@ -92,13 +103,16 @@ Multiple interfaces may be operated together with a .Cm hostap interface to construct a wireless repeater device. +.Pp +The transmit speed is user-selectable or can be adapted automatically by the +driver depending on the number of hardware transmission retries. For more information on configuring this device, see .Xr ifconfig 8 . .Sh HARDWARE The .Nm -driver supports PCI/CardBus wireless adapters based on the Ralink Technology -RT2500, RT2501, and RT2600 chipsets, including: +driver supports PCI/PCIe/CardBus wireless adapters based on Ralink Technology +chipsets, including: .Pp .Bl -column -compact .Li Atlantis Land A02-PCM-W54 RT2561S CardBus .It Em Card Ta Em MAC/BBP Ta Em Bus @@ -188,9 +202,6 @@ RT2500, RT2501, and RT2600 chipsets, inc .It Zonet ZEW1500 Ta RT2560 Ta CardBus .It Zonet ZEW1600 Ta RT2560 Ta PCI .El -.Pp -An up to date list can be found at -.Pa http://damien.bergamini.free.fr/ral/list.html . .Sh EXAMPLES Join an existing BSS network (i.e., connect to an access point): .Pp @@ -239,6 +250,7 @@ This should not happen. .Xr hostapd 8 , .Xr ifconfig 8 , .Xr wpa_supplicant 8 . +.Xr ifconfig
svn commit: r235236 - head/share/man/man4
Author: bschmidt Date: Thu May 10 18:14:25 2012 New Revision: 235236 URL: http://svn.freebsd.org/changeset/base/235236 Log: ifconfig(8) is important, but no need to mention it twice. MFC after:3 weeks Modified: head/share/man/man4/ral.4 Modified: head/share/man/man4/ral.4 == --- head/share/man/man4/ral.4 Thu May 10 18:10:20 2012(r235235) +++ head/share/man/man4/ral.4 Thu May 10 18:14:25 2012(r235236) @@ -250,7 +250,6 @@ This should not happen. .Xr hostapd 8 , .Xr ifconfig 8 , .Xr wpa_supplicant 8 . -.Xr ifconfig 8 .Rs .%T Ralink Technology .%U http://www.ralinktech.com/ ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r235237 - head/share/man/man4
Author: bschmidt Date: Thu May 10 18:25:59 2012 New Revision: 235237 URL: http://svn.freebsd.org/changeset/base/235237 Log: remove trailing '.' Poked by: gjb MFC after:3 weeks Modified: head/share/man/man4/ral.4 Modified: head/share/man/man4/ral.4 == --- head/share/man/man4/ral.4 Thu May 10 18:14:25 2012(r235236) +++ head/share/man/man4/ral.4 Thu May 10 18:25:59 2012(r235237) @@ -249,7 +249,7 @@ This should not happen. .Xr wlan_xauth 4 , .Xr hostapd 8 , .Xr ifconfig 8 , -.Xr wpa_supplicant 8 . +.Xr wpa_supplicant 8 .Rs .%T Ralink Technology .%U http://www.ralinktech.com/ ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r234786 - in head/usr.sbin/wpa: hostapd wpa_supplicant
Author: bschmidt Date: Sun Apr 29 12:48:52 2012 New Revision: 234786 URL: http://svn.freebsd.org/changeset/base/234786 Log: Fix WITHOUT_EXAMPLES build: While removing unnecessary entries from .PATH.c I missed that for the examples WPA_SUPPLICANT_DISTDIR/HOSTAPD_DISTDIR is explicitly added to .PATH. Tested by:lev MFC after:2 weeks Modified: head/usr.sbin/wpa/hostapd/Makefile head/usr.sbin/wpa/wpa_supplicant/Makefile Modified: head/usr.sbin/wpa/hostapd/Makefile == --- head/usr.sbin/wpa/hostapd/Makefile Sun Apr 29 11:04:31 2012 (r234785) +++ head/usr.sbin/wpa/hostapd/Makefile Sun Apr 29 12:48:52 2012 (r234786) @@ -2,7 +2,8 @@ .include ${.CURDIR}/../Makefile.inc -.PATH.c:${WPA_DISTDIR}/src/drivers +.PATH.c:${HOSTAPD_DISTDIR} \ + ${WPA_DISTDIR}/src/drivers PROG= hostapd SRCS= accounting.c \ Modified: head/usr.sbin/wpa/wpa_supplicant/Makefile == --- head/usr.sbin/wpa/wpa_supplicant/Makefile Sun Apr 29 11:04:31 2012 (r234785) +++ head/usr.sbin/wpa/wpa_supplicant/Makefile Sun Apr 29 12:48:52 2012 (r234786) @@ -2,7 +2,8 @@ .include ${.CURDIR}/../Makefile.inc -.PATH.c:${WPA_DISTDIR}/src/drivers +.PATH.c:${WPA_SUPPLICANT_DISTDIR} \ + ${WPA_DISTDIR}/src/drivers PROG= wpa_supplicant SRCS= aes-unwrap.c \ ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r234756 - in head/usr.sbin/wpa: . wpa_supplicant
Author: bschmidt Date: Sat Apr 28 10:59:29 2012 New Revision: 234756 URL: http://svn.freebsd.org/changeset/base/234756 Log: Follow up r234711 and do same for the supplicant, one file/option per line. While here merge the options which are always enabled. MFC after:2 weeks Modified: head/usr.sbin/wpa/Makefile.inc head/usr.sbin/wpa/wpa_supplicant/Makefile Modified: head/usr.sbin/wpa/Makefile.inc == --- head/usr.sbin/wpa/Makefile.inc Sat Apr 28 09:21:43 2012 (r234755) +++ head/usr.sbin/wpa/Makefile.inc Sat Apr 28 10:59:29 2012 (r234756) @@ -12,10 +12,13 @@ HOSTAPD_DISTDIR?= ${WPA_DISTDIR}/hostapd ${WPA_DISTDIR}/src/crypto \ ${WPA_DISTDIR}/src/eapol_auth \ ${WPA_DISTDIR}/src/eap_common \ + ${WPA_DISTDIR}/src/eap_peer \ ${WPA_DISTDIR}/src/eap_server \ ${WPA_DISTDIR}/src/eapol_supp \ ${WPA_DISTDIR}/src/l2_packet \ ${WPA_DISTDIR}/src/radius \ + ${WPA_DISTDIR}/src/rsn_supp \ + ${WPA_DISTDIR}/src/tls \ ${WPA_DISTDIR}/src/utils CFLAGS+=-I${.CURDIR} Modified: head/usr.sbin/wpa/wpa_supplicant/Makefile == --- head/usr.sbin/wpa/wpa_supplicant/Makefile Sat Apr 28 09:21:43 2012 (r234755) +++ head/usr.sbin/wpa/wpa_supplicant/Makefile Sat Apr 28 10:59:29 2012 (r234756) @@ -2,24 +2,53 @@ .include ${.CURDIR}/../Makefile.inc -.PATH.c:${WPA_SUPPLICANT_DISTDIR} \ - ${WPA_DISTDIR}/src/drivers \ - ${WPA_DISTDIR}/src/eap_peer \ - ${WPA_DISTDIR}/src/rsn_supp \ - ${WPA_DISTDIR}/src/crypto +.PATH.c:${WPA_DISTDIR}/src/drivers PROG= wpa_supplicant -SRCS= aes-cbc.c aes-ctr.c aes-eax.c aes-encblock.c \ - aes-internal.c aes-omac1.c aes-unwrap.c \ - aes-wrap.c bss.c blacklist.c common.c config.c ctrl_iface.c \ - ctrl_iface_unix.c drivers.c eloop.c events.c l2_packet_freebsd.c main.c\ - md5.c notify.c preauth.c pmksa_cache.c scan.c \ - sha1-pbkdf2.c sha1-tlsprf.c sha1-tprf.c sha1.c \ - wpa.c wpa_common.c wpa_debug.c wpa_ie.c wpa_supplicant.c \ - wpabuf.c wpas_glue.c \ - driver_ndis.c Packet32.c \ +SRCS= aes-cbc.c \ + aes-ctr.c \ + aes-eax.c \ + aes-encblock.c \ + aes-internal.c \ + aes-omac1.c \ + aes-unwrap.c \ + aes-wrap.c \ + base64.c \ + blacklist.c \ + bss.c \ + common.c \ + config.c \ + config_file.c \ + ctrl_iface.c \ + ctrl_iface_unix.c \ + driver_ndis.c \ driver_wired.c \ - driver_freebsd.c os_unix.c + drivers.c \ + eap_register.c \ + eloop.c \ + events.c \ + main.c \ + md5.c \ + notify.c \ + os_unix.c \ + peerkey.c \ + pmksa_cache.c \ + preauth.c \ + scan.c \ + sha1-pbkdf2.c \ + sha1-tlsprf.c \ + sha1-tprf.c \ + sha1.c \ + wpa.c \ + wpa_common.c \ + wpa_debug.c \ + wpa_ie.c \ + wpa_supplicant.c \ + wpabuf.c \ + wpas_glue.c +SRCS+= driver_freebsd.c \ + l2_packet_freebsd.c \ + Packet32.c MAN= wpa_supplicant.8 wpa_supplicant.conf.5 @@ -29,23 +58,19 @@ FILESDIR= ${SHAREDIR}/examples/etc FILES= wpa_supplicant.conf .endif -CFLAGS+=-I${WPA_SUPPLICANT_DISTDIR} -CFLAGS+=-I${WPA_DISTDIR}/src/drivers -CFLAGS+=-I${WPA_DISTDIR}/src/rsn_supp - -CFLAGS+= -DCONFIG_DRIVER_BSD -CFLAGS+= -DCONFIG_DRIVER_NDIS -CFLAGS+= -DCONFIG_DRIVER_WIRED -CFLAGS+= -DCONFIG_TERMINATE_ONLASTIF -CFLAGS+= -DCONFIG_DEBUG_SYSLOG +CFLAGS+=-DCONFIG_BACKEND_FILE \ + -DCONFIG_DEBUG_SYSLOG \ + -DCONFIG_DRIVER_BSD \ + -DCONFIG_DRIVER_NDIS \ + -DCONFIG_DRIVER_WIRED \ + -DCONFIG_PEERKEY \ + -DCONFIG_SMARTCARD \ + -DCONFIG_TERMINATE_ONLASTIF \ + -DPKCS12_FUNCS #CFLAGS+= -g DPADD+=${LIBPCAP} LDADD+=-lpcap -# NB: we only support wpa_supplicant.conf file -SRCS+= config_file.c base64.c -CFLAGS+=-DCONFIG_BACKEND_FILE - # User customizations to the wpa_supplicant build environment CFLAGS+=${WPA_SUPPLICANT_CFLAGS} #DPADD+=${WPA_SUPPLICANT_DPADD} @@ -53,22 +78,39 @@ LDADD+=${WPA_SUPPLICANT_LDADD} #LDFLAGS+=${WPA_SUPPLICANT_LDFLAGS} .if ${MK_WPA_SUPPLICANT_EAPOL} != no -SRCS+= eapol_supp_sm.c eap.c eap_common.c eap_methods.c eap_register.c -CFLAGS+= -DIEEE8021X_EAPOL .if ${MK_OPENSSL} != no !defined(RELEASE_CRUNCH) -CFLAGS+=-DEAP_TLS -DEAP_PEAP -DEAP_MSCHAPv2 -DEAP_LEAP -DEAP_PSK \ - -DEAP_TLV -DEAP_TLS_FUNCS -DEAP_TLS_OPENSSL -SRCS+= chap.c crypto_openssl.c \ + +CFLAGS+=-DEAP_LEAP \ + -DEAP_MD5 \ + -DEAP_MSCHAPv2 \ + -DEAP_PEAP \ + -DEAP_PSK \ + -DEAP_TLS \ + -DEAP_TLV \ + -DEAP_TLS_FUNCS \ + -DEAP_TLS_OPENSSL \ + -DEAP_TTLS \ + -DIEEE8021X_EAPOL +SRCS+= chap.c \ + crypto_openssl.c \ +
svn commit: r234757 - head/usr.sbin/wpa/wpa_supplicant
Author: bschmidt Date: Sat Apr 28 11:01:12 2012 New Revision: 234757 URL: http://svn.freebsd.org/changeset/base/234757 Log: enable EAP_GTC and EAP_OTP to match upstream's default configuration MFC after:2 weeks Modified: head/usr.sbin/wpa/wpa_supplicant/Makefile Modified: head/usr.sbin/wpa/wpa_supplicant/Makefile == --- head/usr.sbin/wpa/wpa_supplicant/Makefile Sat Apr 28 10:59:29 2012 (r234756) +++ head/usr.sbin/wpa/wpa_supplicant/Makefile Sat Apr 28 11:01:12 2012 (r234757) @@ -81,9 +81,11 @@ LDADD+=${WPA_SUPPLICANT_LDADD} .if ${MK_OPENSSL} != no !defined(RELEASE_CRUNCH) -CFLAGS+=-DEAP_LEAP \ +CFLAGS+=-DEAP_GTC \ + -DEAP_LEAP \ -DEAP_MD5 \ -DEAP_MSCHAPv2 \ + -DEAP_OTP \ -DEAP_PEAP \ -DEAP_PSK \ -DEAP_TLS \ @@ -96,10 +98,12 @@ SRCS+= chap.c \ crypto_openssl.c \ eap.c \ eap_common.c \ + eap_gtc.c \ eap_leap.c \ eap_md5.c \ eap_methods.c \ eap_mschapv2.c \ + eap_otp.c \ eap_peap.c \ eap_peap_common.c \ eap_psk.c \ @@ -112,14 +116,6 @@ SRCS+= chap.c \ mschapv2.c \ tls_openssl.c -.if !empty(CFLAGS:M*-DEAP_GTC) -SRCS+= eap_gtc.c -.endif - -.if !empty(CFLAGS:M*-DEAP_OTP) -SRCS+= eap_otp.c -.endif - .if !empty(CFLAGS:M*-DEAP_AKA) NEED_SIM_COMMON= true SRCS+= eap_aka.c ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r234758 - head/usr.sbin/wpa/hostapd
Author: bschmidt Date: Sat Apr 28 11:02:32 2012 New Revision: 234758 URL: http://svn.freebsd.org/changeset/base/234758 Log: not only the file names have changed from eap_xxx.c to eap_server_xxx.c, the defines too MFC after:2 weeks Modified: head/usr.sbin/wpa/hostapd/Makefile Modified: head/usr.sbin/wpa/hostapd/Makefile == --- head/usr.sbin/wpa/hostapd/Makefile Sat Apr 28 11:01:12 2012 (r234757) +++ head/usr.sbin/wpa/hostapd/Makefile Sat Apr 28 11:02:32 2012 (r234758) @@ -106,13 +106,13 @@ SRCS+=dump_state.c \ eap_server_ttls.c \ tls_openssl.c -.if !empty(CFLAGS:M*-DEAP_AKA) +.if !empty(CFLAGS:M*-DEAP_SERVER_AKA) NEED_SIM_COMMON= true NEED_SHA256= true SRCS+= eap_server_aka.c .endif -.if !empty(CFLAGS:M*-DEAP_SIM) +.if !empty(CFLAGS:M*-DEAP_SERVER_SIM) NEED_SIM_COMMON= true SRCS+= eap_server_sim.c .endif @@ -124,7 +124,7 @@ NEED_AES_CBC= true NEED_FIPS186_2_PRF=true .endif -.if !empty(CFLAGS:M*-DEAP_GPSK) +.if !empty(CFLAGS:M*-DEAP_SERVER_GPSK) CFLAGS+=-DEAP_GPSK_SHA256 SRCS+= eap_server_gpsk.c \ eap_gpsk_common.c @@ -132,12 +132,12 @@ NEED_SHA256= true NEED_AES_OMAC1=true .endif -.if !empty(CFLAGS:M*-DEAP_PAX) +.if !empty(CFLAGS:M*-DEAP_SERVER_PAX) SRCS+= eap_server_pax.c \ eap_pax_common.c .endif -.if !empty(CFLAGS:M*-DEAP_SAKE) +.if !empty(CFLAGS:M*-DEAP_SERVER_SAKE) SRCS+= eap_server_sake.c \ eap_sake_common.c .endif ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r234759 - in head/usr.sbin/wpa: . hostapd wpa_supplicant
Author: bschmidt Date: Sat Apr 28 11:11:53 2012 New Revision: 234759 URL: http://svn.freebsd.org/changeset/base/234759 Log: Move crypto stuff into a common Makefile. While here fix the WITHOUT_OPENSSL build by using the wpa's internal crypto support if openssl is not available, this allows us to unconditionally enable EAP support. MFC after:2 weeks Added: head/usr.sbin/wpa/Makefile.crypto (contents, props changed) Modified: head/usr.sbin/wpa/hostapd/Makefile head/usr.sbin/wpa/wpa_supplicant/Makefile Added: head/usr.sbin/wpa/Makefile.crypto == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.sbin/wpa/Makefile.crypto Sat Apr 28 11:11:53 2012 (r234759) @@ -0,0 +1,121 @@ +# $FreeBSD$ + +.if ${MK_OPENSSL} != no !defined(RELEASE_CRUNCH) +SRCS+= crypto_openssl.c +DPADD+=${LIBSSL} ${LIBCRYPTO} +LDADD+=-lssl -lcrypto +.else +CFLAGS+=-DCONFIG_CRYPTO_INTERNAL +SRCS+= crypto_internal.c +CONFIG_INTERNAL_AES=y +CONFIG_INTERNAL_DES=y +CONFIG_INTERNAL_MD4=y +CONFIG_INTERNAL_MD5=y +CONFIG_INTERNAL_RC4=y +CONFIG_INTERNAL_SHA1=y +CONFIG_INTERNAL_SHA256=y +CONFIG_INTERNAL_TLS=y +NEED_AES_ENC=true +.endif + +.if defined(TLS_FUNCS) +NEED_TLS_PRF=y +.if defined(CONFIG_INTERNAL_TLS) +CFLAGS+=-DCONFIG_INTERNAL_LIBTOMMATH \ + -DCONFIG_TLS_INTERNAL_CLIENT +SRCS+= asn1.c \ + bignum.c \ + crypto_internal-cipher.c \ + crypto_internal-modexp.c \ + crypto_internal-rsa.c \ + pkcs1.c \ + pkcs5.c \ + pkcs8.c \ + rsa.c \ + tls_internal.c \ + tlsv1_common.c \ + tlsv1_record.c \ + tlsv1_cred.c \ + tlsv1_client.c \ + tlsv1_client_write.c \ + tlsv1_client_read.c \ + x509v3.c +NEED_DES=y +NEED_MD4=y +NEED_RC4=y +.else +CFLAGS+=-DEAP_TLS_OPENSSL +SRCS+= tls_openssl.c +.endif +.endif + +.if defined(CONFIG_INTERNAL_AES) +SRCS+= aes-internal.c \ + aes-internal-dec.c \ + aes-internal-enc.c +.endif + +.if defined(NEED_AES_CBC) +SRCS+= aes-cbc.c +.endif + +.if defined(NEED_AES_EAX) +SRCS+= aes-eax.c +NEED_AES_CTR=y +.endif + +.if defined(NEED_AES_CTR) +SRCS+= aes-ctr.c +.endif + +.if defined(NEED_AES_ENCBLOCK) +SRCS+= aes-encblock.c +.endif + +.if defined(NEED_AES_OMAC1) +SRCS+= aes-omac1.c +.endif + +.if defined(NEED_DES) +.if defined(CONFIG_INTERNAL_DES) +SRCS+= des-internal.c +.endif +.endif + +.if defined(NEED_MD4) +.if defined(CONFIG_INTERNAL_MD4) +SRCS+= md4-internal.c +.endif +.endif + +.if defined(CONFIG_INTERNAL_MD5) +SRCS+= md5-internal.c +.endif + +.if defined(NEED_FIPS186_2_PRF) +.if defined(CONFIG_INTERNAL_SHA1) +SRCS+= fips_prf_internal.c +.else +SRCS+= fips_prf_openssl.c +.endif +.endif + +.if defined(CONFIG_INTERNAL_RC4) +SRCS+= rc4.c +.endif + +.if defined(CONFIG_INTERNAL_SHA1) +SRCS+= sha1-internal.c +.endif + +.if defined(NEED_SHA256) +CFLAGS+=-DCONFIG_SHA256 +SRCS+= sha256.c +.if defined(CONFIG_INTERNAL_SHA256) +SRCS+= sha256-internal.c +.endif +.endif + +.if defined(NEED_TLS_PRF) +SRCS+= sha1-tlsprf.c +.endif Modified: head/usr.sbin/wpa/hostapd/Makefile == --- head/usr.sbin/wpa/hostapd/Makefile Sat Apr 28 11:02:32 2012 (r234758) +++ head/usr.sbin/wpa/hostapd/Makefile Sat Apr 28 11:11:53 2012 (r234759) @@ -11,10 +11,10 @@ SRCS= accounting.c \ ap_drv_ops.c \ ap_mlme.c \ authsrv.c \ + base64.c \ chap.c \ common.c \ config_file.c \ - crypto_openssl.c \ ctrl_iface.c \ ctrl_iface_ap.c \ drivers.c \ @@ -42,7 +42,6 @@ SRCS= accounting.c \ radius.c \ radius_client.c \ sha1-pbkdf2.c \ - sha1-tlsprf.c \ sha1.c \ sta_info.c \ tkip_countermeasures.c \ @@ -73,8 +72,8 @@ CFLAGS+=-DCONFIG_DRIVER_BSD \ CFLAGS+= -DCONFIG_IPV6 .endif #CFLAGS+= -g -DPADD+=${LIBPCAP} ${LIBSSL} -LDADD+=-lpcap -lssl +DPADD+=${LIBPCAP} +LDADD+=-lpcap # User customizations for wpa_supplicant/hostapd build environment CFLAGS+=${HOSTAPD_CFLAGS} @@ -82,8 +81,6 @@ CFLAGS+=${HOSTAPD_CFLAGS} LDADD+=${HOSTAPD_LDADD} #LDFLAGS+=${HOSTAPD_LDFLAGS} -.if ${MK_OPENSSL} != no !defined(RELEASE_CRUNCH) - CFLAGS+=-DDPKCS12_FUNCS \ -DEAP_SERVER \ -DEAP_SERVER_GTC \ @@ -103,33 +100,32 @@ SRCS+=dump_state.c \ eap_server_peap.c \ eap_server_tls.c \ eap_server_tls_common.c \ - eap_server_ttls.c \ - tls_openssl.c + eap_server_ttls.c +TLS_FUNCS=y +NEED_SHA256=y .if !empty(CFLAGS:M*-DEAP_SERVER_AKA) -NEED_SIM_COMMON= true -NEED_SHA256= true SRCS+= eap_server_aka.c +NEED_SIM_COMMON=y .endif .if !empty(CFLAGS:M*-DEAP_SERVER_SIM) -NEED_SIM_COMMON= true SRCS+= eap_server_sim.c +NEED_SIM_COMMON=y .endif .if defined(NEED_SIM_COMMON) SRCS+= eap_sim_common.c \
svn commit: r234711 - in head/usr.sbin/wpa: . hostapd
Author: bschmidt Date: Thu Apr 26 17:35:11 2012 New Revision: 234711 URL: http://svn.freebsd.org/changeset/base/234711 Log: fix EAP server support after the 0.7.3 import: - eap_xxx.c files have been renamed to eap_server_xxx.c - additional crypto files are required for some options - EAP_MD5 and EAP_GTC is now enabled by default to match vendor config - move each file on its own line to hopefully make further diffs easier to read EAP_SERVER is now enabled by default. Fiddling with HOSTAPD_CFLAGS in src.conf is no longer required to get a basic WPA-EAP/radius setup running. Tested by:Johann Hugo jhugo at meraka.csir.co.za MFC after:2 weeks Modified: head/usr.sbin/wpa/Makefile.inc head/usr.sbin/wpa/hostapd/Makefile Modified: head/usr.sbin/wpa/Makefile.inc == --- head/usr.sbin/wpa/Makefile.inc Thu Apr 26 14:51:12 2012 (r234710) +++ head/usr.sbin/wpa/Makefile.inc Thu Apr 26 17:35:11 2012 (r234711) @@ -7,17 +7,23 @@ WPA_SUPPLICANT_DISTDIR?=${WPA_DISTDIR}/w HOSTAPD_DISTDIR?= ${WPA_DISTDIR}/hostapd .PATH.c:${.CURDIR}/.. \ + ${WPA_DISTDIR}/src/ap \ ${WPA_DISTDIR}/src/common \ ${WPA_DISTDIR}/src/crypto \ + ${WPA_DISTDIR}/src/eapol_auth \ ${WPA_DISTDIR}/src/eap_common \ + ${WPA_DISTDIR}/src/eap_server \ ${WPA_DISTDIR}/src/eapol_supp \ ${WPA_DISTDIR}/src/l2_packet \ + ${WPA_DISTDIR}/src/radius \ ${WPA_DISTDIR}/src/utils CFLAGS+=-I${.CURDIR} +CFLAGS+=-I${HOSTAPD_DISTDIR} CFLAGS+=-I${WPA_DISTDIR}/src CFLAGS+=-I${WPA_DISTDIR}/src/common CFLAGS+=-I${WPA_DISTDIR}/src/crypto +CFLAGS+=-I${WPA_DISTDIR}/src/drivers CFLAGS+=-I${WPA_DISTDIR}/src/l2_packet CFLAGS+=-I${WPA_DISTDIR}/src/utils Modified: head/usr.sbin/wpa/hostapd/Makefile == --- head/usr.sbin/wpa/hostapd/Makefile Thu Apr 26 14:51:12 2012 (r234710) +++ head/usr.sbin/wpa/hostapd/Makefile Thu Apr 26 17:35:11 2012 (r234711) @@ -2,33 +2,59 @@ .include ${.CURDIR}/../Makefile.inc -.PATH.c:${HOSTAPD_DISTDIR} \ - ${WPA_DISTDIR}/src/ap \ - ${WPA_DISTDIR}/src/eap_server \ - ${WPA_DISTDIR}/src/eap_common \ - ${WPA_DISTDIR}/src/eapol_auth \ - ${WPA_DISTDIR}/src/drivers \ - ${WPA_DISTDIR}/src/radius \ - ${WPA_DISTDIR} +.PATH.c:${WPA_DISTDIR}/src/drivers PROG= hostapd -SRCS= accounting.c aes-wrap.c ap_config.c \ - ap_drv_ops.c ap_mlme.c authsrv.c \ - chap.c common.c config_file.c ctrl_iface.c crypto_openssl.c \ - ctrl_iface_ap.c drivers.c drv_callbacks.c dump_state.c \ - eap_common.c eap_peap_common.c eap_register.c eap_server.c \ - eap_server_gtc.c eap_server_identity.c eap_server_md5.c \ - eap_server_methods.c eap_server_mschapv2.c eap_server_peap.c \ - eap_server_tls.c eap_server_tls_common.c eap_server_ttls.c \ - eapol_auth_dump.c eapol_auth_sm.c eloop.c hostapd.c ieee802_11_auth.c \ - ieee802_11_common.c ieee802_11_ht.c ieee802_1x.c ip_addr.c \ - md5.c main.c ms_funcs.c peerkey_auth.c pmksa_cache_auth.c \ - preauth_auth.c radius.c radius_client.c sta_info.c \ - sha1-pbkdf2.c sha1-tlsprf.c sha1-tprf.c sha1.c \ - tkip_countermeasures.c utils.c \ - vlan_init.c wpa_auth.c wpa_auth_glue.c wpa_auth_ie.c wpa_common.c \ - wpa_debug.c wpabuf.c -SRCS+= l2_packet_freebsd.c driver_freebsd.c os_unix.c +SRCS= accounting.c \ + aes-wrap.c \ + ap_config.c \ + ap_drv_ops.c \ + ap_mlme.c \ + authsrv.c \ + chap.c \ + common.c \ + config_file.c \ + crypto_openssl.c \ + ctrl_iface.c \ + ctrl_iface_ap.c \ + drivers.c \ + drv_callbacks.c \ + eap_common.c \ + eap_peap_common.c \ + eap_register.c \ + eapol_auth_dump.c \ + eapol_auth_sm.c \ + eap_server.c \ + eap_server_methods.c \ + eloop.c \ + hostapd.c \ + ieee802_11_auth.c \ + ieee802_11_common.c \ + ieee802_1x.c \ + ip_addr.c \ + main.c \ + md5.c \ + ms_funcs.c \ + os_unix.c \ + peerkey_auth.c \ + pmksa_cache_auth.c \ + preauth_auth.c \ + radius.c \ + radius_client.c \ + sha1-pbkdf2.c \ + sha1-tlsprf.c \ + sha1.c \ + sta_info.c \ + tkip_countermeasures.c \ + utils.c \ + vlan_init.c \ + wpa_auth.c \ + wpa_auth_glue.c \ + wpa_auth_ie.c \ + wpa_common.c \ + wpa_debug.c \ + wpabuf.c +SRCS+= l2_packet_freebsd.c driver_freebsd.c MAN= hostapd.8 hostapd.conf.5 @@ -38,10 +64,11 @@ FILESDIR= ${SHAREDIR}/examples/hostapd FILES= hostapd.conf hostapd.eap_user hostapd.wpa_psk .endif -CFLAGS+= -I${HOSTAPD_DISTDIR} -I${WPA_DISTDIR}/src/drivers - -CFLAGS+= -DCONFIG_DRIVER_BSD -DHOSTAPD -CFLAGS+=
svn commit: r234570 - in stable/9/sys/dev: ipw iwi iwn wpi
Author: bschmidt Date: Sun Apr 22 09:19:10 2012 New Revision: 234570 URL: http://svn.freebsd.org/changeset/base/234570 Log: MFC r233387: Use suspend/resume methods provided by net80211. This ensures that the appropriate state handling takes place, not doing so results in the device doing nothing until manual intervention. Modified: stable/9/sys/dev/ipw/if_ipw.c stable/9/sys/dev/iwi/if_iwi.c stable/9/sys/dev/iwn/if_iwn.c stable/9/sys/dev/wpi/if_wpi.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/dev/ipw/if_ipw.c == --- stable/9/sys/dev/ipw/if_ipw.c Sun Apr 22 08:49:13 2012 (r234569) +++ stable/9/sys/dev/ipw/if_ipw.c Sun Apr 22 09:19:10 2012 (r234570) @@ -835,9 +835,9 @@ static int ipw_suspend(device_t dev) { struct ipw_softc *sc = device_get_softc(dev); + struct ieee80211com *ic = sc-sc_ifp-if_l2com; - ipw_stop(sc); - + ieee80211_suspend_all(ic); return 0; } @@ -845,13 +845,11 @@ static int ipw_resume(device_t dev) { struct ipw_softc *sc = device_get_softc(dev); - struct ifnet *ifp = sc-sc_ifp; + struct ieee80211com *ic = sc-sc_ifp-if_l2com; pci_write_config(dev, 0x41, 0, 1); - if (ifp-if_flags IFF_UP) - ipw_init(sc); - + ieee80211_resume_all(ic); return 0; } Modified: stable/9/sys/dev/iwi/if_iwi.c == --- stable/9/sys/dev/iwi/if_iwi.c Sun Apr 22 08:49:13 2012 (r234569) +++ stable/9/sys/dev/iwi/if_iwi.c Sun Apr 22 09:19:10 2012 (r234570) @@ -863,9 +863,9 @@ static int iwi_suspend(device_t dev) { struct iwi_softc *sc = device_get_softc(dev); + struct ieee80211com *ic = sc-sc_ifp-if_l2com; - iwi_stop(sc); - + ieee80211_suspend_all(ic); return 0; } @@ -873,13 +873,11 @@ static int iwi_resume(device_t dev) { struct iwi_softc *sc = device_get_softc(dev); - struct ifnet *ifp = sc-sc_ifp; + struct ieee80211com *ic = sc-sc_ifp-if_l2com; pci_write_config(dev, 0x41, 0, 1); - if (ifp-if_flags IFF_UP) - iwi_init(sc); - + ieee80211_resume_all(ic); return 0; } Modified: stable/9/sys/dev/iwn/if_iwn.c == --- stable/9/sys/dev/iwn/if_iwn.c Sun Apr 22 08:49:13 2012 (r234569) +++ stable/9/sys/dev/iwn/if_iwn.c Sun Apr 22 09:19:10 2012 (r234570) @@ -947,13 +947,9 @@ static int iwn_suspend(device_t dev) { struct iwn_softc *sc = device_get_softc(dev); - struct ifnet *ifp = sc-sc_ifp; - struct ieee80211com *ic = ifp-if_l2com; - struct ieee80211vap *vap = TAILQ_FIRST(ic-ic_vaps); + struct ieee80211com *ic = sc-sc_ifp-if_l2com; - iwn_stop(sc); - if (vap != NULL) - ieee80211_stop(vap); + ieee80211_suspend_all(ic); return 0; } @@ -961,20 +957,12 @@ static int iwn_resume(device_t dev) { struct iwn_softc *sc = device_get_softc(dev); - struct ifnet *ifp = sc-sc_ifp; - struct ieee80211com *ic = ifp-if_l2com; - struct ieee80211vap *vap = TAILQ_FIRST(ic-ic_vaps); + struct ieee80211com *ic = sc-sc_ifp-if_l2com; /* Clear device-specific PCI retry timeout register (41h). */ pci_write_config(dev, 0x41, 0, 1); - if (ifp-if_flags IFF_UP) { - iwn_init(sc); - if (vap != NULL) - ieee80211_init(vap); - if (ifp-if_drv_flags IFF_DRV_RUNNING) - iwn_start(ifp); - } + ieee80211_resume_all(ic); return 0; } Modified: stable/9/sys/dev/wpi/if_wpi.c == --- stable/9/sys/dev/wpi/if_wpi.c Sun Apr 22 08:49:13 2012 (r234569) +++ stable/9/sys/dev/wpi/if_wpi.c Sun Apr 22 09:19:10 2012 (r234570) @@ -1218,8 +1218,9 @@ static int wpi_suspend(device_t dev) { struct wpi_softc *sc = device_get_softc(dev); + struct ieee80211com *ic = sc-sc_ifp-if_l2com; - wpi_stop(sc); + ieee80211_suspend_all(ic); return 0; } @@ -1227,15 +1228,11 @@ static int wpi_resume(device_t dev) { struct wpi_softc *sc = device_get_softc(dev); - struct ifnet *ifp = sc-sc_ifp; + struct ieee80211com *ic = sc-sc_ifp-if_l2com; pci_write_config(dev, 0x41, 0, 1); - if (ifp-if_flags IFF_UP) { - wpi_init(ifp-if_softc); - if (ifp-if_drv_flags IFF_DRV_RUNNING) - wpi_start(ifp); - } + ieee80211_resume_all(ic); return 0; } ___ svn-src-all@freebsd.org mailing list
svn commit: r234571 - in stable/8/sys/dev: ipw iwi iwn wpi
Author: bschmidt Date: Sun Apr 22 09:19:19 2012 New Revision: 234571 URL: http://svn.freebsd.org/changeset/base/234571 Log: MFC r233387: Use suspend/resume methods provided by net80211. This ensures that the appropriate state handling takes place, not doing so results in the device doing nothing until manual intervention. Modified: stable/8/sys/dev/ipw/if_ipw.c stable/8/sys/dev/iwi/if_iwi.c stable/8/sys/dev/iwn/if_iwn.c stable/8/sys/dev/wpi/if_wpi.c Directory Properties: stable/8/sys/ (props changed) Modified: stable/8/sys/dev/ipw/if_ipw.c == --- stable/8/sys/dev/ipw/if_ipw.c Sun Apr 22 09:19:10 2012 (r234570) +++ stable/8/sys/dev/ipw/if_ipw.c Sun Apr 22 09:19:19 2012 (r234571) @@ -833,9 +833,9 @@ static int ipw_suspend(device_t dev) { struct ipw_softc *sc = device_get_softc(dev); + struct ieee80211com *ic = sc-sc_ifp-if_l2com; - ipw_stop(sc); - + ieee80211_suspend_all(ic); return 0; } @@ -843,13 +843,11 @@ static int ipw_resume(device_t dev) { struct ipw_softc *sc = device_get_softc(dev); - struct ifnet *ifp = sc-sc_ifp; + struct ieee80211com *ic = sc-sc_ifp-if_l2com; pci_write_config(dev, 0x41, 0, 1); - if (ifp-if_flags IFF_UP) - ipw_init(sc); - + ieee80211_resume_all(ic); return 0; } Modified: stable/8/sys/dev/iwi/if_iwi.c == --- stable/8/sys/dev/iwi/if_iwi.c Sun Apr 22 09:19:10 2012 (r234570) +++ stable/8/sys/dev/iwi/if_iwi.c Sun Apr 22 09:19:19 2012 (r234571) @@ -861,9 +861,9 @@ static int iwi_suspend(device_t dev) { struct iwi_softc *sc = device_get_softc(dev); + struct ieee80211com *ic = sc-sc_ifp-if_l2com; - iwi_stop(sc); - + ieee80211_suspend_all(ic); return 0; } @@ -871,13 +871,11 @@ static int iwi_resume(device_t dev) { struct iwi_softc *sc = device_get_softc(dev); - struct ifnet *ifp = sc-sc_ifp; + struct ieee80211com *ic = sc-sc_ifp-if_l2com; pci_write_config(dev, 0x41, 0, 1); - if (ifp-if_flags IFF_UP) - iwi_init(sc); - + ieee80211_resume_all(ic); return 0; } Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sun Apr 22 09:19:10 2012 (r234570) +++ stable/8/sys/dev/iwn/if_iwn.c Sun Apr 22 09:19:19 2012 (r234571) @@ -958,13 +958,9 @@ static int iwn_suspend(device_t dev) { struct iwn_softc *sc = device_get_softc(dev); - struct ifnet *ifp = sc-sc_ifp; - struct ieee80211com *ic = ifp-if_l2com; - struct ieee80211vap *vap = TAILQ_FIRST(ic-ic_vaps); + struct ieee80211com *ic = sc-sc_ifp-if_l2com; - iwn_stop(sc); - if (vap != NULL) - ieee80211_stop(vap); + ieee80211_suspend_all(ic); return 0; } @@ -972,20 +968,12 @@ static int iwn_resume(device_t dev) { struct iwn_softc *sc = device_get_softc(dev); - struct ifnet *ifp = sc-sc_ifp; - struct ieee80211com *ic = ifp-if_l2com; - struct ieee80211vap *vap = TAILQ_FIRST(ic-ic_vaps); + struct ieee80211com *ic = sc-sc_ifp-if_l2com; /* Clear device-specific PCI retry timeout register (41h). */ pci_write_config(dev, 0x41, 0, 1); - if (ifp-if_flags IFF_UP) { - iwn_init(sc); - if (vap != NULL) - ieee80211_init(vap); - if (ifp-if_drv_flags IFF_DRV_RUNNING) - iwn_start(ifp); - } + ieee80211_resume_all(ic); return 0; } Modified: stable/8/sys/dev/wpi/if_wpi.c == --- stable/8/sys/dev/wpi/if_wpi.c Sun Apr 22 09:19:10 2012 (r234570) +++ stable/8/sys/dev/wpi/if_wpi.c Sun Apr 22 09:19:19 2012 (r234571) @@ -1216,8 +1216,9 @@ static int wpi_suspend(device_t dev) { struct wpi_softc *sc = device_get_softc(dev); + struct ieee80211com *ic = sc-sc_ifp-if_l2com; - wpi_stop(sc); + ieee80211_suspend_all(ic); return 0; } @@ -1225,15 +1226,11 @@ static int wpi_resume(device_t dev) { struct wpi_softc *sc = device_get_softc(dev); - struct ifnet *ifp = sc-sc_ifp; + struct ieee80211com *ic = sc-sc_ifp-if_l2com; pci_write_config(dev, 0x41, 0, 1); - if (ifp-if_flags IFF_UP) { - wpi_init(ifp-if_softc); - if (ifp-if_drv_flags IFF_DRV_RUNNING) - wpi_start(ifp); - } + ieee80211_resume_all(ic); return 0; } ___ svn-src-all@freebsd.org mailing list
svn commit: r234321 - head/sys/dev/iwn
Author: bschmidt Date: Sun Apr 15 18:25:17 2012 New Revision: 234321 URL: http://svn.freebsd.org/changeset/base/234321 Log: Use the M_AMPDU_MPDU flag to determine when to manually set the seqno and use a BA queue. Modified: head/sys/dev/iwn/if_iwn.c Modified: head/sys/dev/iwn/if_iwn.c == --- head/sys/dev/iwn/if_iwn.c Sun Apr 15 17:28:47 2012(r234320) +++ head/sys/dev/iwn/if_iwn.c Sun Apr 15 18:25:17 2012(r234321) @@ -3308,18 +3308,15 @@ iwn_tx_data(struct iwn_softc *sc, struct tid = 0; } ac = M_WME_GETAC(m); - - if (IEEE80211_QOS_HAS_SEQ(wh) - IEEE80211_AMPDU_RUNNING(ni-ni_tx_ampdu[ac])) { + if (m-m_flags M_AMPDU_MPDU) { struct ieee80211_tx_ampdu *tap = ni-ni_tx_ampdu[ac]; - ring = sc-txq[*(int *)tap-txa_private]; + ac = *(int *)tap-txa_private; *(uint16_t *)wh-i_seq = htole16(ni-ni_txseqs[tid] IEEE80211_SEQ_SEQ_SHIFT); ni-ni_txseqs[tid]++; - } else { - ring = sc-txq[ac]; } + ring = sc-txq[ac]; desc = ring-desc[ring-cur]; data = ring-data[ring-cur]; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r234028 - stable/9/sys/contrib/dev/run
Author: bschmidt Date: Sun Apr 8 09:33:22 2012 New Revision: 234028 URL: http://svn.freebsd.org/changeset/base/234028 Log: MFC r233284: Update the firmware to version 0.236 Submitted by: PseudoCylon Modified: stable/9/sys/contrib/dev/run/rt2870.fw.uu Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/contrib/dev/run/rt2870.fw.uu == --- stable/9/sys/contrib/dev/run/rt2870.fw.uu Sun Apr 8 08:19:17 2012 (r234027) +++ stable/9/sys/contrib/dev/run/rt2870.fw.uu Sun Apr 8 09:33:22 2012 (r234028) @@ -39,70 +39,77 @@ # DAMAGE. # # This file contains two 4KB firmware, first half is RT2870 and last half -# is RT3071. On each 4KB firmware, 3rd last byte is major version number and -# 2nd last byte is minor version number. +# is RT3071. On each 4KB firmware, the last 2 bytes are CRC, 3rd last byte +# is minor version number and 4th last byte is major version number. # This file comes with -# RT2870 v. 0.17 -# RT3071 v. 0.17 +# RT2870 v. 0.236 +# RT3071 v. 0.236 begin 644 rt2870.fw.uu -M`A`H`A`R`A!X`A,J`A,K`A-*`A-/$A-+(@(7N0(8\`(42`(3@S`%!B`- -M`Q(9R*0`8S@,.,;Y4PPX`1_0(`?P0$_O\)`!C'0(\.20`:?PD`,X##@ -M')`!@.T`A6CX+0!$)`!A.T@0F0`8QT`?`2#@BD`04X#G`P(3*9!P$N#U -M5I`$!.`2IT0V3$0O381`E`1.5$10E(10E,10E01@U41TE82,'`26W$2B7(2 -MX',3`8```!,ID'`1X/4\Y)!P$_0!!1T@/#E5O1P`P(3*0(3(B``S`#'7T -MKU82Y0!!1T@/#DD'`3\.56]'`#`A,I`A,BA59!T@(BD'`0X%1__[\*#9!P -M$T`9U3@%U3X20!#@5'__OP(2D'`1X0(8`3@M`=4X#=4\@Y/4G(I!P -M$`D_Y)'(I`$!.`EX1=]50!#@_W1')5?XQN_D'`1X/]T257^,;OQN3] -MKU82Y0!!1T@/#DD'`3\.56]'`#`A,I`A,BY4=D!V`=Y4=D`7Y4=D6`1 -MY4=DF`+Y4=DV`%Y4T#`B0!'@5`_U.N5'M`D(Y3JT`P/D]4;E1[0*.4Z -MM`$#Y/5Y/VO5A(+D=($(I!P$#T_Y!P$.!?_Y!P$!5)T^0!CPD'`1X)!P -M?#D_:]6$@N1,!4$TA2`)I!P.#U)Y`*#_D'`9X/[O7I`*?`P1P2O)X`$ -MY2?T_Y`*._PY5;T`,$RD$R*0!#@_I!P$#][?CF]5?]KU82Y0!!1T -M@/#DD'`3\.56]'`#`A,I`A,BD'`0X/Z0!'@_WU@HZ#X/57_:]6$@N1D`04 -M=(#PY)!P$_#E5O1P`P(3*0(3(I`0`.#U5Y`0`N#U6*/@]5GE6+1P'N59M#`9 -MD`4(X$0!\/V0!07@5/OP1`3P[53^D`4(\.3U3O5/=3K_=3S_K5O5A(+D9`$ -M%'2`\.20!/PY5;T8$N`0I!P$.`D_Y*3Y/VO5A(+D9`$%'2`\.20!/PY5;T -M8J`(9!P$.`D_Y)*T@6M5Z]6$@N1D`04=(#PY)!P$_#E5O1@!Y!P)!$`?`B -M(N53!HP8`FR33!-!`5P@3E3T5.8`CE3Q5/`(53B(BPD+3(C`4,)!P!5 -M)_^0!C@3_4GD`(IX/^0!G@_N]D`(I\#!'!*\G@`3E)_3_D`(H[_#%+ -M2\),Y402IT3I0`4,P04+P@4#Q`3N2`3V6`3ZJ```!0UA4A#A4IA4QY4=D -M!F`#`A0U@!OE2,14#_5#Y4K$5`_U0N5,Q%0/]5[E1V0%30P^`7(5)0X5+ -M0H5-7N5'9`9P38`;Y4G$5`_U0^5+Q%0/]4+E314#_5Y4=D!G`PY4-4#T00 -M]4.`)N5'9`1@!5'M`40UX$=4()Y4T!A#E0U0/1##U0X`TDN``M),Y/4E -MY4+$5/#_Y4-4#T_U7])@(M(5Y4D]6`+),M@!R1``;%2(2%X02%K%*O -MP@32KR+KY`$%.!4#F`$TAB`.5.14\D_Y(8TJ^0!!3@HN2270\.5?5`_U -M+4E!,P`7E7R#ES`95?5##_OS`1Y25P!74E#(`%272;-)M@`_E7S#F -M!L)LTFV`!-)LPFWE1V0#$P2P;;-)M@!CE)7`#,$P1PDSE)7`%=24'@`(5 -M)=)LTFWE1[0)%.5$(.,+Y3ID`F`%Y3JT`P3;-)MY4TA/E.K0!!L)LTFV` -M.4Z`32;,)M(D'Y5X@X`*R:!K!^5(.$LFH@;0?E7B#B`K)L=2Y`(D$ -MHFB`)C!H!N5HN*`'5(.($?P``G\`Y494\/Z^\`1^`8`?@#N;R3_DG.2 -MB!K!*)J@8P:@;E1J+B@!WE7B#@!'\!@`)_`.55/#^OO`$?@``GX`[F\D -M_Y)UDG0@;02B;(`FY4=DG`B,PY4:BXX`7Y3JT`0;E1J+C@#3E1B#D`S#E -M`].``.`)C!L!N5HN*`'5(.$$?P``G\`Y494\/Z^\`1^`8`?@#N;R3_ -MDG2)`0`.0$SPD!`#X,.4,$`4HG2=Z)PDG;E+A,35#_U+L)WTG:0$_E -M+O#E1V0#F0`BG@5/[PY4/$5`\48`PD_F`,)`-P$\(X@`_2.(`+Y48PX@/3 -M@`'#DC@P1P6O)P(7?N4G]/\%W[E1V0'8`_E1V0(8`GE1V0)8`,%OV0`BG@ -M5/SPY3H48(48448TD_!))/E@%0.%#E1A,35#]U\`.$Y?`D_X`ZTCG -M.(`^Y48PX@/3@!W#@!KE1C#B#50XPY0P4`9^`'\!@`1^`'\`[D\D_Y(XPCF` -M$^5,.(#TX`!PY(YPCB`!,(XPCDP1P2O)X`$Y2?T_P(7?N5'9`Q@!N5'9`MP -MI`*!4_?#E.A1@(!1@(11@*R3\8$4D^6`2)`YP2N5$Q-4/W7P`X3E\(`I -MTCF`.N5,.(#TX`!PY(Y@WE1C#B#50XPY0P4`9^`'\!@`1^`'\`[D\D_Y(Y -M@`_E1C#B`].``.2.8`PCDP1P2O)X`$Y2?T_Y`*._P(N5'M`L0D`(IX%3K -M\.4G5.M%1?4G(N20`BGP,$$KT6`!.5%]/^0`BCO\*/4-)9(H]4TE@BY/5B -MPJ_E411@2!1@9B08`,-326755`9`HN!4?_CX#G(Y`$-.T`ARCX+0 -M%Z/@M`(2?R`2%Z^0$`3@5//P=5$!`AC4Y5!P!G5B`P(8U)`2`.!4`W`2?R`2 -M%Z^0`J+@5+_P=5$`AC4Y5!P`P(8SY`H^`PY@,,N0!#?@9)@`P(8RY`! -MBG1^\)`!EO0$@1TO#E6+1R%59M#40Y)`%`/C=`CPHW0!\'0#\'\!$@TJ -MD!,HX)!PO0$RG@D'`;\)`3*.!4\/CX%3P\.59M#44Y3ST8`:CX%3S@!20 -M$RK@5/OP@!3E//20$RI@.!4\D4\\(`$X%3Z\)`$`!4_?!U8@%U50+D]5` -M50`5U8@/U45B8!7`3U4)9K6*O0!(9E.5BM`,T@/2KR+KS`!$N20 -M`9;P]5'6(!?0*O0!(9E.52%`,!`#`AF1=5(!=54#D`0!X$0.\)!PN0 -M$RCPD'`;X)`3*?#E//1@.4\1`C\(`D!,J=`7PD!($=`/PY5BTA;E6;0U -M$9`%`'3B\*-T/C=`'P=`/P?P$2#2J0`J+@1,#PD!`$X$0,\.3U4O55,`() -MP@)]`:]!$AF4,`,P@/DD`6\-*O(N_T8WD_G04+O6Y#1P]8/@M/\9=!0N -M]8+D-'#U@^_P=!PN]8+D-'#U@^WP(@Z^!-4B(B*0K@,.%-PJ^0C@D!` -M\)!P*0$!WPD'`JX)`0'O0$!S@]6*0$![@(.'SD!`X)!P*/0$!W@D'`I -M\)`0'N0KP,$H'D'`DX$0!\,(%TJ\B(B(` +M`A`H`A`R`A!]`A.[`A.\`A/;`A/@$A/(@(8V@(:@(5/`(4=S`%!B`- +M`Q(:_R*0`8S@,.,@Y5@PX!#E3##@!']`@`)_`)`0+^_PD`,=`CPY)`!I_0 +M`8S@,.`D``X+0%:/@M`$0D`$X+2!9`!C'0!\!(-R*0!!3@(.#`A.Z +MD'`2X/56D`0$X!(*G1#A,1#%-A$*4!%!41%*4A%*4Q%*5!+51':5A(X!)C +M1*1A,\Q-=@!.`D```$[J0!'@]3SDD'`3\)`$%'2`\.56]'`#`A.Z`A.S +M(`(#,`,=?0*O5A(+D9`$%'2`\.20!/PY5;T`,$[H$[.%5D'2`B*0!#@ +M5'__OPH-D'`1X+0(!G5.`75/A)!P$.!4?_^_`A*0!'@9`A@!.T(`9U3@-U
svn commit: r234029 - stable/8/sys/contrib/dev/run
Author: bschmidt Date: Sun Apr 8 09:33:50 2012 New Revision: 234029 URL: http://svn.freebsd.org/changeset/base/234029 Log: MFC r233284: Update the firmware to version 0.236 Submitted by: PseudoCylon Modified: stable/8/sys/contrib/dev/run/rt2870.fw.uu Directory Properties: stable/8/sys/ (props changed) Modified: stable/8/sys/contrib/dev/run/rt2870.fw.uu == --- stable/8/sys/contrib/dev/run/rt2870.fw.uu Sun Apr 8 09:33:22 2012 (r234028) +++ stable/8/sys/contrib/dev/run/rt2870.fw.uu Sun Apr 8 09:33:50 2012 (r234029) @@ -39,70 +39,77 @@ # DAMAGE. # # This file contains two 4KB firmware, first half is RT2870 and last half -# is RT3071. On each 4KB firmware, 3rd last byte is major version number and -# 2nd last byte is minor version number. +# is RT3071. On each 4KB firmware, the last 2 bytes are CRC, 3rd last byte +# is minor version number and 4th last byte is major version number. # This file comes with -# RT2870 v. 0.17 -# RT3071 v. 0.17 +# RT2870 v. 0.236 +# RT3071 v. 0.236 begin 644 rt2870.fw.uu -M`A`H`A`R`A!X`A,J`A,K`A-*`A-/$A-+(@(7N0(8\`(42`(3@S`%!B`- -M`Q(9R*0`8S@,.,;Y4PPX`1_0(`?P0$_O\)`!C'0(\.20`:?PD`,X##@ -M')`!@.T`A6CX+0!$)`!A.T@0F0`8QT`?`2#@BD`04X#G`P(3*9!P$N#U -M5I`$!.`2IT0V3$0O381`E`1.5$10E(10E,10E01@U41TE82,'`26W$2B7(2 -MX',3`8```!,ID'`1X/4\Y)!P$_0!!1T@/#E5O1P`P(3*0(3(B``S`#'7T -MKU82Y0!!1T@/#DD'`3\.56]'`#`A,I`A,BA59!T@(BD'`0X%1__[\*#9!P -M$T`9U3@%U3X20!#@5'__OP(2D'`1X0(8`3@M`=4X#=4\@Y/4G(I!P -M$`D_Y)'(I`$!.`EX1=]50!#@_W1')5?XQN_D'`1X/]T257^,;OQN3] -MKU82Y0!!1T@/#DD'`3\.56]'`#`A,I`A,BY4=D!V`=Y4=D`7Y4=D6`1 -MY4=DF`+Y4=DV`%Y4T#`B0!'@5`_U.N5'M`D(Y3JT`P/D]4;E1[0*.4Z -MM`$#Y/5Y/VO5A(+D=($(I!P$#T_Y!P$.!?_Y!P$!5)T^0!CPD'`1X)!P -M?#D_:]6$@N1,!4$TA2`)I!P.#U)Y`*#_D'`9X/[O7I`*?`P1P2O)X`$ -MY2?T_Y`*._PY5;T`,$RD$R*0!#@_I!P$#][?CF]5?]KU82Y0!!1T -M@/#DD'`3\.56]'`#`A,I`A,BD'`0X/Z0!'@_WU@HZ#X/57_:]6$@N1D`04 -M=(#PY)!P$_#E5O1P`P(3*0(3(I`0`.#U5Y`0`N#U6*/@]5GE6+1P'N59M#`9 -MD`4(X$0!\/V0!07@5/OP1`3P[53^D`4(\.3U3O5/=3K_=3S_K5O5A(+D9`$ -M%'2`\.20!/PY5;T8$N`0I!P$.`D_Y*3Y/VO5A(+D9`$%'2`\.20!/PY5;T -M8J`(9!P$.`D_Y)*T@6M5Z]6$@N1D`04=(#PY)!P$_#E5O1@!Y!P)!$`?`B -M(N53!HP8`FR33!-!`5P@3E3T5.8`CE3Q5/`(53B(BPD+3(C`4,)!P!5 -M)_^0!C@3_4GD`(IX/^0!G@_N]D`(I\#!'!*\G@`3E)_3_D`(H[_#%+ -M2\),Y402IT3I0`4,P04+P@4#Q`3N2`3V6`3ZJ```!0UA4A#A4IA4QY4=D -M!F`#`A0U@!OE2,14#_5#Y4K$5`_U0N5,Q%0/]5[E1V0%30P^`7(5)0X5+ -M0H5-7N5'9`9P38`;Y4G$5`_U0^5+Q%0/]4+E314#_5Y4=D!G`PY4-4#T00 -M]4.`)N5'9`1@!5'M`40UX$=4()Y4T!A#E0U0/1##U0X`TDN``M),Y/4E -MY4+$5/#_Y4-4#T_U7])@(M(5Y4D]6`+),M@!R1``;%2(2%X02%K%*O -MP@32KR+KY`$%.!4#F`$TAB`.5.14\D_Y(8TJ^0!!3@HN2270\.5?5`_U -M+4E!,P`7E7R#ES`95?5##_OS`1Y25P!74E#(`%272;-)M@`_E7S#F -M!L)LTFV`!-)LPFWE1V0#$P2P;;-)M@!CE)7`#,$P1PDSE)7`%=24'@`(5 -M)=)LTFWE1[0)%.5$(.,+Y3ID`F`%Y3JT`P3;-)MY4TA/E.K0!!L)LTFV` -M.4Z`32;,)M(D'Y5X@X`*R:!K!^5(.$LFH@;0?E7B#B`K)L=2Y`(D$ -MHFB`)C!H!N5HN*`'5(.($?P``G\`Y494\/Z^\`1^`8`?@#N;R3_DG.2 -MB!K!*)J@8P:@;E1J+B@!WE7B#@!'\!@`)_`.55/#^OO`$?@``GX`[F\D -M_Y)UDG0@;02B;(`FY4=DG`B,PY4:BXX`7Y3JT`0;E1J+C@#3E1B#D`S#E -M`].``.`)C!L!N5HN*`'5(.$$?P``G\`Y494\/Z^\`1^`8`?@#N;R3_ -MDG2)`0`.0$SPD!`#X,.4,$`4HG2=Z)PDG;E+A,35#_U+L)WTG:0$_E -M+O#E1V0#F0`BG@5/[PY4/$5`\48`PD_F`,)`-P$\(X@`_2.(`+Y48PX@/3 -M@`'#DC@P1P6O)P(7?N4G]/\%W[E1V0'8`_E1V0(8`GE1V0)8`,%OV0`BG@ -M5/SPY3H48(48448TD_!))/E@%0.%#E1A,35#]U\`.$Y?`D_X`ZTCG -M.(`^Y48PX@/3@!W#@!KE1C#B#50XPY0P4`9^`'\!@`1^`'\`[D\D_Y(XPCF` -M$^5,.(#TX`!PY(YPCB`!,(XPCDP1P2O)X`$Y2?T_P(7?N5'9`Q@!N5'9`MP -MI`*!4_?#E.A1@(!1@(11@*R3\8$4D^6`2)`YP2N5$Q-4/W7P`X3E\(`I -MTCF`.N5,.(#TX`!PY(Y@WE1C#B#50XPY0P4`9^`'\!@`1^`'\`[D\D_Y(Y -M@`_E1C#B`].``.2.8`PCDP1P2O)X`$Y2?T_Y`*._P(N5'M`L0D`(IX%3K -M\.4G5.M%1?4G(N20`BGP,$$KT6`!.5%]/^0`BCO\*/4-)9(H]4TE@BY/5B -MPJ_E411@2!1@9B08`,-326755`9`HN!4?_CX#G(Y`$-.T`ARCX+0 -M%Z/@M`(2?R`2%Z^0$`3@5//P=5$!`AC4Y5!P!G5B`P(8U)`2`.!4`W`2?R`2 -M%Z^0`J+@5+_P=5$`AC4Y5!P`P(8SY`H^`PY@,,N0!#?@9)@`P(8RY`! -MBG1^\)`!EO0$@1TO#E6+1R%59M#40Y)`%`/C=`CPHW0!\'0#\'\!$@TJ -MD!,HX)!PO0$RG@D'`;\)`3*.!4\/CX%3P\.59M#44Y3ST8`:CX%3S@!20 -M$RK@5/OP@!3E//20$RI@.!4\D4\\(`$X%3Z\)`$`!4_?!U8@%U50+D]5` -M50`5U8@/U45B8!7`3U4)9K6*O0!(9E.5BM`,T@/2KR+KS`!$N20 -M`9;P]5'6(!?0*O0!(9E.52%`,!`#`AF1=5(!=54#D`0!X$0.\)!PN0 -M$RCPD'`;X)`3*?#E//1@.4\1`C\(`D!,J=`7PD!($=`/PY5BTA;E6;0U -M$9`%`'3B\*-T/C=`'P=`/P?P$2#2J0`J+@1,#PD!`$X$0,\.3U4O55,`() -MP@)]`:]!$AF4,`,P@/DD`6\-*O(N_T8WD_G04+O6Y#1P]8/@M/\9=!0N -M]8+D-'#U@^_P=!PN]8+D-'#U@^WP(@Z^!-4B(B*0K@,.%-PJ^0C@D!` -M\)!P*0$!WPD'`JX)`0'O0$!S@]6*0$![@(.'SD!`X)!P*/0$!W@D'`I -M\)`0'N0KP,$H'D'`DX$0!\,(%TJ\B(B(` +M`A`H`A`R`A!]`A.[`A.\`A/;`A/@$A/(@(8V@(:@(5/`(4=S`%!B`- +M`Q(:_R*0`8S@,.,@Y5@PX!#E3##@!']`@`)_`)`0+^_PD`,=`CPY)`!I_0 +M`8S@,.`D``X+0%:/@M`$0D`$X+2!9`!C'0!\!(-R*0!!3@(.#`A.Z +MD'`2X/56D`0$X!(*G1#A,1#%-A$*4!%!41%*4A%*4Q%*5!+51':5A(X!)C +M1*1A,\Q-=@!.`D```$[J0!'@]3SDD'`3\)`$%'2`\.56]'`#`A.Z`A.S +M(`(#,`,=?0*O5A(+D9`$%'2`\.20!/PY5;T`,$[H$[.%5D'2`B*0!#@ +M5'__OPH-D'`1X+0(!G5.`75/A)!P$.!4?_^_`A*0!'@9`A@!.T(`9U3@-U
svn commit: r233838 - stable/9/sys/dev/iwn
Author: bschmidt Date: Tue Apr 3 17:01:37 2012 New Revision: 233838 URL: http://svn.freebsd.org/changeset/base/233838 Log: MFC r233567: Add support for 6150 series devices. Tested by:Shane Riddle sh4neriddle at yahoo dot com Modified: stable/9/sys/dev/iwn/if_iwn.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/dev/iwn/if_iwn.c == --- stable/9/sys/dev/iwn/if_iwn.c Tue Apr 3 15:42:08 2012 (r233837) +++ stable/9/sys/dev/iwn/if_iwn.c Tue Apr 3 17:01:37 2012 (r233838) @@ -89,6 +89,8 @@ static const struct iwn_ident iwn_ident_ { 0x8086, 0x008b, Intel(R) Centrino(R) Wireless-N 1030 }, { 0x8086, 0x0090, Intel(R) Centrino(R) Advanced-N 6230 }, { 0x8086, 0x0091, Intel(R) Centrino(R) Advanced-N 6230 }, + { 0x8086, 0x0885, Intel(R) Centrino(R) Wireless-N + WiMAX 6150 }, + { 0x8086, 0x0886, Intel(R) Centrino(R) Wireless-N + WiMAX 6150 }, { 0x8086, 0x0896, Intel(R) Centrino(R) Wireless-N 130 }, { 0x8086, 0x4229, Intel(R) Wireless WiFi Link 4965 }, { 0x8086, 0x422b, Intel(R) Centrino(R) Ultimate-N 6300 }, ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r233839 - stable/8/sys/dev/iwn
Author: bschmidt Date: Tue Apr 3 17:03:33 2012 New Revision: 233839 URL: http://svn.freebsd.org/changeset/base/233839 Log: MFC r233567: Add support for 6150 series devices. Tested by:Shane Riddle sh4neriddle at yahoo dot com Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Tue Apr 3 17:01:37 2012 (r233838) +++ stable/8/sys/dev/iwn/if_iwn.c Tue Apr 3 17:03:33 2012 (r233839) @@ -89,6 +89,8 @@ static const struct iwn_ident iwn_ident_ { 0x8086, 0x008b, Intel(R) Centrino(R) Wireless-N 1030 }, { 0x8086, 0x0090, Intel(R) Centrino(R) Advanced-N 6230 }, { 0x8086, 0x0091, Intel(R) Centrino(R) Advanced-N 6230 }, + { 0x8086, 0x0885, Intel(R) Centrino(R) Wireless-N + WiMAX 6150 }, + { 0x8086, 0x0886, Intel(R) Centrino(R) Wireless-N + WiMAX 6150 }, { 0x8086, 0x0896, Intel(R) Centrino(R) Wireless-N 130 }, { 0x8086, 0x4229, Intel(R) Wireless WiFi Link 4965 }, { 0x8086, 0x422b, Intel(R) Centrino(R) Ultimate-N 6300 }, ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r233840 - stable/9/share/man/man4
Author: bschmidt Date: Tue Apr 3 17:04:48 2012 New Revision: 233840 URL: http://svn.freebsd.org/changeset/base/233840 Log: MFC r233568: Add a list of available devices which matches the names shown by pciconf. While here add 2 missing firmware modules. Modified: stable/9/share/man/man4/iwn.4 Directory Properties: stable/9/share/man/man4/ (props changed) Modified: stable/9/share/man/man4/iwn.4 == --- stable/9/share/man/man4/iwn.4 Tue Apr 3 17:03:33 2012 (r233839) +++ stable/9/share/man/man4/iwn.4 Tue Apr 3 17:04:48 2012 (r233840) @@ -25,13 +25,12 @@ .\ .\ $FreeBSD$ .\ -.Dd July 20, 2010 +.Dd March 27, 2012 .Dt IWN 4 .Os .Sh NAME .Nm iwn -.Nd Intel Wireless WiFi Link 4965/1000/5000/5150/5300/6000/6050 -IEEE 802.11n driver +.Nd Intel IEEE 802.11n wireless network driver .Sh SYNOPSIS To compile this driver into the kernel, include the following lines in your @@ -51,6 +50,8 @@ Choose one from: .Cd device iwn5000fw .Cd device iwn5150fw .Cd device iwn6000fw +.Cd device iwn6000g2afw +.Cd device iwn6000g2bfw .Cd device iwn6050fw .Ed .Pp @@ -71,15 +72,32 @@ iwn1000fw_load=YES iwn5000fw_load=YES iwn5150fw_load=YES iwn6000fw_load=YES +iwn6000g2afw_load=YES +iwn6000g2bfw_load=YES iwn6050fw_load=YES .Ed .Sh DESCRIPTION The .Nm -driver provides support for -.Tn Intel -Wireless WiFi Link 4965, 1000, 5000 and 6000 series of -PCI-Express network adapters. +driver provides support for: +.Pp +.Bl -tag -width Ds -offset indent -compact +.It Intel Centrino Advanced-N 6200 +.It Intel Centrino Advanced-N 6205 +.It Intel Centrino Advanced-N 6230 +.It Intel Centrino Advanced-N + WiMAX 6250 +.It Intel Centrino Ultimate-N 6300 +.It Intel Centrino Wireless-N 130 +.It Intel Centrino Wireless-N 1000 +.It Intel Centrino Wireless-N 1030 +.It Intel Centrino Wireless-N + WiMAX 6150 +.It Intel Ultimate N WiFi Link 5300 +.It Intel Wireless WiFi Link 4965 +.It Intel WiFi Link 5100 +.It Intel WiMAX/WiFi Link 5150 +.It Intel WiMAX/WiFi Link 5350 +.El +.Pp .Nm supports .Cm station , ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r233841 - stable/8/share/man/man4
Author: bschmidt Date: Tue Apr 3 17:05:26 2012 New Revision: 233841 URL: http://svn.freebsd.org/changeset/base/233841 Log: MFC r233568: Add a list of available devices which matches the names shown by pciconf. While here add 2 missing firmware modules. Modified: stable/8/share/man/man4/iwn.4 Directory Properties: stable/8/share/man/man4/ (props changed) Modified: stable/8/share/man/man4/iwn.4 == --- stable/8/share/man/man4/iwn.4 Tue Apr 3 17:04:48 2012 (r233840) +++ stable/8/share/man/man4/iwn.4 Tue Apr 3 17:05:26 2012 (r233841) @@ -25,13 +25,12 @@ .\ .\ $FreeBSD$ .\ -.Dd July 20, 2010 +.Dd March 27, 2012 .Dt IWN 4 .Os .Sh NAME .Nm iwn -.Nd Intel Wireless WiFi Link 4965/1000/5000/5150/5300/6000/6050 -IEEE 802.11n driver +.Nd Intel IEEE 802.11n wireless network driver .Sh SYNOPSIS To compile this driver into the kernel, include the following lines in your @@ -51,6 +50,8 @@ Choose one from: .Cd device iwn5000fw .Cd device iwn5150fw .Cd device iwn6000fw +.Cd device iwn6000g2afw +.Cd device iwn6000g2bfw .Cd device iwn6050fw .Ed .Pp @@ -71,15 +72,32 @@ iwn1000fw_load=YES iwn5000fw_load=YES iwn5150fw_load=YES iwn6000fw_load=YES +iwn6000g2afw_load=YES +iwn6000g2bfw_load=YES iwn6050fw_load=YES .Ed .Sh DESCRIPTION The .Nm -driver provides support for -.Tn Intel -Wireless WiFi Link 4965, 1000, 5000 and 6000 series of -PCI-Express network adapters. +driver provides support for: +.Pp +.Bl -tag -width Ds -offset indent -compact +.It Intel Centrino Advanced-N 6200 +.It Intel Centrino Advanced-N 6205 +.It Intel Centrino Advanced-N 6230 +.It Intel Centrino Advanced-N + WiMAX 6250 +.It Intel Centrino Ultimate-N 6300 +.It Intel Centrino Wireless-N 130 +.It Intel Centrino Wireless-N 1000 +.It Intel Centrino Wireless-N 1030 +.It Intel Centrino Wireless-N + WiMAX 6150 +.It Intel Ultimate N WiFi Link 5300 +.It Intel Wireless WiFi Link 4965 +.It Intel WiFi Link 5100 +.It Intel WiMAX/WiFi Link 5150 +.It Intel WiMAX/WiFi Link 5350 +.El +.Pp .Nm supports .Cm station , ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r233842 - stable/9/sys/dev/iwn
Author: bschmidt Date: Tue Apr 3 17:08:17 2012 New Revision: 233842 URL: http://svn.freebsd.org/changeset/base/233842 Log: MFC r233571: strip (R) to match manpage and pci_vendors Modified: stable/9/sys/dev/iwn/if_iwn.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/dev/iwn/if_iwn.c == --- stable/9/sys/dev/iwn/if_iwn.c Tue Apr 3 17:05:26 2012 (r233841) +++ stable/9/sys/dev/iwn/if_iwn.c Tue Apr 3 17:08:17 2012 (r233842) @@ -79,35 +79,35 @@ struct iwn_ident { }; static const struct iwn_ident iwn_ident_table[] = { - { 0x8086, 0x0082, Intel(R) Centrino(R) Advanced-N 6205 }, - { 0x8086, 0x0083, Intel(R) Centrino(R) Wireless-N 1000 }, - { 0x8086, 0x0084, Intel(R) Centrino(R) Wireless-N 1000 }, - { 0x8086, 0x0085, Intel(R) Centrino(R) Advanced-N 6205 }, - { 0x8086, 0x0087, Intel(R) Centrino(R) Advanced-N + WiMAX 6250 }, - { 0x8086, 0x0089, Intel(R) Centrino(R) Advanced-N + WiMAX 6250 }, - { 0x8086, 0x008a, Intel(R) Centrino(R) Wireless-N 1030 }, - { 0x8086, 0x008b, Intel(R) Centrino(R) Wireless-N 1030 }, - { 0x8086, 0x0090, Intel(R) Centrino(R) Advanced-N 6230 }, - { 0x8086, 0x0091, Intel(R) Centrino(R) Advanced-N 6230 }, - { 0x8086, 0x0885, Intel(R) Centrino(R) Wireless-N + WiMAX 6150 }, - { 0x8086, 0x0886, Intel(R) Centrino(R) Wireless-N + WiMAX 6150 }, - { 0x8086, 0x0896, Intel(R) Centrino(R) Wireless-N 130 }, - { 0x8086, 0x4229, Intel(R) Wireless WiFi Link 4965 }, - { 0x8086, 0x422b, Intel(R) Centrino(R) Ultimate-N 6300 }, - { 0x8086, 0x422c, Intel(R) Centrino(R) Advanced-N 6200 }, - { 0x8086, 0x422d, Intel(R) Wireless WiFi Link 4965 }, - { 0x8086, 0x4230, Intel(R) Wireless WiFi Link 4965 }, - { 0x8086, 0x4232, Intel(R) WiFi Link 5100 }, - { 0x8086, 0x4233, Intel(R) Wireless WiFi Link 4965 }, - { 0x8086, 0x4235, Intel(R) Ultimate N WiFi Link 5300 }, - { 0x8086, 0x4236, Intel(R) Ultimate N WiFi Link 5300 }, - { 0x8086, 0x4237, Intel(R) WiFi Link 5100 }, - { 0x8086, 0x4238, Intel(R) Centrino(R) Ultimate-N 6300 }, - { 0x8086, 0x4239, Intel(R) Centrino(R) Advanced-N 6200 }, - { 0x8086, 0x423a, Intel(R) WiMAX/WiFi Link 5350}, - { 0x8086, 0x423b, Intel(R) WiMAX/WiFi Link 5350}, - { 0x8086, 0x423c, Intel(R) WiMAX/WiFi Link 5150}, - { 0x8086, 0x423d, Intel(R) WiMAX/WiFi Link 5150}, + { 0x8086, 0x0082, Intel Centrino Advanced-N 6205 }, + { 0x8086, 0x0083, Intel Centrino Wireless-N 1000 }, + { 0x8086, 0x0084, Intel Centrino Wireless-N 1000 }, + { 0x8086, 0x0085, Intel Centrino Advanced-N 6205 }, + { 0x8086, 0x0087, Intel Centrino Advanced-N + WiMAX 6250 }, + { 0x8086, 0x0089, Intel Centrino Advanced-N + WiMAX 6250 }, + { 0x8086, 0x008a, Intel Centrino Wireless-N 1030 }, + { 0x8086, 0x008b, Intel Centrino Wireless-N 1030 }, + { 0x8086, 0x0090, Intel Centrino Advanced-N 6230 }, + { 0x8086, 0x0091, Intel Centrino Advanced-N 6230 }, + { 0x8086, 0x0885, Intel Centrino Wireless-N + WiMAX 6150 }, + { 0x8086, 0x0886, Intel Centrino Wireless-N + WiMAX 6150 }, + { 0x8086, 0x0896, Intel Centrino Wireless-N 130 }, + { 0x8086, 0x4229, Intel Wireless WiFi Link 4965 }, + { 0x8086, 0x422b, Intel Centrino Ultimate-N 6300 }, + { 0x8086, 0x422c, Intel Centrino Advanced-N 6200 }, + { 0x8086, 0x422d, Intel Wireless WiFi Link 4965 }, + { 0x8086, 0x4230, Intel Wireless WiFi Link 4965 }, + { 0x8086, 0x4232, Intel WiFi Link 5100}, + { 0x8086, 0x4233, Intel Wireless WiFi Link 4965 }, + { 0x8086, 0x4235, Intel Ultimate N WiFi Link 5300 }, + { 0x8086, 0x4236, Intel Ultimate N WiFi Link 5300 }, + { 0x8086, 0x4237, Intel WiFi Link 5100}, + { 0x8086, 0x4238, Intel Centrino Ultimate-N 6300 }, + { 0x8086, 0x4239, Intel Centrino Advanced-N 6200 }, + { 0x8086, 0x423a, Intel WiMAX/WiFi Link 5350 }, + { 0x8086, 0x423b, Intel WiMAX/WiFi Link 5350 }, + { 0x8086, 0x423c, Intel WiMAX/WiFi Link 5150 }, + { 0x8086, 0x423d, Intel WiMAX/WiFi Link 5150 }, { 0, 0, NULL } };
svn commit: r233843 - stable/8/sys/dev/iwn
Author: bschmidt Date: Tue Apr 3 17:08:34 2012 New Revision: 233843 URL: http://svn.freebsd.org/changeset/base/233843 Log: MFC r233571: strip (R) to match manpage and pci_vendors Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Tue Apr 3 17:08:17 2012 (r233842) +++ stable/8/sys/dev/iwn/if_iwn.c Tue Apr 3 17:08:34 2012 (r233843) @@ -79,35 +79,35 @@ struct iwn_ident { }; static const struct iwn_ident iwn_ident_table[] = { - { 0x8086, 0x0082, Intel(R) Centrino(R) Advanced-N 6205 }, - { 0x8086, 0x0083, Intel(R) Centrino(R) Wireless-N 1000 }, - { 0x8086, 0x0084, Intel(R) Centrino(R) Wireless-N 1000 }, - { 0x8086, 0x0085, Intel(R) Centrino(R) Advanced-N 6205 }, - { 0x8086, 0x0087, Intel(R) Centrino(R) Advanced-N + WiMAX 6250 }, - { 0x8086, 0x0089, Intel(R) Centrino(R) Advanced-N + WiMAX 6250 }, - { 0x8086, 0x008a, Intel(R) Centrino(R) Wireless-N 1030 }, - { 0x8086, 0x008b, Intel(R) Centrino(R) Wireless-N 1030 }, - { 0x8086, 0x0090, Intel(R) Centrino(R) Advanced-N 6230 }, - { 0x8086, 0x0091, Intel(R) Centrino(R) Advanced-N 6230 }, - { 0x8086, 0x0885, Intel(R) Centrino(R) Wireless-N + WiMAX 6150 }, - { 0x8086, 0x0886, Intel(R) Centrino(R) Wireless-N + WiMAX 6150 }, - { 0x8086, 0x0896, Intel(R) Centrino(R) Wireless-N 130 }, - { 0x8086, 0x4229, Intel(R) Wireless WiFi Link 4965 }, - { 0x8086, 0x422b, Intel(R) Centrino(R) Ultimate-N 6300 }, - { 0x8086, 0x422c, Intel(R) Centrino(R) Advanced-N 6200 }, - { 0x8086, 0x422d, Intel(R) Wireless WiFi Link 4965 }, - { 0x8086, 0x4230, Intel(R) Wireless WiFi Link 4965 }, - { 0x8086, 0x4232, Intel(R) WiFi Link 5100 }, - { 0x8086, 0x4233, Intel(R) Wireless WiFi Link 4965 }, - { 0x8086, 0x4235, Intel(R) Ultimate N WiFi Link 5300 }, - { 0x8086, 0x4236, Intel(R) Ultimate N WiFi Link 5300 }, - { 0x8086, 0x4237, Intel(R) WiFi Link 5100 }, - { 0x8086, 0x4238, Intel(R) Centrino(R) Ultimate-N 6300 }, - { 0x8086, 0x4239, Intel(R) Centrino(R) Advanced-N 6200 }, - { 0x8086, 0x423a, Intel(R) WiMAX/WiFi Link 5350}, - { 0x8086, 0x423b, Intel(R) WiMAX/WiFi Link 5350}, - { 0x8086, 0x423c, Intel(R) WiMAX/WiFi Link 5150}, - { 0x8086, 0x423d, Intel(R) WiMAX/WiFi Link 5150}, + { 0x8086, 0x0082, Intel Centrino Advanced-N 6205 }, + { 0x8086, 0x0083, Intel Centrino Wireless-N 1000 }, + { 0x8086, 0x0084, Intel Centrino Wireless-N 1000 }, + { 0x8086, 0x0085, Intel Centrino Advanced-N 6205 }, + { 0x8086, 0x0087, Intel Centrino Advanced-N + WiMAX 6250 }, + { 0x8086, 0x0089, Intel Centrino Advanced-N + WiMAX 6250 }, + { 0x8086, 0x008a, Intel Centrino Wireless-N 1030 }, + { 0x8086, 0x008b, Intel Centrino Wireless-N 1030 }, + { 0x8086, 0x0090, Intel Centrino Advanced-N 6230 }, + { 0x8086, 0x0091, Intel Centrino Advanced-N 6230 }, + { 0x8086, 0x0885, Intel Centrino Wireless-N + WiMAX 6150 }, + { 0x8086, 0x0886, Intel Centrino Wireless-N + WiMAX 6150 }, + { 0x8086, 0x0896, Intel Centrino Wireless-N 130 }, + { 0x8086, 0x4229, Intel Wireless WiFi Link 4965 }, + { 0x8086, 0x422b, Intel Centrino Ultimate-N 6300 }, + { 0x8086, 0x422c, Intel Centrino Advanced-N 6200 }, + { 0x8086, 0x422d, Intel Wireless WiFi Link 4965 }, + { 0x8086, 0x4230, Intel Wireless WiFi Link 4965 }, + { 0x8086, 0x4232, Intel WiFi Link 5100}, + { 0x8086, 0x4233, Intel Wireless WiFi Link 4965 }, + { 0x8086, 0x4235, Intel Ultimate N WiFi Link 5300 }, + { 0x8086, 0x4236, Intel Ultimate N WiFi Link 5300 }, + { 0x8086, 0x4237, Intel WiFi Link 5100}, + { 0x8086, 0x4238, Intel Centrino Ultimate-N 6300 }, + { 0x8086, 0x4239, Intel Centrino Advanced-N 6200 }, + { 0x8086, 0x423a, Intel WiMAX/WiFi Link 5350 }, + { 0x8086, 0x423b, Intel WiMAX/WiFi Link 5350 }, + { 0x8086, 0x423c, Intel WiMAX/WiFi Link 5150 }, + { 0x8086, 0x423d, Intel WiMAX/WiFi Link 5150 }, { 0, 0, NULL } };
svn commit: r233845 - head/sys/net80211
Author: bschmidt Date: Tue Apr 3 17:48:42 2012 New Revision: 233845 URL: http://svn.freebsd.org/changeset/base/233845 Log: Add basic HT channel setup to ieee80211_init_channels(), this will be used by at least ral(4). Reviewed by: ray Modified: head/sys/net80211/ieee80211_regdomain.c Modified: head/sys/net80211/ieee80211_regdomain.c == --- head/sys/net80211/ieee80211_regdomain.c Tue Apr 3 17:10:19 2012 (r233844) +++ head/sys/net80211/ieee80211_regdomain.c Tue Apr 3 17:48:42 2012 (r233845) @@ -105,7 +105,12 @@ addchan(struct ieee80211com *ic, int iee c-ic_freq = ieee80211_ieee2mhz(ieee, flags); c-ic_ieee = ieee; c-ic_flags = flags; - c-ic_extieee = 0; + if (flags IEEE80211_CHAN_HT40U) + c-ic_extieee = ieee + 4; + else if (flags IEEE80211_CHAN_HT40D) + c-ic_extieee = ieee - 4; + else + c-ic_extieee = 0; } /* @@ -123,7 +128,8 @@ ieee80211_init_channels(struct ieee80211 /* XXX just do something for now */ ic-ic_nchans = 0; if (isset(bands, IEEE80211_MODE_11B) || - isset(bands, IEEE80211_MODE_11G)) { + isset(bands, IEEE80211_MODE_11G) || + isset(bands, IEEE80211_MODE_11NG)) { int maxchan = 11; if (rd != NULL rd-ecm) maxchan = 14; @@ -132,15 +138,67 @@ ieee80211_init_channels(struct ieee80211 addchan(ic, i, IEEE80211_CHAN_B); if (isset(bands, IEEE80211_MODE_11G)) addchan(ic, i, IEEE80211_CHAN_G); + if (isset(bands, IEEE80211_MODE_11NG)) { + addchan(ic, i, + IEEE80211_CHAN_G | IEEE80211_CHAN_HT20); + } + if ((ic-ic_htcaps IEEE80211_HTCAP_CHWIDTH40) == 0) + continue; + if (i = 7) { + addchan(ic, i, + IEEE80211_CHAN_G | IEEE80211_CHAN_HT40U); + addchan(ic, i + 4, + IEEE80211_CHAN_G | IEEE80211_CHAN_HT40D); + } } } - if (isset(bands, IEEE80211_MODE_11A)) { - for (i = 36; i = 64; i += 4) + if (isset(bands, IEEE80211_MODE_11A) || + isset(bands, IEEE80211_MODE_11NA)) { + for (i = 36; i = 64; i += 4) { addchan(ic, i, IEEE80211_CHAN_A); - for (i = 100; i = 140; i += 4) + if (isset(bands, IEEE80211_MODE_11NA)) { + addchan(ic, i, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT20); + } + if ((ic-ic_htcaps IEEE80211_HTCAP_CHWIDTH40) == 0) + continue; + if ((i % 8) == 4) { + addchan(ic, i, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U); + addchan(ic, i + 4, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D); + } + } + for (i = 100; i = 140; i += 4) { addchan(ic, i, IEEE80211_CHAN_A); - for (i = 149; i = 161; i += 4) + if (isset(bands, IEEE80211_MODE_11NA)) { + addchan(ic, i, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT20); + } + if ((ic-ic_htcaps IEEE80211_HTCAP_CHWIDTH40) == 0) + continue; + if ((i % 8) == 4 i != 140) { + addchan(ic, i, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U); + addchan(ic, i + 4, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D); + } + } + for (i = 149; i = 161; i += 4) { addchan(ic, i, IEEE80211_CHAN_A); + if (isset(bands, IEEE80211_MODE_11NA)) { + addchan(ic, i, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT20); + } + if ((ic-ic_htcaps IEEE80211_HTCAP_CHWIDTH40) == 0) + continue; + if ((i % 8) == 5) { + addchan(ic, i, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U); + addchan(ic, i + 4, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D); +
svn commit: r233735 - stable/9/sbin/ifconfig
Author: bschmidt Date: Sat Mar 31 08:44:27 2012 New Revision: 233735 URL: http://svn.freebsd.org/changeset/base/233735 Log: MFC r233328,r233382: Fix incorrect parameter usage. Submitted by: Monthadar Al Jaberi Modified: stable/9/sbin/ifconfig/ifieee80211.c Directory Properties: stable/9/sbin/ifconfig/ (props changed) Modified: stable/9/sbin/ifconfig/ifieee80211.c == --- stable/9/sbin/ifconfig/ifieee80211.cSat Mar 31 07:10:16 2012 (r233734) +++ stable/9/sbin/ifconfig/ifieee80211.cSat Mar 31 08:44:27 2012 (r233735) @@ -1849,13 +1849,13 @@ DECL_CMD_FUNC(set80211meshttl, val, d) static DECL_CMD_FUNC(set80211meshforward, val, d) { - set80211(s, IEEE80211_IOC_MESH_FWRD, atoi(val), 0, NULL); + set80211(s, IEEE80211_IOC_MESH_FWRD, d, 0, NULL); } static DECL_CMD_FUNC(set80211meshpeering, val, d) { - set80211(s, IEEE80211_IOC_MESH_AP, atoi(val), 0, NULL); + set80211(s, IEEE80211_IOC_MESH_AP, d, 0, NULL); } static ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r233736 - stable/8/sbin/ifconfig
Author: bschmidt Date: Sat Mar 31 08:46:11 2012 New Revision: 233736 URL: http://svn.freebsd.org/changeset/base/233736 Log: MFC r233328,r233382: Fix incorrect parameter usage. Submitted by: Monthadar Al Jaberi Modified: stable/8/sbin/ifconfig/ifieee80211.c Directory Properties: stable/8/sbin/ifconfig/ (props changed) Modified: stable/8/sbin/ifconfig/ifieee80211.c == --- stable/8/sbin/ifconfig/ifieee80211.cSat Mar 31 08:44:27 2012 (r233735) +++ stable/8/sbin/ifconfig/ifieee80211.cSat Mar 31 08:46:11 2012 (r233736) @@ -1856,13 +1856,13 @@ DECL_CMD_FUNC(set80211meshttl, val, d) static DECL_CMD_FUNC(set80211meshforward, val, d) { - set80211(s, IEEE80211_IOC_MESH_FWRD, atoi(val), 0, NULL); + set80211(s, IEEE80211_IOC_MESH_FWRD, d, 0, NULL); } static DECL_CMD_FUNC(set80211meshpeering, val, d) { - set80211(s, IEEE80211_IOC_MESH_AP, atoi(val), 0, NULL); + set80211(s, IEEE80211_IOC_MESH_AP, d, 0, NULL); } static ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r233567 - head/sys/dev/iwn
Author: bschmidt Date: Tue Mar 27 17:45:50 2012 New Revision: 233567 URL: http://svn.freebsd.org/changeset/base/233567 Log: Add support for 6150 series devices. Tested by:Shane Riddle sh4neriddle at yahoo dot com MFC after:1 week Modified: head/sys/dev/iwn/if_iwn.c Modified: head/sys/dev/iwn/if_iwn.c == --- head/sys/dev/iwn/if_iwn.c Tue Mar 27 17:24:51 2012(r233566) +++ head/sys/dev/iwn/if_iwn.c Tue Mar 27 17:45:50 2012(r233567) @@ -89,6 +89,8 @@ static const struct iwn_ident iwn_ident_ { 0x8086, 0x008b, Intel(R) Centrino(R) Wireless-N 1030 }, { 0x8086, 0x0090, Intel(R) Centrino(R) Advanced-N 6230 }, { 0x8086, 0x0091, Intel(R) Centrino(R) Advanced-N 6230 }, + { 0x8086, 0x0885, Intel(R) Centrino(R) Wireless-N + WiMAX 6150 }, + { 0x8086, 0x0886, Intel(R) Centrino(R) Wireless-N + WiMAX 6150 }, { 0x8086, 0x0896, Intel(R) Centrino(R) Wireless-N 130 }, { 0x8086, 0x4229, Intel(R) Wireless WiFi Link 4965 }, { 0x8086, 0x422b, Intel(R) Centrino(R) Ultimate-N 6300 }, ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r233568 - head/share/man/man4
Author: bschmidt Date: Tue Mar 27 18:17:22 2012 New Revision: 233568 URL: http://svn.freebsd.org/changeset/base/233568 Log: Add a list of available devices which matches the names shown by pciconf. While here add 2 missing firmware modules. MFC after:1 week Modified: head/share/man/man4/iwn.4 Modified: head/share/man/man4/iwn.4 == --- head/share/man/man4/iwn.4 Tue Mar 27 17:45:50 2012(r233567) +++ head/share/man/man4/iwn.4 Tue Mar 27 18:17:22 2012(r233568) @@ -25,13 +25,12 @@ .\ .\ $FreeBSD$ .\ -.Dd July 20, 2010 +.Dd March 27, 2012 .Dt IWN 4 .Os .Sh NAME .Nm iwn -.Nd Intel Wireless WiFi Link 4965/1000/5000/5150/5300/6000/6050 -IEEE 802.11n driver +.Nd Intel IEEE 802.11n wireless network driver .Sh SYNOPSIS To compile this driver into the kernel, include the following lines in your @@ -51,6 +50,8 @@ Choose one from: .Cd device iwn5000fw .Cd device iwn5150fw .Cd device iwn6000fw +.Cd device iwn6000g2afw +.Cd device iwn6000g2bfw .Cd device iwn6050fw .Ed .Pp @@ -71,15 +72,32 @@ iwn1000fw_load=YES iwn5000fw_load=YES iwn5150fw_load=YES iwn6000fw_load=YES +iwn6000g2afw_load=YES +iwn6000g2bfw_load=YES iwn6050fw_load=YES .Ed .Sh DESCRIPTION The .Nm -driver provides support for -.Tn Intel -Wireless WiFi Link 4965, 1000, 5000 and 6000 series of -PCI-Express network adapters. +driver provides support for: +.Pp +.Bl -tag -width Ds -offset indent -compact +.It Intel Centrino Advanced-N 6200 +.It Intel Centrino Advanced-N 6205 +.It Intel Centrino Advanced-N 6230 +.It Intel Centrino Advanced-N + WiMAX 6250 +.It Intel Centrino Ultimate-N 6300 +.It Intel Centrino Wireless-N 130 +.It Intel Centrino Wireless-N 1000 +.It Intel Centrino Wireless-N 1030 +.It Intel Centrino Wireless-N + WiMAX 6150 +.It Intel Ultimate N WiFi Link 5300 +.It Intel Wireless WiFi Link 4965 +.It Intel WiFi Link 5100 +.It Intel WiMAX/WiFi Link 5150 +.It Intel WiMAX/WiFi Link 5350 +.El +.Pp .Nm supports .Cm station , ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r233571 - head/sys/dev/iwn
Author: bschmidt Date: Tue Mar 27 18:27:45 2012 New Revision: 233571 URL: http://svn.freebsd.org/changeset/base/233571 Log: strip (R) to match manpage and pci_vendors MFC after:1 week Modified: head/sys/dev/iwn/if_iwn.c Modified: head/sys/dev/iwn/if_iwn.c == --- head/sys/dev/iwn/if_iwn.c Tue Mar 27 18:26:35 2012(r233570) +++ head/sys/dev/iwn/if_iwn.c Tue Mar 27 18:27:45 2012(r233571) @@ -79,35 +79,35 @@ struct iwn_ident { }; static const struct iwn_ident iwn_ident_table[] = { - { 0x8086, 0x0082, Intel(R) Centrino(R) Advanced-N 6205 }, - { 0x8086, 0x0083, Intel(R) Centrino(R) Wireless-N 1000 }, - { 0x8086, 0x0084, Intel(R) Centrino(R) Wireless-N 1000 }, - { 0x8086, 0x0085, Intel(R) Centrino(R) Advanced-N 6205 }, - { 0x8086, 0x0087, Intel(R) Centrino(R) Advanced-N + WiMAX 6250 }, - { 0x8086, 0x0089, Intel(R) Centrino(R) Advanced-N + WiMAX 6250 }, - { 0x8086, 0x008a, Intel(R) Centrino(R) Wireless-N 1030 }, - { 0x8086, 0x008b, Intel(R) Centrino(R) Wireless-N 1030 }, - { 0x8086, 0x0090, Intel(R) Centrino(R) Advanced-N 6230 }, - { 0x8086, 0x0091, Intel(R) Centrino(R) Advanced-N 6230 }, - { 0x8086, 0x0885, Intel(R) Centrino(R) Wireless-N + WiMAX 6150 }, - { 0x8086, 0x0886, Intel(R) Centrino(R) Wireless-N + WiMAX 6150 }, - { 0x8086, 0x0896, Intel(R) Centrino(R) Wireless-N 130 }, - { 0x8086, 0x4229, Intel(R) Wireless WiFi Link 4965 }, - { 0x8086, 0x422b, Intel(R) Centrino(R) Ultimate-N 6300 }, - { 0x8086, 0x422c, Intel(R) Centrino(R) Advanced-N 6200 }, - { 0x8086, 0x422d, Intel(R) Wireless WiFi Link 4965 }, - { 0x8086, 0x4230, Intel(R) Wireless WiFi Link 4965 }, - { 0x8086, 0x4232, Intel(R) WiFi Link 5100 }, - { 0x8086, 0x4233, Intel(R) Wireless WiFi Link 4965 }, - { 0x8086, 0x4235, Intel(R) Ultimate N WiFi Link 5300 }, - { 0x8086, 0x4236, Intel(R) Ultimate N WiFi Link 5300 }, - { 0x8086, 0x4237, Intel(R) WiFi Link 5100 }, - { 0x8086, 0x4238, Intel(R) Centrino(R) Ultimate-N 6300 }, - { 0x8086, 0x4239, Intel(R) Centrino(R) Advanced-N 6200 }, - { 0x8086, 0x423a, Intel(R) WiMAX/WiFi Link 5350}, - { 0x8086, 0x423b, Intel(R) WiMAX/WiFi Link 5350}, - { 0x8086, 0x423c, Intel(R) WiMAX/WiFi Link 5150}, - { 0x8086, 0x423d, Intel(R) WiMAX/WiFi Link 5150}, + { 0x8086, 0x0082, Intel Centrino Advanced-N 6205 }, + { 0x8086, 0x0083, Intel Centrino Wireless-N 1000 }, + { 0x8086, 0x0084, Intel Centrino Wireless-N 1000 }, + { 0x8086, 0x0085, Intel Centrino Advanced-N 6205 }, + { 0x8086, 0x0087, Intel Centrino Advanced-N + WiMAX 6250 }, + { 0x8086, 0x0089, Intel Centrino Advanced-N + WiMAX 6250 }, + { 0x8086, 0x008a, Intel Centrino Wireless-N 1030 }, + { 0x8086, 0x008b, Intel Centrino Wireless-N 1030 }, + { 0x8086, 0x0090, Intel Centrino Advanced-N 6230 }, + { 0x8086, 0x0091, Intel Centrino Advanced-N 6230 }, + { 0x8086, 0x0885, Intel Centrino Wireless-N + WiMAX 6150 }, + { 0x8086, 0x0886, Intel Centrino Wireless-N + WiMAX 6150 }, + { 0x8086, 0x0896, Intel Centrino Wireless-N 130 }, + { 0x8086, 0x4229, Intel Wireless WiFi Link 4965 }, + { 0x8086, 0x422b, Intel Centrino Ultimate-N 6300 }, + { 0x8086, 0x422c, Intel Centrino Advanced-N 6200 }, + { 0x8086, 0x422d, Intel Wireless WiFi Link 4965 }, + { 0x8086, 0x4230, Intel Wireless WiFi Link 4965 }, + { 0x8086, 0x4232, Intel WiFi Link 5100}, + { 0x8086, 0x4233, Intel Wireless WiFi Link 4965 }, + { 0x8086, 0x4235, Intel Ultimate N WiFi Link 5300 }, + { 0x8086, 0x4236, Intel Ultimate N WiFi Link 5300 }, + { 0x8086, 0x4237, Intel WiFi Link 5100}, + { 0x8086, 0x4238, Intel Centrino Ultimate-N 6300 }, + { 0x8086, 0x4239, Intel Centrino Advanced-N 6200 }, + { 0x8086, 0x423a, Intel WiMAX/WiFi Link 5350 }, + { 0x8086, 0x423b, Intel WiMAX/WiFi Link 5350 }, + { 0x8086, 0x423c, Intel WiMAX/WiFi Link 5150 }, + { 0x8086, 0x423d, Intel WiMAX/WiFi Link 5150 }, { 0, 0, NULL } }; ___ svn-src-all@freebsd.org mailing list
svn commit: r233460 - stable/9/sys/dev/usb/wlan
Author: bschmidt Date: Sun Mar 25 10:59:40 2012 New Revision: 233460 URL: http://svn.freebsd.org/changeset/base/233460 Log: MFC r233283: Load the firmware during init not attach, as a root filesystem might not yet be available. While here, also print the firmware version. Submitted by: PseudoCylon Modified: stable/9/sys/dev/usb/wlan/if_run.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/dev/usb/wlan/if_run.c == --- stable/9/sys/dev/usb/wlan/if_run.c Sun Mar 25 09:23:10 2012 (r233459) +++ stable/9/sys/dev/usb/wlan/if_run.c Sun Mar 25 10:59:40 2012 (r233460) @@ -600,12 +600,6 @@ run_attach(device_t self) sc-mac_ver, sc-mac_rev, run_get_rf(sc-rf_rev), sc-ntxchains, sc-nrxchains, ether_sprintf(sc-sc_bssid)); - if ((error = run_load_microcode(sc)) != 0) { - device_printf(sc-sc_dev, could not load 8051 microcode\n); - RUN_UNLOCK(sc); - goto detach; - } - RUN_UNLOCK(sc); ifp = sc-sc_ifp = if_alloc(IFT_IEEE80211); @@ -1050,8 +1044,9 @@ run_load_microcode(struct run_softc *sc) error = ETIMEDOUT; goto fail; } - device_printf(sc-sc_dev, firmware %s loaded\n, - (base == fw-data) ? RT2870 : RT3071); + device_printf(sc-sc_dev, firmware %s ver. %u.%u loaded\n, + (base == fw-data) ? RT2870 : RT3071, + *(base + 4092), *(base + 4093)); fail: firmware_put(fw, FIRMWARE_UNLOAD); @@ -4677,6 +4672,11 @@ run_init_locked(struct run_softc *sc) run_stop(sc); + if (run_load_microcode(sc) != 0) { + device_printf(sc-sc_dev, could not load 8051 microcode\n); + goto fail; + } + for (ntries = 0; ntries 100; ntries++) { if (run_read(sc, RT2860_ASIC_VER_ID, tmp) != 0) goto fail; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r233461 - stable/8/sys/dev/usb/wlan
Author: bschmidt Date: Sun Mar 25 11:42:59 2012 New Revision: 233461 URL: http://svn.freebsd.org/changeset/base/233461 Log: MFC r233283: Load the firmware during init not attach, as a root filesystem might not yet be available. While here, also print the firmware version. Submitted by: PseudoCylon Modified: stable/8/sys/dev/usb/wlan/if_run.c Directory Properties: stable/8/sys/ (props changed) Modified: stable/8/sys/dev/usb/wlan/if_run.c == --- stable/8/sys/dev/usb/wlan/if_run.c Sun Mar 25 10:59:40 2012 (r233460) +++ stable/8/sys/dev/usb/wlan/if_run.c Sun Mar 25 11:42:59 2012 (r233461) @@ -598,12 +598,6 @@ run_attach(device_t self) sc-mac_ver, sc-mac_rev, run_get_rf(sc-rf_rev), sc-ntxchains, sc-nrxchains, ether_sprintf(sc-sc_bssid)); - if ((error = run_load_microcode(sc)) != 0) { - device_printf(sc-sc_dev, could not load 8051 microcode\n); - RUN_UNLOCK(sc); - goto detach; - } - RUN_UNLOCK(sc); ifp = sc-sc_ifp = if_alloc(IFT_IEEE80211); @@ -1044,8 +1038,9 @@ run_load_microcode(struct run_softc *sc) error = ETIMEDOUT; goto fail; } - device_printf(sc-sc_dev, firmware %s loaded\n, - (base == fw-data) ? RT2870 : RT3071); + device_printf(sc-sc_dev, firmware %s ver. %u.%u loaded\n, + (base == fw-data) ? RT2870 : RT3071, + *(base + 4092), *(base + 4093)); fail: firmware_put(fw, FIRMWARE_UNLOAD); @@ -4598,6 +4593,11 @@ run_init_locked(struct run_softc *sc) run_stop(sc); + if (run_load_microcode(sc) != 0) { + device_printf(sc-sc_dev, could not load 8051 microcode\n); + goto fail; + } + for (ntries = 0; ntries 100; ntries++) { if (run_read(sc, RT2860_ASIC_VER_ID, tmp) != 0) goto fail; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r233382 - head/sbin/ifconfig
Author: bschmidt Date: Fri Mar 23 18:12:25 2012 New Revision: 233382 URL: http://svn.freebsd.org/changeset/base/233382 Log: Also fix the parameter usage in set80211meshpeering(). Submitted by: Monthadar Al Jaberi MFC after:1 week X-MFC after: r233328 Modified: head/sbin/ifconfig/ifieee80211.c Modified: head/sbin/ifconfig/ifieee80211.c == --- head/sbin/ifconfig/ifieee80211.cFri Mar 23 18:07:12 2012 (r233381) +++ head/sbin/ifconfig/ifieee80211.cFri Mar 23 18:12:25 2012 (r233382) @@ -1885,7 +1885,7 @@ DECL_CMD_FUNC(set80211meshforward, val, static DECL_CMD_FUNC(set80211meshpeering, val, d) { - set80211(s, IEEE80211_IOC_MESH_AP, atoi(val), 0, NULL); + set80211(s, IEEE80211_IOC_MESH_AP, d, 0, NULL); } static ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r233387 - in head/sys/dev: ipw iwi iwn wpi
Author: bschmidt Date: Fri Mar 23 19:32:30 2012 New Revision: 233387 URL: http://svn.freebsd.org/changeset/base/233387 Log: Use suspend/resume methods provided by net80211. This ensures that the appropriate state handling takes place, not doing so results in the device doing nothing until manual intervention. Reviewed by: iwasaki Tested by:iwasaki (iwi) MFC after:4 weeks Modified: head/sys/dev/ipw/if_ipw.c head/sys/dev/iwi/if_iwi.c head/sys/dev/iwn/if_iwn.c head/sys/dev/wpi/if_wpi.c Modified: head/sys/dev/ipw/if_ipw.c == --- head/sys/dev/ipw/if_ipw.c Fri Mar 23 18:29:28 2012(r233386) +++ head/sys/dev/ipw/if_ipw.c Fri Mar 23 19:32:30 2012(r233387) @@ -835,9 +835,9 @@ static int ipw_suspend(device_t dev) { struct ipw_softc *sc = device_get_softc(dev); + struct ieee80211com *ic = sc-sc_ifp-if_l2com; - ipw_stop(sc); - + ieee80211_suspend_all(ic); return 0; } @@ -845,13 +845,11 @@ static int ipw_resume(device_t dev) { struct ipw_softc *sc = device_get_softc(dev); - struct ifnet *ifp = sc-sc_ifp; + struct ieee80211com *ic = sc-sc_ifp-if_l2com; pci_write_config(dev, 0x41, 0, 1); - if (ifp-if_flags IFF_UP) - ipw_init(sc); - + ieee80211_resume_all(ic); return 0; } Modified: head/sys/dev/iwi/if_iwi.c == --- head/sys/dev/iwi/if_iwi.c Fri Mar 23 18:29:28 2012(r233386) +++ head/sys/dev/iwi/if_iwi.c Fri Mar 23 19:32:30 2012(r233387) @@ -863,9 +863,9 @@ static int iwi_suspend(device_t dev) { struct iwi_softc *sc = device_get_softc(dev); + struct ieee80211com *ic = sc-sc_ifp-if_l2com; - iwi_stop(sc); - + ieee80211_suspend_all(ic); return 0; } @@ -873,13 +873,11 @@ static int iwi_resume(device_t dev) { struct iwi_softc *sc = device_get_softc(dev); - struct ifnet *ifp = sc-sc_ifp; + struct ieee80211com *ic = sc-sc_ifp-if_l2com; pci_write_config(dev, 0x41, 0, 1); - if (ifp-if_flags IFF_UP) - iwi_init(sc); - + ieee80211_resume_all(ic); return 0; } Modified: head/sys/dev/iwn/if_iwn.c == --- head/sys/dev/iwn/if_iwn.c Fri Mar 23 18:29:28 2012(r233386) +++ head/sys/dev/iwn/if_iwn.c Fri Mar 23 19:32:30 2012(r233387) @@ -945,13 +945,9 @@ static int iwn_suspend(device_t dev) { struct iwn_softc *sc = device_get_softc(dev); - struct ifnet *ifp = sc-sc_ifp; - struct ieee80211com *ic = ifp-if_l2com; - struct ieee80211vap *vap = TAILQ_FIRST(ic-ic_vaps); + struct ieee80211com *ic = sc-sc_ifp-if_l2com; - iwn_stop(sc); - if (vap != NULL) - ieee80211_stop(vap); + ieee80211_suspend_all(ic); return 0; } @@ -959,20 +955,12 @@ static int iwn_resume(device_t dev) { struct iwn_softc *sc = device_get_softc(dev); - struct ifnet *ifp = sc-sc_ifp; - struct ieee80211com *ic = ifp-if_l2com; - struct ieee80211vap *vap = TAILQ_FIRST(ic-ic_vaps); + struct ieee80211com *ic = sc-sc_ifp-if_l2com; /* Clear device-specific PCI retry timeout register (41h). */ pci_write_config(dev, 0x41, 0, 1); - if (ifp-if_flags IFF_UP) { - iwn_init(sc); - if (vap != NULL) - ieee80211_init(vap); - if (ifp-if_drv_flags IFF_DRV_RUNNING) - iwn_start(ifp); - } + ieee80211_resume_all(ic); return 0; } Modified: head/sys/dev/wpi/if_wpi.c == --- head/sys/dev/wpi/if_wpi.c Fri Mar 23 18:29:28 2012(r233386) +++ head/sys/dev/wpi/if_wpi.c Fri Mar 23 19:32:30 2012(r233387) @@ -1218,8 +1218,9 @@ static int wpi_suspend(device_t dev) { struct wpi_softc *sc = device_get_softc(dev); + struct ieee80211com *ic = sc-sc_ifp-if_l2com; - wpi_stop(sc); + ieee80211_suspend_all(ic); return 0; } @@ -1227,15 +1228,11 @@ static int wpi_resume(device_t dev) { struct wpi_softc *sc = device_get_softc(dev); - struct ifnet *ifp = sc-sc_ifp; + struct ieee80211com *ic = sc-sc_ifp-if_l2com; pci_write_config(dev, 0x41, 0, 1); - if (ifp-if_flags IFF_UP) { - wpi_init(ifp-if_softc); - if (ifp-if_drv_flags IFF_DRV_RUNNING) - wpi_start(ifp); - } + ieee80211_resume_all(ic); return 0; } ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to
svn commit: r233283 - head/sys/dev/usb/wlan
Author: bschmidt Date: Wed Mar 21 19:08:44 2012 New Revision: 233283 URL: http://svn.freebsd.org/changeset/base/233283 Log: Load the firmware during init not attach, as a root filesystem might not yet be available. While here, also print the firmware version. Submitted by: PseudoCylon MFC after:3 days Modified: head/sys/dev/usb/wlan/if_run.c Modified: head/sys/dev/usb/wlan/if_run.c == --- head/sys/dev/usb/wlan/if_run.c Wed Mar 21 16:59:39 2012 (r233282) +++ head/sys/dev/usb/wlan/if_run.c Wed Mar 21 19:08:44 2012 (r233283) @@ -600,12 +600,6 @@ run_attach(device_t self) sc-mac_ver, sc-mac_rev, run_get_rf(sc-rf_rev), sc-ntxchains, sc-nrxchains, ether_sprintf(sc-sc_bssid)); - if ((error = run_load_microcode(sc)) != 0) { - device_printf(sc-sc_dev, could not load 8051 microcode\n); - RUN_UNLOCK(sc); - goto detach; - } - RUN_UNLOCK(sc); ifp = sc-sc_ifp = if_alloc(IFT_IEEE80211); @@ -1050,8 +1044,9 @@ run_load_microcode(struct run_softc *sc) error = ETIMEDOUT; goto fail; } - device_printf(sc-sc_dev, firmware %s loaded\n, - (base == fw-data) ? RT2870 : RT3071); + device_printf(sc-sc_dev, firmware %s ver. %u.%u loaded\n, + (base == fw-data) ? RT2870 : RT3071, + *(base + 4092), *(base + 4093)); fail: firmware_put(fw, FIRMWARE_UNLOAD); @@ -4677,6 +4672,11 @@ run_init_locked(struct run_softc *sc) run_stop(sc); + if (run_load_microcode(sc) != 0) { + device_printf(sc-sc_dev, could not load 8051 microcode\n); + goto fail; + } + for (ntries = 0; ntries 100; ntries++) { if (run_read(sc, RT2860_ASIC_VER_ID, tmp) != 0) goto fail; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r233284 - head/sys/contrib/dev/run
Author: bschmidt Date: Wed Mar 21 19:09:52 2012 New Revision: 233284 URL: http://svn.freebsd.org/changeset/base/233284 Log: Update the firmware to version 0.236 Submitted by: PseudoCylon MFC after:2 weeks Modified: head/sys/contrib/dev/run/rt2870.fw.uu Modified: head/sys/contrib/dev/run/rt2870.fw.uu == --- head/sys/contrib/dev/run/rt2870.fw.uu Wed Mar 21 19:08:44 2012 (r233283) +++ head/sys/contrib/dev/run/rt2870.fw.uu Wed Mar 21 19:09:52 2012 (r233284) @@ -39,70 +39,77 @@ # DAMAGE. # # This file contains two 4KB firmware, first half is RT2870 and last half -# is RT3071. On each 4KB firmware, 3rd last byte is major version number and -# 2nd last byte is minor version number. +# is RT3071. On each 4KB firmware, the last 2 bytes are CRC, 3rd last byte +# is minor version number and 4th last byte is major version number. # This file comes with -# RT2870 v. 0.17 -# RT3071 v. 0.17 +# RT2870 v. 0.236 +# RT3071 v. 0.236 begin 644 rt2870.fw.uu -M`A`H`A`R`A!X`A,J`A,K`A-*`A-/$A-+(@(7N0(8\`(42`(3@S`%!B`- -M`Q(9R*0`8S@,.,;Y4PPX`1_0(`?P0$_O\)`!C'0(\.20`:?PD`,X##@ -M')`!@.T`A6CX+0!$)`!A.T@0F0`8QT`?`2#@BD`04X#G`P(3*9!P$N#U -M5I`$!.`2IT0V3$0O381`E`1.5$10E(10E,10E01@U41TE82,'`26W$2B7(2 -MX',3`8```!,ID'`1X/4\Y)!P$_0!!1T@/#E5O1P`P(3*0(3(B``S`#'7T -MKU82Y0!!1T@/#DD'`3\.56]'`#`A,I`A,BA59!T@(BD'`0X%1__[\*#9!P -M$T`9U3@%U3X20!#@5'__OP(2D'`1X0(8`3@M`=4X#=4\@Y/4G(I!P -M$`D_Y)'(I`$!.`EX1=]50!#@_W1')5?XQN_D'`1X/]T257^,;OQN3] -MKU82Y0!!1T@/#DD'`3\.56]'`#`A,I`A,BY4=D!V`=Y4=D`7Y4=D6`1 -MY4=DF`+Y4=DV`%Y4T#`B0!'@5`_U.N5'M`D(Y3JT`P/D]4;E1[0*.4Z -MM`$#Y/5Y/VO5A(+D=($(I!P$#T_Y!P$.!?_Y!P$!5)T^0!CPD'`1X)!P -M?#D_:]6$@N1,!4$TA2`)I!P.#U)Y`*#_D'`9X/[O7I`*?`P1P2O)X`$ -MY2?T_Y`*._PY5;T`,$RD$R*0!#@_I!P$#][?CF]5?]KU82Y0!!1T -M@/#DD'`3\.56]'`#`A,I`A,BD'`0X/Z0!'@_WU@HZ#X/57_:]6$@N1D`04 -M=(#PY)!P$_#E5O1P`P(3*0(3(I`0`.#U5Y`0`N#U6*/@]5GE6+1P'N59M#`9 -MD`4(X$0!\/V0!07@5/OP1`3P[53^D`4(\.3U3O5/=3K_=3S_K5O5A(+D9`$ -M%'2`\.20!/PY5;T8$N`0I!P$.`D_Y*3Y/VO5A(+D9`$%'2`\.20!/PY5;T -M8J`(9!P$.`D_Y)*T@6M5Z]6$@N1D`04=(#PY)!P$_#E5O1@!Y!P)!$`?`B -M(N53!HP8`FR33!-!`5P@3E3T5.8`CE3Q5/`(53B(BPD+3(C`4,)!P!5 -M)_^0!C@3_4GD`(IX/^0!G@_N]D`(I\#!'!*\G@`3E)_3_D`(H[_#%+ -M2\),Y402IT3I0`4,P04+P@4#Q`3N2`3V6`3ZJ```!0UA4A#A4IA4QY4=D -M!F`#`A0U@!OE2,14#_5#Y4K$5`_U0N5,Q%0/]5[E1V0%30P^`7(5)0X5+ -M0H5-7N5'9`9P38`;Y4G$5`_U0^5+Q%0/]4+E314#_5Y4=D!G`PY4-4#T00 -M]4.`)N5'9`1@!5'M`40UX$=4()Y4T!A#E0U0/1##U0X`TDN``M),Y/4E -MY4+$5/#_Y4-4#T_U7])@(M(5Y4D]6`+),M@!R1``;%2(2%X02%K%*O -MP@32KR+KY`$%.!4#F`$TAB`.5.14\D_Y(8TJ^0!!3@HN2270\.5?5`_U -M+4E!,P`7E7R#ES`95?5##_OS`1Y25P!74E#(`%272;-)M@`_E7S#F -M!L)LTFV`!-)LPFWE1V0#$P2P;;-)M@!CE)7`#,$P1PDSE)7`%=24'@`(5 -M)=)LTFWE1[0)%.5$(.,+Y3ID`F`%Y3JT`P3;-)MY4TA/E.K0!!L)LTFV` -M.4Z`32;,)M(D'Y5X@X`*R:!K!^5(.$LFH@;0?E7B#B`K)L=2Y`(D$ -MHFB`)C!H!N5HN*`'5(.($?P``G\`Y494\/Z^\`1^`8`?@#N;R3_DG.2 -MB!K!*)J@8P:@;E1J+B@!WE7B#@!'\!@`)_`.55/#^OO`$?@``GX`[F\D -M_Y)UDG0@;02B;(`FY4=DG`B,PY4:BXX`7Y3JT`0;E1J+C@#3E1B#D`S#E -M`].``.`)C!L!N5HN*`'5(.$$?P``G\`Y494\/Z^\`1^`8`?@#N;R3_ -MDG2)`0`.0$SPD!`#X,.4,$`4HG2=Z)PDG;E+A,35#_U+L)WTG:0$_E -M+O#E1V0#F0`BG@5/[PY4/$5`\48`PD_F`,)`-P$\(X@`_2.(`+Y48PX@/3 -M@`'#DC@P1P6O)P(7?N4G]/\%W[E1V0'8`_E1V0(8`GE1V0)8`,%OV0`BG@ -M5/SPY3H48(48448TD_!))/E@%0.%#E1A,35#]U\`.$Y?`D_X`ZTCG -M.(`^Y48PX@/3@!W#@!KE1C#B#50XPY0P4`9^`'\!@`1^`'\`[D\D_Y(XPCF` -M$^5,.(#TX`!PY(YPCB`!,(XPCDP1P2O)X`$Y2?T_P(7?N5'9`Q@!N5'9`MP -MI`*!4_?#E.A1@(!1@(11@*R3\8$4D^6`2)`YP2N5$Q-4/W7P`X3E\(`I -MTCF`.N5,.(#TX`!PY(Y@WE1C#B#50XPY0P4`9^`'\!@`1^`'\`[D\D_Y(Y -M@`_E1C#B`].``.2.8`PCDP1P2O)X`$Y2?T_Y`*._P(N5'M`L0D`(IX%3K -M\.4G5.M%1?4G(N20`BGP,$$KT6`!.5%]/^0`BCO\*/4-)9(H]4TE@BY/5B -MPJ_E411@2!1@9B08`,-326755`9`HN!4?_CX#G(Y`$-.T`ARCX+0 -M%Z/@M`(2?R`2%Z^0$`3@5//P=5$!`AC4Y5!P!G5B`P(8U)`2`.!4`W`2?R`2 -M%Z^0`J+@5+_P=5$`AC4Y5!P`P(8SY`H^`PY@,,N0!#?@9)@`P(8RY`! -MBG1^\)`!EO0$@1TO#E6+1R%59M#40Y)`%`/C=`CPHW0!\'0#\'\!$@TJ -MD!,HX)!PO0$RG@D'`;\)`3*.!4\/CX%3P\.59M#44Y3ST8`:CX%3S@!20 -M$RK@5/OP@!3E//20$RI@.!4\D4\\(`$X%3Z\)`$`!4_?!U8@%U50+D]5` -M50`5U8@/U45B8!7`3U4)9K6*O0!(9E.5BM`,T@/2KR+KS`!$N20 -M`9;P]5'6(!?0*O0!(9E.52%`,!`#`AF1=5(!=54#D`0!X$0.\)!PN0 -M$RCPD'`;X)`3*?#E//1@.4\1`C\(`D!,J=`7PD!($=`/PY5BTA;E6;0U -M$9`%`'3B\*-T/C=`'P=`/P?P$2#2J0`J+@1,#PD!`$X$0,\.3U4O55,`() -MP@)]`:]!$AF4,`,P@/DD`6\-*O(N_T8WD_G04+O6Y#1P]8/@M/\9=!0N -M]8+D-'#U@^_P=!PN]8+D-'#U@^WP(@Z^!-4B(B*0K@,.%-PJ^0C@D!` -M\)!P*0$!WPD'`JX)`0'O0$!S@]6*0$![@(.'SD!`X)!P*/0$!W@D'`I -M\)`0'N0KP,$H'D'`DX$0!\,(%TJ\B(B(` +M`A`H`A`R`A!]`A.[`A.\`A/;`A/@$A/(@(8V@(:@(5/`(4=S`%!B`- +M`Q(:_R*0`8S@,.,@Y5@PX!#E3##@!']`@`)_`)`0+^_PD`,=`CPY)`!I_0 +M`8S@,.`D``X+0%:/@M`$0D`$X+2!9`!C'0!\!(-R*0!!3@(.#`A.Z +MD'`2X/56D`0$X!(*G1#A,1#%-A$*4!%!41%*4A%*4Q%*5!+51':5A(X!)C +M1*1A,\Q-=@!.`D```$[J0!'@]3SDD'`3\)`$%'2`\.56]'`#`A.Z`A.S +M(`(#,`,=?0*O5A(+D9`$%'2`\.20!/PY5;T`,$[H$[.%5D'2`B*0!#@ +M5'__OPH-D'`1X+0(!G5.`75/A)!P$.!4?_^_`A*0!'@9`A@!.T(`9U3@-U +M3R#D]2BD'`1X3_DDBD`0$X7@)%WU5Y!P$.#_=$E5_C[\:0!'@_W1(
svn commit: r232946 - in head/sys: contrib/dev/ral modules/ralfw modules/ralfw/rt2860
Author: bschmidt Date: Tue Mar 13 21:25:25 2012 New Revision: 232946 URL: http://svn.freebsd.org/changeset/base/232946 Log: Update the rt2860's firmware and add a Makefile for the module. While here remove the ucode header file which was used to generate the fw files but by now is outdated. Reviewed by: ray Obtained from:OpenBSD Added: head/sys/modules/ralfw/rt2860/ head/sys/modules/ralfw/rt2860/Makefile (contents, props changed) Deleted: head/sys/contrib/dev/ral/rt2661_ucode.h Modified: head/sys/contrib/dev/ral/rt2860.fw.uu head/sys/modules/ralfw/Makefile Modified: head/sys/contrib/dev/ral/rt2860.fw.uu == --- head/sys/contrib/dev/ral/rt2860.fw.uu Tue Mar 13 20:37:57 2012 (r232945) +++ head/sys/contrib/dev/ral/rt2860.fw.uu Tue Mar 13 21:25:25 2012 (r232946) @@ -15,30 +15,27 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. begin 644 rt2860.fw -M`@#B`@+L(B+___\`;W__P(`'O__`@%NP.#`\,#P(+`T'70,*O -M,$4#$A`)D`06X##C#70(\.558`9D`V`T@.0!!3@(.#`@#5=(#PD'`2X/4V -MD`0$X3/8#`48$(DXF!'%!5)%P8.55)/Y@!Q1@0`A]`8`H?0*`))!P -M$.#U4(4V0-(!@#[E560#8`3E57`$?0*`84V0=(@FM5:\V$@+(@0!#@ -M]40!'@]402$6`!I!P$.#U13]KS82`LC2!)!P$^3PTJ_0T-T(/0\-#@ -M,GA_Y/;8_76!?0(!*0(^23H_CDDZ-``_:``?((W_2`*23H_A4!R0,R,,S -MQ%0/1#(@T`$]%:``4;VW^2`P$!`@0($`D`.:Y'X!DV\H_]4/S#E50? -M_N23HV`!#L]4P7@8*A`N.23H_KDDZ/XY).CR,6R,K%@\KPH\C%@LC*Q8/* -MW^GYX^P.#`\,#P(+`T.C`X.G`X.K`X.O`X.S`X.W`X.[`X._`X,*O,$4# -M$A`2TJ_0X/_0X/[0X/W0X/S0X/O0X/K0X/G0X/C0T-T(/0\-#@,L#@P/#` -M@\P-!UT!#KS!%`Q(0##!8N548`055(`PE@P60KE4`$%5``L)9U5,' -M,`$%4;2!#!%`Q(0#\*-TJ_0T-T(/0\-#@,A(##C!%`Q(0`S`!!B`)`Q(0 -M'#`!B`*`Q(0'S`#!B`+`Q(0'S`$!B`,`Q(0(B`32`1!N4K12Q@`].``.2 -MJ1(#/H_T(/0@OCDDW`2=`3`VCHY/X=`3]8*(@^1S=`*3:#OHZ.C@-^* -M@XFY'/([\CF^@CF2F`,R._(.86'`!%L,B[23__PT_\COR/8(QNWTR+ -M0])%Y/4@]2'U4_5]2OU+,)]5'U4O55D`08=(#PD`0:=`CP(N_T8!_D_A(# -M?T_Q(2`WWO\'0+O6Y#1P]8/M\(.O@3C(L#@P/#`@\P-!UT`CKS!% -M`Q(0!M*OT-#0@M#T/#0X#+KQ(`!A(HA(#)^3U(O5'D`0`=(#PTJ\B=8D -MY/6,]8KUB/6X]AUD!C2C'6H!2(P10,2$!7E('`#(!`#,!$#0X!(L[OSNY@ -M'__$@.3'H#U(LCOR.9@`Q;#(NT4]M,BR._(YF`%N8D_[,BPR)T%[U@N0T -M/6#(N^0`Y3D`0`PH8[V`#'X#Z(@$[`,N`/__ +M`@-;`@*F(B+___\`2S__P(`'O__`@#=P.#`\,#P(+`T'70,*O +M,$4#$A`)D`06X##C`W0(\)`$%.`@YP,`,MT@/0!+@]3:0!`3@),]@,!1@ +M0B3B8$48%4D(7!@Y54D_F`'%`()`)P'T!@A]`H`DD'`0X/50A39`T@` +M/N559`-@!.55`1]`H`)A39!T@*`*:U5KS82`H*`()!P$.#U1Y!P$#U1!(0 +M)8`D'`0X/5%Y/VO-A(@M($D'`3Y/0!/D\-*OT-#0@M#T/#0X#+`X,#P +MP(/`@L#0Z,#@Z#@ZL#@Z\#@[,#@[#@[L#@[\#@PJ\P10,2$!+2K]#@_]#@ +M_M#@_=#@_-#@^]#@^M#@^=#@^-#0T(+0@]#PT.`RP.#`\,#P(+`T'70$,*O +M,$4#$A`,,%@*Y51@!!54@`+6#!9N508`054(`PEG54PP8`051M($,$4# +M$A`/PHW2K]#0T(+0@]#PT.`RD'`JX##A0\*OD'`HX)`0'/0G@D!`=\)!P +M*N0$![PD!`X/4WD!`X#A\Y`0'.0CPD!`=X)!P*?0$![@D'`J\,(% +MTJ\B$@+(,$4#$A`#,`$(`D#$A`,`((`H#$A`?,`,(`L#$A`?,`0(`P# +M$A`B(!,)(!$Y2M%+`#TX`!PY*I$@,@+_0])%Y/4@]2'U4_5]2OU+,) +M]5'U4O55D`08=(#PD`0:=`CPPAK,(;(LCOR.;Z.9*8`S([\@(YA88`$6 +MPR+M)/_][#3_R._(]@C[;3(M#T(+XY)-P$G0!DW`-HZ.3^'0!D_6B(/D +MW0DVA@[Z.CHX#?[_1@'^3^$@-GX+3_$A(#9^_P=!PN]8+D-'#U@^WP(@Z^ +M!.,BP.#`\,#P(+`T'70,*O,$4#$A`TJ_0T-T(/0\-#@,L*O$@`$@() +M$@+AY/4B]40!`!T@/#2KR)UB0+D]8SUBO6(];CUZ'60-*,=:@%(N]@`Q^` +M^B+_P9T`\#@P(+`@W4FB+`)G0#P.#`@L#=288(C!%`Q(0%4@`,@$`,P +M$0-#AP$BSN_.[F`(?_\2`O@@/4BR._(YF`#%L,B[13VTR+([\CF8`86YB3_ +MLR+#(GA_Y/;8_76!7P(!Q704+O6Y#1P]8,B[Y`#Y.0`P!SAC_ M -M_\`F=`3`X,P(-U -M)@HBP9T!,#@P(+`@W4F+_ M M M @@ -106,81 +103,84 @@ M___ M M M -M_P(0*`(01`(010(2J0(2J@(310(31L,B__\%4@%AX$_T$TP!08@ -M#0,2%ILP!@8@#@,2+TP!P8@#P,2/XB(I`$%.`@YP,$IR0!+@]5:0!`3@ -M$@)/$(Q$+)1$+U2$+U3$+U4$7%@$/YA$;]B$/YC$AP$A)Q$CQR$FZ2 -MG``S`#'7TKU82`LB0!!1T@/#DD'`3\.56]'`#`A*`A*/A59!T@($IR0 -M!'@)/^21P(2G)`$!.`EX1=]50!#@_W1')5?XQN_D'`1X/]T257^,;O -MQN3]KU82`LB0!!1T@/#DD'`3\.56]'`#`A*`A*/D'`1X%0?]6+@5(#U9)!P -M$.#_?@0!`3@M$$?0``GT'[\CMR`B`!,SSC/.V/GU88Y@D'`1X%1@)/^2 -M+!48,035`4]6-U98!U9B-U9P9U:!AU:16M5Z]6$@+(D`04=(#PY)!P$_#E -M5O1P`P(2G`(2CY!P$!4'_5ND'`0X/5KD'`1X%1@)/^2+.!48,035`4]6]U -M4!UB1UP5U=!=U=M5Z]6$@+(D`04=(#PY)!P$_#E5O1P`P(2G`(2CY!P -M$.!@!-(:@`+2(JU7KU82`LB0!!1T@/#DD'`3\.56]'`#`A*`A*/D'`0X/Z0 -M!'@_WXYO57_:]6$@+(D`04=(#PY)!P$_#E5O1P`P(2G(!]D'`0X/Z0!'@ -M_WU@HZ#X/57_:]6$@+(D`04=(#PY)!P$_#E5O1@8H!3Y/5Z=7L!]6K+?4C -M]3O2+O5WPBSU)'5V*U7KU82`LB0!!1T@/#DD'`3\.56]`P@0!#@)/^2
svn commit: r231143 - stable/9/sys/dev/iwn
Author: bschmidt Date: Tue Feb 7 18:05:10 2012 New Revision: 231143 URL: http://svn.freebsd.org/changeset/base/231143 Log: MFC r230620: On state changes from RUN to anything else the AGGR sessions are cleared/dropped leading to qid2tap[n] being NULL as there no longer is a tap. Now, if there have been lots of frames queued the firmware processes and returns those after the tap is gone. Modified: stable/9/sys/dev/iwn/if_iwn.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/dev/iwn/if_iwn.c == --- stable/9/sys/dev/iwn/if_iwn.c Tue Feb 7 17:57:59 2012 (r231142) +++ stable/9/sys/dev/iwn/if_iwn.c Tue Feb 7 18:05:10 2012 (r231143) @@ -2813,11 +2813,13 @@ iwn_ampdu_tx_done(struct iwn_softc *sc, bitmap |= 1ULL bit; } tap = sc-qid2tap[qid]; - tid = WME_AC_TO_TID(tap-txa_ac); - wn = (void *)tap-txa_ni; - wn-agg[tid].bitmap = bitmap; - wn-agg[tid].startidx = start; - wn-agg[tid].nframes = nframes; + if (tap != NULL) { + tid = WME_AC_TO_TID(tap-txa_ac); + wn = (void *)tap-txa_ni; + wn-agg[tid].bitmap = bitmap; + wn-agg[tid].startidx = start; + wn-agg[tid].nframes = nframes; + } seqno = le32toh(*(status + nframes)) 0xfff; for (lastidx = (seqno 0xff); ring-read != lastidx;) { ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r230618 - stable/9/sys/dev/iwn
Author: bschmidt Date: Fri Jan 27 17:29:59 2012 New Revision: 230618 URL: http://svn.freebsd.org/changeset/base/230618 Log: MFC r229375: Don't rely on MCS7 being at index 7 while determining the amount of antennas to use. Not all APs enable all MCS rates. Modified: stable/9/sys/dev/iwn/if_iwn.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/dev/iwn/if_iwn.c == --- stable/9/sys/dev/iwn/if_iwn.c Fri Jan 27 17:16:44 2012 (r230617) +++ stable/9/sys/dev/iwn/if_iwn.c Fri Jan 27 17:29:59 2012 (r230618) @@ -2128,7 +2128,7 @@ iwn_newassoc(struct ieee80211_node *ni, plcp |= IWN_RFLAG_SGI; } else if (ni-ni_htcap IEEE80211_HTCAP_SHORTGI20) plcp |= IWN_RFLAG_SGI; - if (i 7) + if (RV(ni-ni_htrates.rs_rates[i]) 7) plcp |= IWN_RFLAG_ANT(txant1 | txant2); else plcp |= IWN_RFLAG_ANT(txant1); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r230619 - stable/9/sys/net80211
Author: bschmidt Date: Fri Jan 27 17:32:50 2012 New Revision: 230619 URL: http://svn.freebsd.org/changeset/base/230619 Log: MFC r229284: MCS32 equals 32, not 8*ic_txstream. Modified: stable/9/sys/net80211/ieee80211_ht.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/net80211/ieee80211_ht.c == --- stable/9/sys/net80211/ieee80211_ht.cFri Jan 27 17:29:59 2012 (r230618) +++ stable/9/sys/net80211/ieee80211_ht.cFri Jan 27 17:32:50 2012 (r230619) @@ -432,7 +432,7 @@ ieee80211_get_suphtrates(struct ieee8021 ADDRATE(i); if ((ic-ic_htcaps IEEE80211_HTCAP_CHWIDTH40) (ic-ic_htcaps IEEE80211_HTC_TXMCS32)) - ADDRATE(i); + ADDRATE(32); if (ic-ic_htcaps IEEE80211_HTC_TXUNEQUAL) { if (ic-ic_txstream = 2) { for (i = 33; i = 38; i++) ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r229375 - head/sys/dev/iwn
Author: bschmidt Date: Tue Jan 3 09:42:31 2012 New Revision: 229375 URL: http://svn.freebsd.org/changeset/base/229375 Log: Don't rely on MCS7 being at index 7 while determining the amount of antennas to use. Not all APs enable all MCS rates. Poked by: Lucius Windschuh lwindschuh at googlemail dot com MFC after:1 week Modified: head/sys/dev/iwn/if_iwn.c Modified: head/sys/dev/iwn/if_iwn.c == --- head/sys/dev/iwn/if_iwn.c Tue Jan 3 09:42:08 2012(r229374) +++ head/sys/dev/iwn/if_iwn.c Tue Jan 3 09:42:31 2012(r229375) @@ -2128,7 +2128,7 @@ iwn_newassoc(struct ieee80211_node *ni, plcp |= IWN_RFLAG_SGI; } else if (ni-ni_htcap IEEE80211_HTCAP_SHORTGI20) plcp |= IWN_RFLAG_SGI; - if (i 7) + if (RV(ni-ni_htrates.rs_rates[i]) 7) plcp |= IWN_RFLAG_ANT(txant1 | txant2); else plcp |= IWN_RFLAG_ANT(txant1); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r229284 - head/sys/net80211
Author: bschmidt Date: Mon Jan 2 16:02:30 2012 New Revision: 229284 URL: http://svn.freebsd.org/changeset/base/229284 Log: MCS32 equals 32, not 8*ic_txstream. Modified: head/sys/net80211/ieee80211_ht.c Modified: head/sys/net80211/ieee80211_ht.c == --- head/sys/net80211/ieee80211_ht.cMon Jan 2 14:45:30 2012 (r229283) +++ head/sys/net80211/ieee80211_ht.cMon Jan 2 16:02:30 2012 (r229284) @@ -433,7 +433,7 @@ ieee80211_get_suphtrates(struct ieee8021 ADDRATE(i); if ((ic-ic_htcaps IEEE80211_HTCAP_CHWIDTH40) (ic-ic_htcaps IEEE80211_HTC_TXMCS32)) - ADDRATE(i); + ADDRATE(32); if (ic-ic_htcaps IEEE80211_HTC_TXUNEQUAL) { if (ic-ic_txstream = 2) { for (i = 33; i = 38; i++) ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r229284 - head/sys/net80211
On Tuesday 03 January 2012 01:41:32 Adrian Chadd wrote: On 2 January 2012 08:02, Bernhard Schmidt bschm...@freebsd.org wrote: Author: bschmidt Date: Mon Jan 2 16:02:30 2012 New Revision: 229284 URL: http://svn.freebsd.org/changeset/base/229284 Log: MCS32 equals 32, not 8*ic_txstream. Good catch! Can you MFC it to 9/8 ? Sure, after the usual MFC period. -- Bernhard ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r228621 - in head/sys: dev/an dev/ath dev/bwi dev/bwn dev/if_ndis dev/ipw dev/iwi dev/iwn dev/malo dev/mwl dev/ral dev/usb/wlan dev/wi dev/wpi net80211
Author: bschmidt Date: Sat Dec 17 10:23:17 2011 New Revision: 228621 URL: http://svn.freebsd.org/changeset/base/228621 Log: Fix some net80211 enum nits: - ic_vap_create() uses an ieee80211_opmode argument - ieee80211_rate2media() takes an ieee80211_phymode argument - ieee80211_plcp2rate() takes an ieee80211_phytype argument - cast to enum ieee80211_protmode and ieee80211_roamingmode to silence compiler warnings Submitted by: arundel@ Modified: head/sys/dev/an/if_an.c head/sys/dev/ath/if_ath.c head/sys/dev/bwi/if_bwi.c head/sys/dev/bwn/if_bwn.c head/sys/dev/if_ndis/if_ndis.c head/sys/dev/ipw/if_ipw.c head/sys/dev/iwi/if_iwi.c head/sys/dev/iwn/if_iwn.c head/sys/dev/malo/if_malo.c head/sys/dev/mwl/if_mwl.c head/sys/dev/ral/rt2560.c head/sys/dev/ral/rt2661.c head/sys/dev/usb/wlan/if_rum.c head/sys/dev/usb/wlan/if_run.c head/sys/dev/usb/wlan/if_uath.c head/sys/dev/usb/wlan/if_upgt.c head/sys/dev/usb/wlan/if_ural.c head/sys/dev/usb/wlan/if_urtw.c head/sys/dev/usb/wlan/if_zyd.c head/sys/dev/wi/if_wi.c head/sys/dev/wpi/if_wpi.c head/sys/net80211/ieee80211.c head/sys/net80211/ieee80211_ht.c head/sys/net80211/ieee80211_ioctl.c head/sys/net80211/ieee80211_var.h Modified: head/sys/dev/an/if_an.c == --- head/sys/dev/an/if_an.c Sat Dec 17 06:57:35 2011(r228620) +++ head/sys/dev/an/if_an.c Sat Dec 17 10:23:17 2011(r228621) @@ -797,7 +797,7 @@ an_attach(struct an_softc *sc, int flags ADD(IFM_AUTO, IFM_IEEE80211_ADHOC); for (i = 0; i nrate; i++) { r = sc-an_caps.an_rates[i]; - mword = ieee80211_rate2media(NULL, r, IEEE80211_T_DS); + mword = ieee80211_rate2media(NULL, r, IEEE80211_MODE_AUTO); if (mword == 0) continue; printf(%s%d%sMbps, (i != 0 ? : ), @@ -3299,7 +3299,7 @@ an_media_status(struct ifnet *ifp, struc if (sc-an_config.an_opmode == AN_OPMODE_IBSS_ADHOC) imr-ifm_active |= IFM_IEEE80211_ADHOC; imr-ifm_active |= ieee80211_rate2media(NULL, - status.an_current_tx_rate, IEEE80211_T_DS); + status.an_current_tx_rate, IEEE80211_MODE_AUTO); imr-ifm_status = IFM_AVALID; if (status.an_opmode AN_STATUS_OPMODE_ASSOCIATED) imr-ifm_status |= IFM_ACTIVE; Modified: head/sys/dev/ath/if_ath.c == --- head/sys/dev/ath/if_ath.c Sat Dec 17 06:57:35 2011(r228620) +++ head/sys/dev/ath/if_ath.c Sat Dec 17 10:23:17 2011(r228621) @@ -128,9 +128,9 @@ __FBSDID($FreeBSD$); CTASSERT(ATH_BCBUF = 8); static struct ieee80211vap *ath_vap_create(struct ieee80211com *, - const char name[IFNAMSIZ], int unit, int opmode, - int flags, const uint8_t bssid[IEEE80211_ADDR_LEN], - const uint8_t mac[IEEE80211_ADDR_LEN]); + const char [IFNAMSIZ], int, enum ieee80211_opmode, int, + const uint8_t [IEEE80211_ADDR_LEN], + const uint8_t [IEEE80211_ADDR_LEN]); static voidath_vap_delete(struct ieee80211vap *); static voidath_init(void *); static voidath_stop_locked(struct ifnet *); @@ -885,16 +885,17 @@ assign_bslot(struct ath_softc *sc) } static struct ieee80211vap * -ath_vap_create(struct ieee80211com *ic, - const char name[IFNAMSIZ], int unit, int opmode, int flags, - const uint8_t bssid[IEEE80211_ADDR_LEN], - const uint8_t mac0[IEEE80211_ADDR_LEN]) +ath_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], int unit, +enum ieee80211_opmode opmode, int flags, +const uint8_t bssid[IEEE80211_ADDR_LEN], +const uint8_t mac0[IEEE80211_ADDR_LEN]) { struct ath_softc *sc = ic-ic_ifp-if_softc; struct ath_vap *avp; struct ieee80211vap *vap; uint8_t mac[IEEE80211_ADDR_LEN]; - int ic_opmode, needbeacon, error; + int needbeacon, error; + enum ieee80211_opmode ic_opmode; avp = (struct ath_vap *) malloc(sizeof(struct ath_vap), M_80211_VAP, M_WAITOK | M_ZERO); Modified: head/sys/dev/bwi/if_bwi.c == --- head/sys/dev/bwi/if_bwi.c Sat Dec 17 06:57:35 2011(r228620) +++ head/sys/dev/bwi/if_bwi.c Sat Dec 17 10:23:17 2011(r228621) @@ -96,9 +96,9 @@ struct bwi_myaddr_bssid { } __packed; static struct ieee80211vap *bwi_vap_create(struct ieee80211com *, - const char [IFNAMSIZ], int, int, int, - const uint8_t [IEEE80211_ADDR_LEN], - const uint8_t [IEEE80211_ADDR_LEN]); + const char [IFNAMSIZ], int, enum ieee80211_opmode, int, + const uint8_t [IEEE80211_ADDR_LEN], + const uint8_t
svn commit: r228622 - head/sys/net80211
Author: bschmidt Date: Sat Dec 17 10:32:31 2011 New Revision: 228622 URL: http://svn.freebsd.org/changeset/base/228622 Log: Remove now redundant mac argument. Discussed with: adrian@ Modified: head/sys/net80211/ieee80211_acl.c head/sys/net80211/ieee80211_hostap.c head/sys/net80211/ieee80211_mesh.c head/sys/net80211/ieee80211_proto.h Modified: head/sys/net80211/ieee80211_acl.c == --- head/sys/net80211/ieee80211_acl.c Sat Dec 17 10:23:17 2011 (r228621) +++ head/sys/net80211/ieee80211_acl.c Sat Dec 17 10:32:31 2011 (r228622) @@ -152,8 +152,7 @@ _acl_free(struct aclstate *as, struct ac } static int -acl_check(struct ieee80211vap *vap, const struct ieee80211_frame *wh, -const uint8_t mac[IEEE80211_ADDR_LEN]) +acl_check(struct ieee80211vap *vap, const struct ieee80211_frame *wh) { struct aclstate *as = vap-iv_as; @@ -162,9 +161,9 @@ acl_check(struct ieee80211vap *vap, cons case ACL_POLICY_RADIUS: return 1; case ACL_POLICY_ALLOW: - return _find_acl(as, mac) != NULL; + return _find_acl(as, wh-i_addr2) != NULL; case ACL_POLICY_DENY: - return _find_acl(as, mac) == NULL; + return _find_acl(as, wh-i_addr2) == NULL; } return 0; /* should not happen */ } Modified: head/sys/net80211/ieee80211_hostap.c == --- head/sys/net80211/ieee80211_hostap.cSat Dec 17 10:23:17 2011 (r228621) +++ head/sys/net80211/ieee80211_hostap.cSat Dec 17 10:32:31 2011 (r228622) @@ -1797,8 +1797,7 @@ hostap_recv_mgmt(struct ieee80211_node * /* * Consult the ACL policy module if setup. */ - if (vap-iv_acl != NULL - !vap-iv_acl-iac_check(vap, wh, wh-i_addr2)) { + if (vap-iv_acl != NULL !vap-iv_acl-iac_check(vap, wh)) { IEEE80211_DISCARD(vap, IEEE80211_MSG_ACL, wh, NULL, %s, disallowed by ACL); vap-iv_stats.is_rx_acl++; @@ -1883,8 +1882,7 @@ hostap_recv_mgmt(struct ieee80211_node * /* * Consult the ACL policy module if setup. */ - if (vap-iv_acl != NULL - !vap-iv_acl-iac_check(vap, wh, wh-i_addr2)) { + if (vap-iv_acl != NULL !vap-iv_acl-iac_check(vap, wh)) { IEEE80211_DISCARD(vap, IEEE80211_MSG_ACL, wh, NULL, %s, disallowed by ACL); vap-iv_stats.is_rx_acl++; Modified: head/sys/net80211/ieee80211_mesh.c == --- head/sys/net80211/ieee80211_mesh.c Sat Dec 17 10:23:17 2011 (r228621) +++ head/sys/net80211/ieee80211_mesh.c Sat Dec 17 10:32:31 2011 (r228622) @@ -1120,8 +1120,7 @@ mesh_input(struct ieee80211_node *ni, st * * NB: this check is also done upon peering link initiation. */ - if (vap-iv_acl != NULL - !vap-iv_acl-iac_check(vap, wh, wh-i_addr2)) { + if (vap-iv_acl != NULL !vap-iv_acl-iac_check(vap, wh)) { IEEE80211_DISCARD(vap, IEEE80211_MSG_ACL, wh, NULL, %s, disallowed by ACL); vap-iv_stats.is_rx_acl++; @@ -1379,8 +1378,7 @@ mesh_recv_mgmt(struct ieee80211_node *ni /* * Peer only based on the current ACL policy. */ - if (vap-iv_acl != NULL - !vap-iv_acl-iac_check(vap, wh, wh-i_addr2)) { + if (vap-iv_acl != NULL !vap-iv_acl-iac_check(vap, wh)) { IEEE80211_DISCARD(vap, IEEE80211_MSG_ACL, wh, NULL, %s, disallowed by ACL); vap-iv_stats.is_rx_acl++; Modified: head/sys/net80211/ieee80211_proto.h == --- head/sys/net80211/ieee80211_proto.h Sat Dec 17 10:23:17 2011 (r228621) +++ head/sys/net80211/ieee80211_proto.h Sat Dec 17 10:32:31 2011 (r228622) @@ -215,8 +215,7 @@ struct ieee80211_aclator { int (*iac_attach)(struct ieee80211vap *); void(*iac_detach)(struct ieee80211vap *); int (*iac_check)(struct ieee80211vap *, - const struct ieee80211_frame *wh, - const uint8_t mac[IEEE80211_ADDR_LEN]); + const struct ieee80211_frame *wh); int (*iac_add)(struct ieee80211vap *, const uint8_t mac[IEEE80211_ADDR_LEN]); int (*iac_remove)(struct ieee80211vap *, ___ svn-src-all@freebsd.org mailing list
Re: svn commit: r228514 - head/sys/net80211
On Thu, Dec 15, 2011 at 01:52, Adrian Chadd adr...@freebsd.org wrote: Author: adrian Date: Thu Dec 15 00:52:30 2011 New Revision: 228514 URL: http://svn.freebsd.org/changeset/base/228514 Log:  Modify the ACL code slightly to support a few nifty things:  * Call it before sending probe responses, so the ACL code has the   chance to reject sending them.  * Pass the whole frame to the ACL code now, rather than just the   destination MAC - that way the ACL module can look at the frame   contents to determine what the response should be.  This is part of some uncommitted work to support band steering.  Sponsored by: Hobnob, Inc. Modified:  head/sys/net80211/ieee80211_acl.c  head/sys/net80211/ieee80211_hostap.c  head/sys/net80211/ieee80211_mesh.c  head/sys/net80211/ieee80211_proto.h Modified: head/sys/net80211/ieee80211_acl.c == --- head/sys/net80211/ieee80211_acl.c  Wed Dec 14 23:57:47 2011     (r228513) +++ head/sys/net80211/ieee80211_acl.c  Thu Dec 15 00:52:30 2011     (r228514) @@ -152,7 +152,8 @@ _acl_free(struct aclstate *as, struct ac  }  static int -acl_check(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN]) +acl_check(struct ieee80211vap *vap, const struct ieee80211_frame *wh, +   const uint8_t mac[IEEE80211_ADDR_LEN])  { Why didn't you remove the mac argument? It is assign from wh-i_addr2 anyways, seems rather too redundant to me. -- Bernhard ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r228514 - head/sys/net80211
On Thu, Dec 15, 2011 at 10:35, Adrian Chadd adr...@freebsd.org wrote: On 15 December 2011 00:02, Bernhard Schmidt bschm...@freebsd.org wrote: Why didn't you remove the mac argument? It is assign from wh-i_addr2 anyways, seems rather too redundant to me. Because the semantics for that right now are check that MAC, so it's the callers responsibility to determine which MAC in the header is the relevant one to check against. They're all addr2 though, and I haven't yet thought of a reason it could be addr1 or addr3 (or addr4, for that matter); I just decided to leave it this way so the semantics of the caller dictates which MAC in the frame is the relevant one to check against as-is. And no one else has found a reason to do so in the last 7 years that code exists :) If you think that's me being a bit overly anal about it, then sure, please go ahead and turf it. :) Personally, I'd like to add an enum field (and then remove the MAC) - the enum field would indicate to acl_check() _which_ ACL is being checked - ie, probe request, association request, and any other frame check request. That way it's precisely clear what the ACL check is for. But again, that's just me being overly picky. :) Well, no. The ACL stuff was designed to have one module for each usage and not one for everything. Following your example you would have one for assoc frames/probe frames (whatever the desired behavior is), .. and the already existing one for macs. Well, just this piece isn't that optimal yet: /* XXX just one for now */ static const struct ieee80211_aclator *acl = NULL; So, my point is, I'd like to keep the functionality of the wlan_acl(4) module as it is, matching wh-i_addr2 with the list of given macs only. If you (or someone) else have some different functionality in mind, add a new acl module which replaces the current one using ieee80211_aclator_register() and do whatever you want in there. So in short: if you're happy removing it, remove it. :) I agree on passing the frame as an argument to iac_check() and obtain the mac from there, that definitely is required for more advanced ACLs. Passing both tough, is imho not required and redundant, so, yes I think I'm going to remove it. -- Bernhard ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r227967 - stable/9/sys/dev/iwn
Author: bschmidt Date: Fri Nov 25 12:19:13 2011 New Revision: 227967 URL: http://svn.freebsd.org/changeset/base/227967 Log: MFC r227805: The DC calibration result obtained during initialization can't be passed over to the runtime firmware on 6050 devices. Instead let the runtime firmware do the calibration itself. This fixes support for the 6050 series devices. Submitted by: kevlo Approved by: re (kib) Obtained from:OpenBSD Tested by:lx, Tz-Huan Huang(earlier version) Modified: stable/9/sys/dev/iwn/if_iwn.c stable/9/sys/dev/iwn/if_iwnreg.h Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/dev/iwn/if_iwn.c == --- stable/9/sys/dev/iwn/if_iwn.c Fri Nov 25 10:30:29 2011 (r227966) +++ stable/9/sys/dev/iwn/if_iwn.c Fri Nov 25 12:19:13 2011 (r227967) @@ -246,6 +246,7 @@ static int iwn_send_sensitivity(struct i static int iwn_set_pslevel(struct iwn_softc *, int, int, int); static int iwn_send_btcoex(struct iwn_softc *); static int iwn_send_advanced_btcoex(struct iwn_softc *); +static int iwn5000_runtime_calib(struct iwn_softc *); static int iwn_config(struct iwn_softc *); static uint8_t *ieee80211_add_ssid(uint8_t *, const uint8_t *, u_int); static int iwn_scan(struct iwn_softc *); @@ -2505,7 +2506,8 @@ iwn5000_rx_calib_results(struct iwn_soft case IWN5000_PHY_CALIB_DC: if ((sc-sc_flags IWN_FLAG_INTERNAL_PA) == 0 (sc-hw_type == IWN_HW_REV_TYPE_5150 || -sc-hw_type = IWN_HW_REV_TYPE_6000)) +sc-hw_type = IWN_HW_REV_TYPE_6000) +sc-hw_type != IWN_HW_REV_TYPE_6050) idx = 0; break; case IWN5000_PHY_CALIB_LO: @@ -4996,6 +4998,19 @@ iwn_send_advanced_btcoex(struct iwn_soft } static int +iwn5000_runtime_calib(struct iwn_softc *sc) +{ + struct iwn5000_calib_config cmd; + + memset(cmd, 0, sizeof cmd); + cmd.ucode.once.enable = 0x; + cmd.ucode.once.start = IWN5000_CALIB_DC; + DPRINTF(sc, IWN_DEBUG_CALIBRATE, + %s: configuring runtime calibration\n, __func__); + return iwn_cmd(sc, IWN5000_CMD_CALIB_CONFIG, cmd, sizeof(cmd), 0); +} + +static int iwn_config(struct iwn_softc *sc) { struct iwn_ops *ops = sc-ops; @@ -5015,6 +5030,17 @@ iwn_config(struct iwn_softc *sc) } } + if (sc-hw_type == IWN_HW_REV_TYPE_6050) { + /* Configure runtime DC calibration. */ + error = iwn5000_runtime_calib(sc); + if (error != 0) { + device_printf(sc-sc_dev, + %s: could not configure runtime calibration\n, + __func__); + return error; + } + } + /* Configure valid TX chains for =5000 Series. */ if (sc-hw_type != IWN_HW_REV_TYPE_4965) { txmask = htole32(sc-txchainmask); Modified: stable/9/sys/dev/iwn/if_iwnreg.h == --- stable/9/sys/dev/iwn/if_iwnreg.hFri Nov 25 10:30:29 2011 (r227966) +++ stable/9/sys/dev/iwn/if_iwnreg.hFri Nov 25 12:19:13 2011 (r227967) @@ -739,6 +739,8 @@ struct iwn5000_wimax_coex { struct iwn5000_calib_elem { uint32_tenable; uint32_tstart; +#defineIWN5000_CALIB_DC(1 1) + uint32_tsend; uint32_tapply; uint32_treserved; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r227968 - releng/9.0/sys/dev/iwn
Author: bschmidt Date: Fri Nov 25 12:20:14 2011 New Revision: 227968 URL: http://svn.freebsd.org/changeset/base/227968 Log: MFC r227805: The DC calibration result obtained during initialization can't be passed over to the runtime firmware on 6050 devices. Instead let the runtime firmware do the calibration itself. This fixes support for the 6050 series devices. Submitted by: kevlo Approved by: re (kib) Obtained from:OpenBSD Tested by:lx, Tz-Huan Huang(earlier version) Modified: releng/9.0/sys/dev/iwn/if_iwn.c releng/9.0/sys/dev/iwn/if_iwnreg.h Directory Properties: releng/9.0/sys/ (props changed) Modified: releng/9.0/sys/dev/iwn/if_iwn.c == --- releng/9.0/sys/dev/iwn/if_iwn.c Fri Nov 25 12:19:13 2011 (r227967) +++ releng/9.0/sys/dev/iwn/if_iwn.c Fri Nov 25 12:20:14 2011 (r227968) @@ -246,6 +246,7 @@ static int iwn_send_sensitivity(struct i static int iwn_set_pslevel(struct iwn_softc *, int, int, int); static int iwn_send_btcoex(struct iwn_softc *); static int iwn_send_advanced_btcoex(struct iwn_softc *); +static int iwn5000_runtime_calib(struct iwn_softc *); static int iwn_config(struct iwn_softc *); static uint8_t *ieee80211_add_ssid(uint8_t *, const uint8_t *, u_int); static int iwn_scan(struct iwn_softc *); @@ -2505,7 +2506,8 @@ iwn5000_rx_calib_results(struct iwn_soft case IWN5000_PHY_CALIB_DC: if ((sc-sc_flags IWN_FLAG_INTERNAL_PA) == 0 (sc-hw_type == IWN_HW_REV_TYPE_5150 || -sc-hw_type = IWN_HW_REV_TYPE_6000)) +sc-hw_type = IWN_HW_REV_TYPE_6000) +sc-hw_type != IWN_HW_REV_TYPE_6050) idx = 0; break; case IWN5000_PHY_CALIB_LO: @@ -4996,6 +4998,19 @@ iwn_send_advanced_btcoex(struct iwn_soft } static int +iwn5000_runtime_calib(struct iwn_softc *sc) +{ + struct iwn5000_calib_config cmd; + + memset(cmd, 0, sizeof cmd); + cmd.ucode.once.enable = 0x; + cmd.ucode.once.start = IWN5000_CALIB_DC; + DPRINTF(sc, IWN_DEBUG_CALIBRATE, + %s: configuring runtime calibration\n, __func__); + return iwn_cmd(sc, IWN5000_CMD_CALIB_CONFIG, cmd, sizeof(cmd), 0); +} + +static int iwn_config(struct iwn_softc *sc) { struct iwn_ops *ops = sc-ops; @@ -5015,6 +5030,17 @@ iwn_config(struct iwn_softc *sc) } } + if (sc-hw_type == IWN_HW_REV_TYPE_6050) { + /* Configure runtime DC calibration. */ + error = iwn5000_runtime_calib(sc); + if (error != 0) { + device_printf(sc-sc_dev, + %s: could not configure runtime calibration\n, + __func__); + return error; + } + } + /* Configure valid TX chains for =5000 Series. */ if (sc-hw_type != IWN_HW_REV_TYPE_4965) { txmask = htole32(sc-txchainmask); Modified: releng/9.0/sys/dev/iwn/if_iwnreg.h == --- releng/9.0/sys/dev/iwn/if_iwnreg.h Fri Nov 25 12:19:13 2011 (r227967) +++ releng/9.0/sys/dev/iwn/if_iwnreg.h Fri Nov 25 12:20:14 2011 (r227968) @@ -739,6 +739,8 @@ struct iwn5000_wimax_coex { struct iwn5000_calib_elem { uint32_tenable; uint32_tstart; +#defineIWN5000_CALIB_DC(1 1) + uint32_tsend; uint32_tapply; uint32_treserved; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r227805 - head/sys/dev/iwn
Author: bschmidt Date: Mon Nov 21 22:19:12 2011 New Revision: 227805 URL: http://svn.freebsd.org/changeset/base/227805 Log: The DC calibration result obtained during initialization can't be passed over to the runtime firmware on 6050 devices. Instead let the runtime firmware do the calibration itself. This fixes support for the 6050 series devices. Obtained from:OpenBSD Submitted by: kevlo Tested by:lx, Tz-Huan Huang(earlier version) Modified: head/sys/dev/iwn/if_iwn.c head/sys/dev/iwn/if_iwnreg.h Modified: head/sys/dev/iwn/if_iwn.c == --- head/sys/dev/iwn/if_iwn.c Mon Nov 21 21:59:01 2011(r227804) +++ head/sys/dev/iwn/if_iwn.c Mon Nov 21 22:19:12 2011(r227805) @@ -246,6 +246,7 @@ static int iwn_send_sensitivity(struct i static int iwn_set_pslevel(struct iwn_softc *, int, int, int); static int iwn_send_btcoex(struct iwn_softc *); static int iwn_send_advanced_btcoex(struct iwn_softc *); +static int iwn5000_runtime_calib(struct iwn_softc *); static int iwn_config(struct iwn_softc *); static uint8_t *ieee80211_add_ssid(uint8_t *, const uint8_t *, u_int); static int iwn_scan(struct iwn_softc *); @@ -2505,7 +2506,8 @@ iwn5000_rx_calib_results(struct iwn_soft case IWN5000_PHY_CALIB_DC: if ((sc-sc_flags IWN_FLAG_INTERNAL_PA) == 0 (sc-hw_type == IWN_HW_REV_TYPE_5150 || -sc-hw_type = IWN_HW_REV_TYPE_6000)) +sc-hw_type = IWN_HW_REV_TYPE_6000) +sc-hw_type != IWN_HW_REV_TYPE_6050) idx = 0; break; case IWN5000_PHY_CALIB_LO: @@ -4996,6 +4998,19 @@ iwn_send_advanced_btcoex(struct iwn_soft } static int +iwn5000_runtime_calib(struct iwn_softc *sc) +{ + struct iwn5000_calib_config cmd; + + memset(cmd, 0, sizeof cmd); + cmd.ucode.once.enable = 0x; + cmd.ucode.once.start = IWN5000_CALIB_DC; + DPRINTF(sc, IWN_DEBUG_CALIBRATE, + %s: configuring runtime calibration\n, __func__); + return iwn_cmd(sc, IWN5000_CMD_CALIB_CONFIG, cmd, sizeof(cmd), 0); +} + +static int iwn_config(struct iwn_softc *sc) { struct iwn_ops *ops = sc-ops; @@ -5015,6 +5030,17 @@ iwn_config(struct iwn_softc *sc) } } + if (sc-hw_type == IWN_HW_REV_TYPE_6050) { + /* Configure runtime DC calibration. */ + error = iwn5000_runtime_calib(sc); + if (error != 0) { + device_printf(sc-sc_dev, + %s: could not configure runtime calibration\n, + __func__); + return error; + } + } + /* Configure valid TX chains for =5000 Series. */ if (sc-hw_type != IWN_HW_REV_TYPE_4965) { txmask = htole32(sc-txchainmask); Modified: head/sys/dev/iwn/if_iwnreg.h == --- head/sys/dev/iwn/if_iwnreg.hMon Nov 21 21:59:01 2011 (r227804) +++ head/sys/dev/iwn/if_iwnreg.hMon Nov 21 22:19:12 2011 (r227805) @@ -739,6 +739,8 @@ struct iwn5000_wimax_coex { struct iwn5000_calib_elem { uint32_tenable; uint32_tstart; +#defineIWN5000_CALIB_DC(1 1) + uint32_tsend; uint32_tapply; uint32_treserved; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r227570 - stable/9/sys/dev/iwn
Author: bschmidt Date: Wed Nov 16 17:39:59 2011 New Revision: 227570 URL: http://svn.freebsd.org/changeset/base/227570 Log: MFC r226679: Let net80211 also know about stopped BA sessions. This fixes some issues where the driver assumed that BA resources are still available due to net80211 saying so. PR: 161407, 159768 Tested by:cperciva, rene Approved by: re (kib) Modified: stable/9/sys/dev/iwn/if_iwn.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/dev/iwn/if_iwn.c == --- stable/9/sys/dev/iwn/if_iwn.c Wed Nov 16 17:11:13 2011 (r227569) +++ stable/9/sys/dev/iwn/if_iwn.c Wed Nov 16 17:39:59 2011 (r227570) @@ -5641,6 +5641,7 @@ iwn_ampdu_tx_stop(struct ieee80211_node sc-qid2tap[qid] = NULL; free(tap-txa_private, M_DEVBUF); tap-txa_private = NULL; + sc-sc_addba_stop(ni, tap); } static void ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r227571 - releng/9.0/sys/dev/iwn
Author: bschmidt Date: Wed Nov 16 17:41:31 2011 New Revision: 227571 URL: http://svn.freebsd.org/changeset/base/227571 Log: MFC r226679: Let net80211 also know about stopped BA sessions. This fixes some issues where the driver assumed that BA resources are still available due to net80211 saying so. PR: 161407, 159768 Tested by:cperciva, rene Approved by: re (kib) Modified: releng/9.0/sys/dev/iwn/if_iwn.c Directory Properties: releng/9.0/sys/ (props changed) Modified: releng/9.0/sys/dev/iwn/if_iwn.c == --- releng/9.0/sys/dev/iwn/if_iwn.c Wed Nov 16 17:39:59 2011 (r227570) +++ releng/9.0/sys/dev/iwn/if_iwn.c Wed Nov 16 17:41:31 2011 (r227571) @@ -5641,6 +5641,7 @@ iwn_ampdu_tx_stop(struct ieee80211_node sc-qid2tap[qid] = NULL; free(tap-txa_private, M_DEVBUF); tap-txa_private = NULL; + sc-sc_addba_stop(ni, tap); } static void ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r226679 - head/sys/dev/iwn
Author: bschmidt Date: Mon Oct 24 07:37:01 2011 New Revision: 226679 URL: http://svn.freebsd.org/changeset/base/226679 Log: Let net80211 also know about stopped BA sessions. This fixes some issues where the driver assumed that BA resources are still available due to net80211 saying so. PR: 161407, 159768 Tested by:cperciva, rene MFC after:3 days Modified: head/sys/dev/iwn/if_iwn.c Modified: head/sys/dev/iwn/if_iwn.c == --- head/sys/dev/iwn/if_iwn.c Mon Oct 24 05:26:40 2011(r226678) +++ head/sys/dev/iwn/if_iwn.c Mon Oct 24 07:37:01 2011(r226679) @@ -5641,6 +5641,7 @@ iwn_ampdu_tx_stop(struct ieee80211_node sc-qid2tap[qid] = NULL; free(tap-txa_private, M_DEVBUF); tap-txa_private = NULL; + sc-sc_addba_stop(ni, tap); } static void ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r226626 - stable/9/sys/dev/iwn
Author: bschmidt Date: Sat Oct 22 09:29:44 2011 New Revision: 226626 URL: http://svn.freebsd.org/changeset/base/226626 Log: Fix bmiss notifications, events should be sent when NOT scanning. Approved by: re (kib) Modified: stable/9/sys/dev/iwn/if_iwn.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/dev/iwn/if_iwn.c == --- stable/9/sys/dev/iwn/if_iwn.c Sat Oct 22 04:39:12 2011 (r226625) +++ stable/9/sys/dev/iwn/if_iwn.c Sat Oct 22 09:29:44 2011 (r226626) @@ -2929,7 +2929,7 @@ iwn_notif_intr(struct iwn_softc *sc) * reinitialize the sensitivity state machine. */ if (vap-iv_state == IEEE80211_S_RUN - (ic-ic_flags IEEE80211_F_SCAN) != 0) { + (ic-ic_flags IEEE80211_F_SCAN) == 0) { if (misses 5) (void)iwn_init_sensitivity(sc); if (misses = vap-iv_bmissthreshold) { ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r226628 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Oct 22 09:43:35 2011 New Revision: 226628 URL: http://svn.freebsd.org/changeset/base/226628 Log: Fix bmiss notifications, events should be sent when NOT scanning. Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Oct 22 09:38:03 2011 (r226627) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Oct 22 09:43:35 2011 (r226628) @@ -2709,7 +2709,7 @@ iwn_notif_intr(struct iwn_softc *sc) * reinitialize the sensitivity state machine. */ if (vap-iv_state == IEEE80211_S_RUN - (ic-ic_flags IEEE80211_F_SCAN) != 0) { + (ic-ic_flags IEEE80211_F_SCAN) == 0) { if (misses 5) (void)iwn_init_sensitivity(sc); if (misses = vap-iv_bmissthreshold) { ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r226346 - head/sys/dev/iwn
Author: bschmidt Date: Thu Oct 13 18:17:03 2011 New Revision: 226346 URL: http://svn.freebsd.org/changeset/base/226346 Log: Fix bmiss notifications, events should be sent when NOT scanning. MFC after:3 days Modified: head/sys/dev/iwn/if_iwn.c Modified: head/sys/dev/iwn/if_iwn.c == --- head/sys/dev/iwn/if_iwn.c Thu Oct 13 17:20:45 2011(r226345) +++ head/sys/dev/iwn/if_iwn.c Thu Oct 13 18:17:03 2011(r226346) @@ -2929,7 +2929,7 @@ iwn_notif_intr(struct iwn_softc *sc) * reinitialize the sensitivity state machine. */ if (vap-iv_state == IEEE80211_S_RUN - (ic-ic_flags IEEE80211_F_SCAN) != 0) { + (ic-ic_flags IEEE80211_F_SCAN) == 0) { if (misses 5) (void)iwn_init_sensitivity(sc); if (misses = vap-iv_bmissthreshold) { ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r224717 - head/sys/net80211
Author: bschmidt Date: Mon Aug 8 16:29:07 2011 New Revision: 224717 URL: http://svn.freebsd.org/changeset/base/224717 Log: When setting a fixed channel on adapters with 11n support the scan channel list ends up with 2 entries, the HT and the legacy channel. The scan itself is currently always done at legacy rates so we end up receiving scan results for legacy networks on the HT channel and erroneously assigning the BSS to the 11n channel. As the channel's capabilities are used to setup the adapter we might end up with non-working settings and/or firmware crashes. Fix this by ensuring that scan results received on a HT channel are only assigned to that channel if the htcap IE is available, else use the legacy channel equivalent. Tested by:Pawel Worach, Raoul Megelas, Maciej Milewski, Andrei az at azsupport dot com Approved by: re (kib) Modified: head/sys/net80211/ieee80211_scan_sta.c Modified: head/sys/net80211/ieee80211_scan_sta.c == --- head/sys/net80211/ieee80211_scan_sta.c Mon Aug 8 16:22:42 2011 (r224716) +++ head/sys/net80211/ieee80211_scan_sta.c Mon Aug 8 16:29:07 2011 (r224717) @@ -238,6 +238,7 @@ sta_add(struct ieee80211_scan_state *ss, const uint8_t *macaddr = wh-i_addr2; struct ieee80211vap *vap = ss-ss_vap; struct ieee80211com *ic = vap-iv_ic; + struct ieee80211_channel *c; struct sta_entry *se; struct ieee80211_scan_entry *ise; int hash; @@ -300,7 +301,6 @@ found: * association on the wrong channel. */ if (sp-status IEEE80211_BPARSE_OFFCHAN) { - struct ieee80211_channel *c; /* * Off-channel, locate the home/bss channel for the sta * using the value broadcast in the DSPARMS ie. We know @@ -317,6 +317,14 @@ found: } } else ise-se_chan = ic-ic_curchan; + if (IEEE80211_IS_CHAN_HT(ise-se_chan) sp-htcap == NULL) { + /* Demote legacy networks to a non-HT channel. */ + c = ieee80211_find_channel(ic, ise-se_chan-ic_freq, + ise-se_chan-ic_flags ~IEEE80211_CHAN_HT); + KASSERT(c != NULL, + (no legacy channel %u, ise-se_chan-ic_ieee)); + ise-se_chan = c; + } ise-se_fhdwell = sp-fhdwell; ise-se_fhindex = sp-fhindex; ise-se_erp = sp-erp; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r223255 - in stable/8/sys: conf contrib/dev/iwn modules/iwnfw/iwn1000 modules/iwnfw/iwn5000 modules/iwnfw/iwn6050
On Saturday 18 June 2011 14:27:49 Bernhard Schmidt wrote: Author: bschmidt Date: Sat Jun 18 12:27:49 2011 New Revision: 223255 URL: http://svn.freebsd.org/changeset/base/223255 Log: MFC r220892: Update iwn(4) firmware blobs: - bump iwn1000fw to 39.31.5.1 - bump iwn5000fw to 8.83.5.1 - bump iwn6050fw to 41.28.5.1 Just a heads up, this seems to have broken the firmware modules if -DNOCLEAN is used. Basically, the resulting .ko is linked with old and new objects files with different version numbers (same on HEAD). I'd appreciate if someone with more clue about Makefiles is willing to help me on resolving this. I have a rough idea about how to do it, but that's about it. -- Bernhard ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r223229 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:17:13 2011 New Revision: 223229 URL: http://svn.freebsd.org/changeset/base/223229 Log: MFC r220633: Remove IWN_FLAG_HAS_5GHZ and IWN_PCI_BAR0, both unused. Modified: stable/8/sys/dev/iwn/if_iwn.c stable/8/sys/dev/iwn/if_iwnreg.h stable/8/sys/dev/iwn/if_iwnvar.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:07:09 2011 (r223228) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:17:13 2011 (r223229) @@ -1792,7 +1792,6 @@ iwn_read_eeprom_band(struct iwn_softc *s c-ic_freq = ieee80211_ieee2mhz(chan, IEEE80211_CHAN_A); c-ic_flags = IEEE80211_CHAN_A | nflags; - sc-sc_flags |= IWN_FLAG_HAS_5GHZ; } #if 0 /* HT */ /* XXX no constraints on using HT20 */ Modified: stable/8/sys/dev/iwn/if_iwnreg.h == --- stable/8/sys/dev/iwn/if_iwnreg.hSat Jun 18 11:07:09 2011 (r223228) +++ stable/8/sys/dev/iwn/if_iwnreg.hSat Jun 18 11:17:13 2011 (r223229) @@ -50,9 +50,6 @@ #define IWN_HIADDR(paddr) (0) #endif -/* Base Address Register. */ -#define IWN_PCI_BAR0 PCI_MAPREG_START - /* * Control and status registers. */ Modified: stable/8/sys/dev/iwn/if_iwnvar.h == --- stable/8/sys/dev/iwn/if_iwnvar.hSat Jun 18 11:07:09 2011 (r223228) +++ stable/8/sys/dev/iwn/if_iwnvar.hSat Jun 18 11:17:13 2011 (r223229) @@ -215,7 +215,6 @@ struct iwn_softc { struct resource *irq; u_int sc_flags; -#define IWN_FLAG_HAS_5GHZ (1 0) #define IWN_FLAG_HAS_OTPROM(1 1) #define IWN_FLAG_CALIB_DONE(1 2) #define IWN_FLAG_USE_ICT (1 3) ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r223230 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:19:12 2011 New Revision: 223230 URL: http://svn.freebsd.org/changeset/base/223230 Log: MFC r220634: Reuse net80211 code: - IWN_TXOP_TO_US is equal to IEEE80211_TXOP_TO_US - use IEEE80211_DUR_TU - ieee80211_add_rates/ieee80211_add_xrates are public, use em - copied ieee80211_add_ssid it is not public Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:17:13 2011 (r223229) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:19:12 2011 (r223230) @@ -198,6 +198,7 @@ static void iwn_tune_sensitivity(struct static int iwn_send_sensitivity(struct iwn_softc *); static int iwn_set_pslevel(struct iwn_softc *, int, int, int); static int iwn_config(struct iwn_softc *); +static uint8_t *ieee80211_add_ssid(uint8_t *, const uint8_t *, u_int); static int iwn_scan(struct iwn_softc *); static int iwn_auth(struct iwn_softc *, struct ieee80211vap *vap); static int iwn_run(struct iwn_softc *, struct ieee80211vap *vap); @@ -3636,7 +3637,6 @@ static int iwn_wme_update(struct ieee80211com *ic) { #define IWN_EXP2(x)((1 (x)) - 1)/* CWmin = 2^ECWmin - 1 */ -#defineIWN_TXOP_TO_US(v) (v5) struct iwn_softc *sc = ic-ic_ifp-if_softc; struct iwn_edca_params cmd; int i; @@ -3650,7 +3650,7 @@ iwn_wme_update(struct ieee80211com *ic) cmd.ac[i].cwmin = htole16(IWN_EXP2(wmep-wmep_logcwmin)); cmd.ac[i].cwmax = htole16(IWN_EXP2(wmep-wmep_logcwmax)); cmd.ac[i].txoplimit = - htole16(IWN_TXOP_TO_US(wmep-wmep_txopLimit)); + htole16(IEEE80211_TXOP_TO_US(wmep-wmep_txopLimit)); } IEEE80211_UNLOCK(ic); IWN_LOCK(sc); @@ -3658,7 +3658,6 @@ iwn_wme_update(struct ieee80211com *ic) IWN_UNLOCK(sc); IEEE80211_LOCK(ic); return 0; -#undef IWN_TXOP_TO_US #undef IWN_EXP2 } @@ -3720,7 +3719,7 @@ iwn_set_timing(struct iwn_softc *sc, str cmd.lintval = htole16(10); /* Compute remaining time until next beacon. */ - val = (uint64_t)ni-ni_intval * 1024; /* msecs - usecs */ + val = (uint64_t)ni-ni_intval * IEEE80211_DUR_TU; mod = le64toh(cmd.tstamp) % val; cmd.binitval = htole32((uint32_t)(val - mod)); @@ -4270,7 +4269,7 @@ iwn_tune_sensitivity(struct iwn_softc *s /* Compute number of false alarms since last call for OFDM. */ fa = le32toh(stats-ofdm.bad_plcp) - calib-bad_plcp_ofdm; fa += le32toh(stats-ofdm.fa) - calib-fa_ofdm; - fa *= 200 * 1024; /* 200TU */ + fa *= 200 * IEEE80211_DUR_TU; /* 200TU */ /* Save counters values for next call. */ calib-bad_plcp_ofdm = le32toh(stats-ofdm.bad_plcp); @@ -4327,7 +4326,7 @@ iwn_tune_sensitivity(struct iwn_softc *s /* Compute number of false alarms since last call for CCK. */ fa = le32toh(stats-cck.bad_plcp) - calib-bad_plcp_cck; fa += le32toh(stats-cck.fa) - calib-fa_cck; - fa *= 200 * 1024; /* 200TU */ + fa *= 200 * IEEE80211_DUR_TU; /* 200TU */ /* Save counters values for next call. */ calib-bad_plcp_cck = le32toh(stats-cck.bad_plcp); @@ -4586,6 +4585,18 @@ iwn_config(struct iwn_softc *sc) return 0; } +/* + * Add an ssid element to a frame. + */ +static uint8_t * +ieee80211_add_ssid(uint8_t *frm, const uint8_t *ssid, u_int len) +{ + *frm++ = IEEE80211_ELEMID_SSID; + *frm++ = len; + memcpy(frm, ssid, len); + return frm + len; +} + static int iwn_scan(struct iwn_softc *sc) { @@ -4599,7 +4610,7 @@ iwn_scan(struct iwn_softc *sc) struct ieee80211_frame *wh; struct ieee80211_rateset *rs; struct ieee80211_channel *c; - int buflen, error, nrates; + int buflen, error; uint16_t rxchain; uint8_t *buf, *frm, txant; @@ -4675,30 +4686,14 @@ iwn_scan(struct iwn_softc *sc) *(uint16_t *)wh-i_seq[0] = 0; /* filled by HW */ frm = (uint8_t *)(wh + 1); - - /* Add SSID IE. */ - *frm++ = IEEE80211_ELEMID_SSID; - *frm++ = ss-ss_ssid[0].len; - memcpy(frm, ss-ss_ssid[0].ssid, ss-ss_ssid[0].len); - frm += ss-ss_ssid[0].len; - - /* Add supported rates IE. */ - *frm++ = IEEE80211_ELEMID_RATES; - nrates = rs-rs_nrates; - if (nrates IEEE80211_RATE_SIZE) - nrates = IEEE80211_RATE_SIZE; - *frm++ = nrates; - memcpy(frm, rs-rs_rates, nrates); - frm += nrates; - - /* Add
svn commit: r223231 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:21:56 2011 New Revision: 223231 URL: http://svn.freebsd.org/changeset/base/223231 Log: MFC r220635: iwn_cleanup() is just a wrapper around iwn_detach(), call it directly instead. Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:19:12 2011 (r223230) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:21:56 2011 (r223231) @@ -81,7 +81,6 @@ static struct ieee80211vap *iwn_vap_crea int flags, const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t mac[IEEE80211_ADDR_LEN]); static voidiwn_vap_delete(struct ieee80211vap *); -static int iwn_cleanup(device_t); static int iwn_detach(device_t); static int iwn_nic_lock(struct iwn_softc *); static int iwn_eeprom_lock(struct iwn_softc *); @@ -684,7 +683,7 @@ iwn_attach(device_t dev) ieee80211_announce(ic); return 0; fail: - iwn_cleanup(dev); + iwn_detach(dev); return error; } @@ -845,7 +844,7 @@ iwn_vap_delete(struct ieee80211vap *vap) } static int -iwn_cleanup(device_t dev) +iwn_detach(device_t dev) { struct iwn_softc *sc = device_get_softc(dev); struct ifnet *ifp = sc-sc_ifp; @@ -895,13 +894,6 @@ iwn_cleanup(device_t dev) } static int -iwn_detach(device_t dev) -{ - iwn_cleanup(dev); - return 0; -} - -static int iwn_nic_lock(struct iwn_softc *sc) { int ntries; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r223232 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:23:42 2011 New Revision: 223232 URL: http://svn.freebsd.org/changeset/base/223232 Log: MFC r220636: Instead of trying to figure out which rxon.flags to clear, restart from scratch. Remove htole16() calls, rxon.chan is an uint8_t, ieee80211_chan2ieee() does return an ic_ieee as an int, but I heavily doubt a htole16() will buy us anything here. Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:21:56 2011 (r223231) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:23:42 2011 (r223232) @@ -4757,7 +4757,7 @@ iwn_auth(struct iwn_softc *sc, struct ie /* Update adapter configuration. */ IEEE80211_ADDR_COPY(sc-rxon.bssid, ni-ni_bssid); - sc-rxon.chan = htole16(ieee80211_chan2ieee(ic, ni-ni_chan)); + sc-rxon.chan = ieee80211_chan2ieee(ic, ni-ni_chan); sc-rxon.flags = htole32(IWN_RXON_TSF | IWN_RXON_CTS_TO_SELF); if (IEEE80211_IS_CHAN_2GHZ(ni-ni_chan)) sc-rxon.flags |= htole32(IWN_RXON_AUTO | IWN_RXON_24GHZ); @@ -4843,15 +4843,11 @@ iwn_run(struct iwn_softc *sc, struct iee /* Update adapter configuration. */ IEEE80211_ADDR_COPY(sc-rxon.bssid, ni-ni_bssid); - sc-rxon.chan = htole16(ieee80211_chan2ieee(ic, ni-ni_chan)); sc-rxon.associd = htole16(IEEE80211_AID(ni-ni_associd)); - /* Short preamble and slot time are negotiated when associating. */ - sc-rxon.flags = ~htole32(IWN_RXON_SHPREAMBLE | IWN_RXON_SHSLOT); - sc-rxon.flags |= htole32(IWN_RXON_TSF | IWN_RXON_CTS_TO_SELF); + sc-rxon.chan = ieee80211_chan2ieee(ic, ni-ni_chan); + sc-rxon.flags = htole32(IWN_RXON_TSF | IWN_RXON_CTS_TO_SELF); if (IEEE80211_IS_CHAN_2GHZ(ni-ni_chan)) sc-rxon.flags |= htole32(IWN_RXON_AUTO | IWN_RXON_24GHZ); - else - sc-rxon.flags = ~htole32(IWN_RXON_AUTO | IWN_RXON_24GHZ); if (ic-ic_flags IEEE80211_F_SHSLOT) sc-rxon.flags |= htole32(IWN_RXON_SHSLOT); if (ic-ic_flags IEEE80211_F_SHPREAMBLE) ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r223233 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:25:33 2011 New Revision: 223233 URL: http://svn.freebsd.org/changeset/base/223233 Log: MFC r220659: Don't timeout when stopping DMA channels. Obtained from:OpenBSD Modified: stable/8/sys/dev/iwn/if_iwn.c stable/8/sys/dev/iwn/if_iwnreg.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:23:42 2011 (r223232) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:25:33 2011 (r223233) @@ -4003,7 +4003,7 @@ iwn4965_get_temperature(struct iwn_softc return 0; /* Sign-extend 23-bit R4 value to 32-bit. */ - r4 = (r4 8) 8; + r4 = ((r4 0xff) ^ 0x80) - 0x80; /* Compute temperature in Kelvin. */ temp = (259 * (r4 - r2)) / (r3 - r1); temp = (temp * 97) / 100 + 8; @@ -6283,7 +6283,6 @@ static void iwn_hw_stop(struct iwn_softc *sc) { const struct iwn_hal *hal = sc-sc_hal; - uint32_t tmp; int chnl, qid, ntries; IWN_WRITE(sc, IWN_RESET, IWN_RESET_NEVO); @@ -6305,8 +6304,7 @@ iwn_hw_stop(struct iwn_softc *sc) for (chnl = 0; chnl hal-ndmachnls; chnl++) { IWN_WRITE(sc, IWN_FH_TX_CONFIG(chnl), 0); for (ntries = 0; ntries 200; ntries++) { - tmp = IWN_READ(sc, IWN_FH_TX_STATUS); - if ((tmp IWN_FH_TX_STATUS_IDLE(chnl)) == + if (IWN_READ(sc, IWN_FH_TX_STATUS) IWN_FH_TX_STATUS_IDLE(chnl)) break; DELAY(10); Modified: stable/8/sys/dev/iwn/if_iwnreg.h == --- stable/8/sys/dev/iwn/if_iwnreg.hSat Jun 18 11:23:42 2011 (r223232) +++ stable/8/sys/dev/iwn/if_iwnreg.hSat Jun 18 11:25:33 2011 (r223233) @@ -283,8 +283,7 @@ #define IWN_FH_TX_CHICKEN_SCHED_RETRY (1 1) /* Possible flags for register IWN_FH_TX_STATUS. */ -#define IWN_FH_TX_STATUS_IDLE(chnl)\ - (1 ((chnl) + 24) | 1 ((chnl) + 16)) +#define IWN_FH_TX_STATUS_IDLE(chnl)(1 ((chnl) + 16)) /* Possible flags for register IWN_FH_RX_CONFIG. */ #define IWN_FH_RX_CONFIG_ENA (1 31) ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r223234 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:27:28 2011 New Revision: 223234 URL: http://svn.freebsd.org/changeset/base/223234 Log: MFC r220660: Only handle beacon misses while in RUN state and not scanning. Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:25:33 2011 (r223233) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:27:28 2011 (r223234) @@ -2463,23 +2463,22 @@ iwn_notif_intr(struct iwn_softc *sc) BUS_DMASYNC_POSTREAD); misses = le32toh(miss-consecutive); - /* XXX not sure why we're notified w/ zero */ - if (misses == 0) - break; DPRINTF(sc, IWN_DEBUG_STATE, %s: beacons missed %d/%d\n, __func__, misses, le32toh(miss-total)); - /* * If more than 5 consecutive beacons are missed, * reinitialize the sensitivity state machine. */ - if (vap-iv_state == IEEE80211_S_RUN misses 5) - (void) iwn_init_sensitivity(sc); - if (misses = vap-iv_bmissthreshold) { - IWN_UNLOCK(sc); - ieee80211_beacon_miss(ic); - IWN_LOCK(sc); + if (vap-iv_state == IEEE80211_S_RUN + (ic-ic_flags IEEE80211_F_SCAN) != 0) { + if (misses 5) + (void)iwn_init_sensitivity(sc); + if (misses = vap-iv_bmissthreshold) { + IWN_UNLOCK(sc); + ieee80211_beacon_miss(ic); + IWN_LOCK(sc); + } } break; } ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r223236 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:29:44 2011 New Revision: 223236 URL: http://svn.freebsd.org/changeset/base/223236 Log: MFC r220661: Fixes for firmware handling: - there is a local variable for sc-fw_dma, use that instead - OpenBSD uses 5*hz to wait for firmware to be loaded - in case the firmware module contains invalid data, actually release it Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:27:44 2011 (r223235) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:29:44 2011 (r223236) @@ -5629,10 +5629,10 @@ iwn4965_load_firmware(struct iwn_softc * /* Copy initialization sections into pre-allocated DMA-safe memory. */ memcpy(dma-vaddr, fw-init.data, fw-init.datasz); - bus_dmamap_sync(sc-fw_dma.tag, dma-map, BUS_DMASYNC_PREWRITE); + bus_dmamap_sync(dma-tag, dma-map, BUS_DMASYNC_PREWRITE); memcpy(dma-vaddr + IWN4965_FW_DATA_MAXSZ, fw-init.text, fw-init.textsz); - bus_dmamap_sync(sc-fw_dma.tag, dma-map, BUS_DMASYNC_PREWRITE); + bus_dmamap_sync(dma-tag, dma-map, BUS_DMASYNC_PREWRITE); /* Tell adapter where to find initialization sections. */ error = iwn_nic_lock(sc); @@ -5670,10 +5670,10 @@ iwn4965_load_firmware(struct iwn_softc * /* Copy runtime sections into pre-allocated DMA-safe memory. */ memcpy(dma-vaddr, fw-main.data, fw-main.datasz); - bus_dmamap_sync(sc-fw_dma.tag, dma-map, BUS_DMASYNC_PREWRITE); + bus_dmamap_sync(dma-tag, dma-map, BUS_DMASYNC_PREWRITE); memcpy(dma-vaddr + IWN4965_FW_DATA_MAXSZ, fw-main.text, fw-main.textsz); - bus_dmamap_sync(sc-fw_dma.tag, dma-map, BUS_DMASYNC_PREWRITE); + bus_dmamap_sync(dma-tag, dma-map, BUS_DMASYNC_PREWRITE); /* Tell adapter where to find runtime sections. */ error = iwn_nic_lock(sc); @@ -5700,7 +5700,7 @@ iwn5000_load_firmware_section(struct iwn /* Copy firmware section into pre-allocated DMA-safe memory. */ memcpy(dma-vaddr, section, size); - bus_dmamap_sync(sc-fw_dma.tag, dma-map, BUS_DMASYNC_PREWRITE); + bus_dmamap_sync(dma-tag, dma-map, BUS_DMASYNC_PREWRITE); error = iwn_nic_lock(sc); if (error != 0) @@ -5726,7 +5726,7 @@ iwn5000_load_firmware_section(struct iwn iwn_nic_unlock(sc); /* Wait at most five seconds for FH DMA transfer to complete. */ - return msleep(sc, sc-sc_mtx, PCATCH, iwninit, hz); + return msleep(sc, sc-sc_mtx, PCATCH, iwninit, 5 * hz); } static int @@ -5771,7 +5771,7 @@ iwn_read_firmware_leg(struct iwn_softc * size_t hdrlen = 24; uint32_t rev; - ptr = (const uint32_t *)sc-fw_fp-data; + ptr = (const uint32_t *)fw-data; rev = le32toh(*ptr++); /* Check firmware API version. */ @@ -5819,7 +5819,7 @@ iwn_read_firmware_leg(struct iwn_softc * /* * Extract text and data sections from a TLV firmware image. */ -int +static int iwn_read_firmware_tlv(struct iwn_softc *sc, struct iwn_fw_info *fw, uint16_t alt) { @@ -5931,6 +5931,8 @@ iwn_read_firmware(struct iwn_softc *sc) device_printf(sc-sc_dev, %s: firmware file too short: %zu bytes\n, __func__, fw-size); + firmware_put(sc-fw_fp, FIRMWARE_UNLOAD); + sc-fw_fp = NULL; return EINVAL; } @@ -5942,6 +5944,8 @@ iwn_read_firmware(struct iwn_softc *sc) if (error != 0) { device_printf(sc-sc_dev, %s: could not read firmware sections\n, __func__); + firmware_put(sc-fw_fp, FIRMWARE_UNLOAD); + sc-fw_fp = NULL; return error; } @@ -5954,6 +5958,8 @@ iwn_read_firmware(struct iwn_softc *sc) (fw-boot.textsz 3) != 0) { device_printf(sc-sc_dev, %s: firmware sections too large\n, __func__); + firmware_put(sc-fw_fp, FIRMWARE_UNLOAD); + sc-fw_fp = NULL; return EINVAL; } ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r223237 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:31:19 2011 New Revision: 223237 URL: http://svn.freebsd.org/changeset/base/223237 Log: MFC r220662: Split out bluetooth coexistence setup. Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:29:44 2011 (r223236) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:31:19 2011 (r223237) @@ -196,6 +196,7 @@ static void iwn_tune_sensitivity(struct const struct iwn_rx_stats *); static int iwn_send_sensitivity(struct iwn_softc *); static int iwn_set_pslevel(struct iwn_softc *, int, int, int); +static int iwn_send_btcoex(struct iwn_softc *); static int iwn_config(struct iwn_softc *); static uint8_t *ieee80211_add_ssid(uint8_t *, const uint8_t *, u_int); static int iwn_scan(struct iwn_softc *); @@ -4464,12 +4465,25 @@ iwn_set_pslevel(struct iwn_softc *sc, in } static int +iwn_send_btcoex(struct iwn_softc *sc) +{ + struct iwn_bluetooth cmd; + + memset(cmd, 0, sizeof cmd); + cmd.flags = IWN_BT_COEX_CHAN_ANN | IWN_BT_COEX_BT_PRIO; + cmd.lead_time = IWN_BT_LEAD_TIME_DEF; + cmd.max_kill = IWN_BT_MAX_KILL_DEF; + DPRINTF(sc, IWN_DEBUG_RESET, %s: configuring bluetooth coexistence\n, + __func__); + return iwn_cmd(sc, IWN_CMD_BT_COEX, cmd, sizeof(cmd), 0); +} + +static int iwn_config(struct iwn_softc *sc) { const struct iwn_hal *hal = sc-sc_hal; struct ifnet *ifp = sc-sc_ifp; struct ieee80211com *ic = ifp-if_l2com; - struct iwn_bluetooth bluetooth; uint32_t txmask; int error; uint16_t rxchain; @@ -4490,13 +4504,7 @@ iwn_config(struct iwn_softc *sc) } /* Configure bluetooth coexistence. */ - memset(bluetooth, 0, sizeof bluetooth); - bluetooth.flags = IWN_BT_COEX_CHAN_ANN | IWN_BT_COEX_BT_PRIO; - bluetooth.lead_time = IWN_BT_LEAD_TIME_DEF; - bluetooth.max_kill = IWN_BT_MAX_KILL_DEF; - DPRINTF(sc, IWN_DEBUG_RESET, %s: config bluetooth coexistence\n, - __func__); - error = iwn_cmd(sc, IWN_CMD_BT_COEX, bluetooth, sizeof bluetooth, 0); + error = iwn_send_btcoex(sc); if (error != 0) { device_printf(sc-sc_dev, %s: could not configure bluetooth coexistence, error %d\n, ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r223238 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:33:55 2011 New Revision: 223238 URL: http://svn.freebsd.org/changeset/base/223238 Log: MFC r220667+220668: Split up watchdog and calibration callout. This allows us to use different timing on both and to remove some monitor mode specific hacks (which has no calibration). Modified: stable/8/sys/dev/iwn/if_iwn.c stable/8/sys/dev/iwn/if_iwnvar.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:31:19 2011 (r223237) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:33:55 2011 (r223238) @@ -123,10 +123,9 @@ static struct ieee80211_node *iwn_node_a const uint8_t mac[IEEE80211_ADDR_LEN]); static int iwn_media_change(struct ifnet *); static int iwn_newstate(struct ieee80211vap *, enum ieee80211_state, int); +static voidiwn_calib_timeout(void *); static voidiwn_rx_phy(struct iwn_softc *, struct iwn_rx_desc *, struct iwn_rx_data *); -static voidiwn_timer_timeout(void *); -static voidiwn_calib_reset(struct iwn_softc *); static voidiwn_rx_done(struct iwn_softc *, struct iwn_rx_desc *, struct iwn_rx_data *); #if 0 /* HT */ @@ -161,7 +160,7 @@ static int iwn_raw_xmit(struct ieee80211 const struct ieee80211_bpf_params *); static voidiwn_start(struct ifnet *); static voidiwn_start_locked(struct ifnet *); -static voidiwn_watchdog(struct iwn_softc *sc); +static voidiwn_watchdog(void *); static int iwn_ioctl(struct ifnet *, u_long, caddr_t); static int iwn_cmd(struct iwn_softc *, int, const void *, int, int); static int iwn4965_add_node(struct iwn_softc *, struct iwn_node_info *, @@ -475,7 +474,6 @@ iwn_attach(device_t dev) } IWN_LOCK_INIT(sc); - callout_init_mtx(sc-sc_timer_to, sc-sc_mtx, 0); TASK_INIT(sc-sc_reinit_task, 0, iwn_hw_reset, sc ); TASK_INIT(sc-sc_radioon_task, 0, iwn_radio_on, sc ); TASK_INIT(sc-sc_radiooff_task, 0, iwn_radio_off, sc ); @@ -668,6 +666,10 @@ iwn_attach(device_t dev) #endif iwn_radiotap_attach(sc); + + callout_init_mtx(sc-calib_to, sc-sc_mtx, 0); + callout_init_mtx(sc-watchdog_to, sc-sc_mtx, 0); + iwn_sysctlattach(sc); /* @@ -860,7 +862,8 @@ iwn_detach(device_t dev) ieee80211_draintask(ic, sc-sc_radiooff_task); iwn_stop(sc); - callout_drain(sc-sc_timer_to); + callout_drain(sc-watchdog_to); + callout_drain(sc-calib_to); ieee80211_ifdetach(ic); } @@ -1942,7 +1945,7 @@ iwn_newstate(struct ieee80211vap *vap, e IEEE80211_UNLOCK(ic); IWN_LOCK(sc); - callout_stop(sc-sc_timer_to); + callout_stop(sc-calib_to); switch (nstate) { case IEEE80211_S_ASSOC: @@ -1959,7 +1962,8 @@ iwn_newstate(struct ieee80211vap *vap, e */ sc-rxon.associd = 0; sc-rxon.filter = ~htole32(IWN_FILTER_BSS); - iwn_calib_reset(sc); + sc-calib.state = IWN_CALIB_STATE_INIT; + error = iwn_auth(sc, vap); break; @@ -1967,9 +1971,8 @@ iwn_newstate(struct ieee80211vap *vap, e /* * RUN - RUN transition; Just restart the timers. */ - if (vap-iv_state == IEEE80211_S_RUN - vap-iv_opmode != IEEE80211_M_MONITOR) { - iwn_calib_reset(sc); + if (vap-iv_state == IEEE80211_S_RUN) { + sc-calib_cnt = 0; break; } @@ -1981,6 +1984,10 @@ iwn_newstate(struct ieee80211vap *vap, e error = iwn_run(sc, vap); break; + case IEEE80211_S_INIT: + sc-calib.state = IWN_CALIB_STATE_INIT; + break; + default: break; } @@ -1989,6 +1996,27 @@ iwn_newstate(struct ieee80211vap *vap, e return ivp-iv_newstate(vap, nstate, arg); } +static void +iwn_calib_timeout(void *arg) +{ + struct iwn_softc *sc = arg; + + IWN_LOCK_ASSERT(sc); + + /* Force automatic TX power calibration every 60 secs. */ + if (++sc-calib_cnt = 120) { + uint32_t flags = 0; + + DPRINTF(sc, IWN_DEBUG_CALIBRATE, %s\n, + sending request for statistics); + (void)iwn_cmd(sc, IWN_CMD_GET_STATISTICS, flags, + sizeof flags, 1); + sc-calib_cnt = 0; + } +
svn commit: r223239 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:36:57 2011 New Revision: 223239 URL: http://svn.freebsd.org/changeset/base/223239 Log: MFC r220674: Revert some of local calibration changes in favour of the OpenBSD implementation. This includes the fix required for the 6050 series devices. Modified: stable/8/sys/dev/iwn/if_iwn.c stable/8/sys/dev/iwn/if_iwnvar.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:33:55 2011 (r223238) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:36:57 2011 (r223239) @@ -132,6 +132,8 @@ static void iwn_rx_done(struct iwn_softc static voidiwn_rx_compressed_ba(struct iwn_softc *, struct iwn_rx_desc *, struct iwn_rx_data *); #endif +static voidiwn5000_rx_calib_results(struct iwn_softc *, + struct iwn_rx_desc *, struct iwn_rx_data *); static voidiwn_rx_statistics(struct iwn_softc *, struct iwn_rx_desc *, struct iwn_rx_data *); static voidiwn4965_tx_done(struct iwn_softc *, struct iwn_rx_desc *, @@ -217,15 +219,10 @@ static void iwn5000_ampdu_tx_start(struc struct ieee80211_node *, uint8_t, uint16_t); static voidiwn5000_ampdu_tx_stop(struct iwn_softc *, uint8_t, uint16_t); #endif -static int iwn5000_send_calib_results(struct iwn_softc *); -static int iwn5000_save_calib_result(struct iwn_softc *, - struct iwn_phy_calib *, int, int); -static voidiwn5000_free_calib_results(struct iwn_softc *); -static int iwn5000_chrystal_calib(struct iwn_softc *); -static int iwn5000_send_calib_query(struct iwn_softc *, uint32_t); -static int iwn5000_rx_calib_result(struct iwn_softc *, - struct iwn_rx_desc *, struct iwn_rx_data *); +static int iwn5000_query_calibration(struct iwn_softc *); +static int iwn5000_send_calibration(struct iwn_softc *); static int iwn5000_send_wimax_coex(struct iwn_softc *); +static int iwn5000_crystal_calib(struct iwn_softc *); static int iwn4965_post_alive(struct iwn_softc *); static int iwn5000_post_alive(struct iwn_softc *); static int iwn4965_load_bootcode(struct iwn_softc *, const uint8_t *, @@ -709,9 +706,6 @@ iwn_hal_attach(struct iwn_softc *sc) sc-fwname = iwn5000fw; sc-txchainmask = IWN_ANT_B; sc-rxchainmask = IWN_ANT_AB; - sc-calib_init = IWN_CALIB_XTAL | IWN_CALIB_LO | - IWN_CALIB_TX_IQ | IWN_CALIB_TX_IQ_PERIODIC | - IWN_CALIB_BASE_BAND; break; case IWN_HW_REV_TYPE_5150: sc-sc_hal = iwn5000_hal; @@ -719,8 +713,6 @@ iwn_hal_attach(struct iwn_softc *sc) sc-fwname = iwn5150fw; sc-txchainmask = IWN_ANT_A; sc-rxchainmask = IWN_ANT_AB; - sc-calib_init = IWN_CALIB_DC | IWN_CALIB_LO | - IWN_CALIB_TX_IQ | IWN_CALIB_BASE_BAND; break; case IWN_HW_REV_TYPE_5300: case IWN_HW_REV_TYPE_5350: @@ -729,9 +721,6 @@ iwn_hal_attach(struct iwn_softc *sc) sc-fwname = iwn5000fw; sc-txchainmask = IWN_ANT_ABC; sc-rxchainmask = IWN_ANT_ABC; - sc-calib_init = IWN_CALIB_XTAL | IWN_CALIB_LO | - IWN_CALIB_TX_IQ | IWN_CALIB_TX_IQ_PERIODIC | - IWN_CALIB_BASE_BAND; break; case IWN_HW_REV_TYPE_1000: sc-sc_hal = iwn5000_hal; @@ -739,9 +728,6 @@ iwn_hal_attach(struct iwn_softc *sc) sc-fwname = iwn1000fw; sc-txchainmask = IWN_ANT_A; sc-rxchainmask = IWN_ANT_AB; - sc-calib_init = IWN_CALIB_XTAL | IWN_CALIB_LO | - IWN_CALIB_TX_IQ | IWN_CALIB_TX_IQ_PERIODIC | - IWN_CALIB_BASE_BAND; break; case IWN_HW_REV_TYPE_6000: sc-sc_hal = iwn5000_hal; @@ -757,11 +743,8 @@ iwn_hal_attach(struct iwn_softc *sc) default: sc-txchainmask = IWN_ANT_ABC; sc-rxchainmask = IWN_ANT_ABC; - sc-calib_runtime = IWN_CALIB_DC; break; } - sc-calib_init = IWN_CALIB_XTAL | IWN_CALIB_LO | - IWN_CALIB_TX_IQ | IWN_CALIB_BASE_BAND; break; case IWN_HW_REV_TYPE_6050: sc-sc_hal = iwn5000_hal; @@ -769,9 +752,6 @@ iwn_hal_attach(struct iwn_softc *sc) sc-fwname = iwn6050fw; sc-txchainmask =
svn commit: r223240 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:39:09 2011 New Revision: 223240 URL: http://svn.freebsd.org/changeset/base/223240 Log: MFC r220676-220677: The 6005 series devices need additional temperature offset calibration as well as the IWN_GP_DRIVER_CALIB_VER6 bit set. Modified: stable/8/sys/dev/iwn/if_iwn.c stable/8/sys/dev/iwn/if_iwnreg.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:36:57 2011 (r223239) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:39:09 2011 (r223240) @@ -223,6 +223,7 @@ static int iwn5000_query_calibration(str static int iwn5000_send_calibration(struct iwn_softc *); static int iwn5000_send_wimax_coex(struct iwn_softc *); static int iwn5000_crystal_calib(struct iwn_softc *); +static int iwn5000_temp_offset_calib(struct iwn_softc *); static int iwn4965_post_alive(struct iwn_softc *); static int iwn5000_post_alive(struct iwn_softc *); static int iwn4965_load_bootcode(struct iwn_softc *, const uint8_t *, @@ -4539,6 +4540,16 @@ iwn_config(struct iwn_softc *sc) int error; uint16_t rxchain; + if (sc-hw_type == IWN_HW_REV_TYPE_6005) { + /* Set radio temperature sensor offset. */ + error = iwn5000_temp_offset_calib(sc); + if (error != 0) { + device_printf(sc-sc_dev, + %s: could not set temperature offset\n, __func__); + return error; + } + } + /* Configure valid TX chains for 5000 Series. */ if (sc-hw_type != IWN_HW_REV_TYPE_4965) { txmask = htole32(sc-txchainmask); @@ -5326,6 +5337,24 @@ iwn5000_crystal_calib(struct iwn_softc * return iwn_cmd(sc, IWN_CMD_PHY_CALIB, cmd, sizeof cmd, 0); } +static int +iwn5000_temp_offset_calib(struct iwn_softc *sc) +{ + struct iwn5000_phy_calib_temp_offset cmd; + + memset(cmd, 0, sizeof cmd); + cmd.code = IWN5000_PHY_CALIB_TEMP_OFFSET; + cmd.ngroups = 1; + cmd.isvalid = 1; + if (sc-eeprom_temp != 0) + cmd.offset = htole16(sc-eeprom_temp); + else + cmd.offset = htole16(IWN_DEFAULT_TEMP_OFFSET); + DPRINTF(sc, IWN_DEBUG_CALIBRATE, setting radio sensor offset to %d\n, + le16toh(cmd.offset)); + return iwn_cmd(sc, IWN_CMD_PHY_CALIB, cmd, sizeof cmd, 0); +} + /* * This function is called after the runtime firmware notifies us of its * readiness (called in a process context.) @@ -6028,7 +6057,8 @@ iwn5000_nic_config(struct iwn_softc *sc) /* Use internal power amplifier only. */ IWN_WRITE(sc, IWN_GP_DRIVER, IWN_GP_DRIVER_RADIO_2X2_IPA); } - if (sc-hw_type == IWN_HW_REV_TYPE_6050 sc-calib_ver = 6) { + if ((sc-hw_type == IWN_HW_REV_TYPE_6050 || +sc-hw_type == IWN_HW_REV_TYPE_6005) sc-calib_ver = 6) { /* Indicate that ROM calibration version is =6. */ IWN_SETBITS(sc, IWN_GP_DRIVER, IWN_GP_DRIVER_CALIB_VER6); } Modified: stable/8/sys/dev/iwn/if_iwnreg.h == --- stable/8/sys/dev/iwn/if_iwnreg.hSat Jun 18 11:36:57 2011 (r223239) +++ stable/8/sys/dev/iwn/if_iwnreg.hSat Jun 18 11:39:09 2011 (r223240) @@ -885,6 +885,8 @@ struct iwn_phy_calib { #define IWN5000_PHY_CALIB_CRYSTAL 15 #define IWN5000_PHY_CALIB_BASE_BAND16 #define IWN5000_PHY_CALIB_TX_IQ_PERIODIC 17 +#define IWN5000_PHY_CALIB_TEMP_OFFSET 18 + #define IWN5000_PHY_CALIB_RESET_NOISE_GAIN 18 #define IWN5000_PHY_CALIB_NOISE_GAIN 19 @@ -903,6 +905,17 @@ struct iwn5000_phy_calib_crystal { uint8_t reserved[2]; } __packed; +struct iwn5000_phy_calib_temp_offset { + uint8_t code; + uint8_t group; + uint8_t ngroups; + uint8_t isvalid; + int16_t offset; +#define IWN_DEFAULT_TEMP_OFFSET2700 + + uint16_treserved; +} __packed; + struct iwn_phy_calib_gain { uint8_t code; uint8_t group; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r223241 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:41:06 2011 New Revision: 223241 URL: http://svn.freebsd.org/changeset/base/223241 Log: MFC r220687: Obtain the channel number directly from the laster RXON command, also chan is an uint8_t. Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:39:09 2011 (r223240) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:41:06 2011 (r223241) @@ -1732,7 +1732,8 @@ iwn_read_eeprom_band(struct iwn_softc *s struct iwn_eeprom_chan *channels = sc-eeprom_channels[n]; const struct iwn_chan_band *band = iwn_bands[n]; struct ieee80211_channel *c; - int i, chan, nflags; + uint8_t chan; + int i, nflags; for (i = 0; i band-nchan; i++) { if (!(channels[i].flags IWN_EEPROM_CHAN_VALID)) { @@ -3806,8 +3807,6 @@ iwn4965_set_txpower(struct iwn_softc *sc ((y1) + fdivround(((int)(x) - (x1)) * ((y2) - (y1)), (x2) - (x1), n)) static const int tdiv[IWN_NATTEN_GROUPS] = { 9, 8, 8, 8, 6 }; - struct ifnet *ifp = sc-sc_ifp; - struct ieee80211com *ic = ifp-if_l2com; struct iwn_ucode_info *uc = sc-ucode_info; struct iwn4965_cmd_txpower cmd; struct iwn4965_eeprom_chan_samples *chans; @@ -3816,8 +3815,8 @@ iwn4965_set_txpower(struct iwn_softc *sc const uint8_t *rf_gain, *dsp_gain; uint8_t chan; - /* Retrieve channel number. */ - chan = ieee80211_chan2ieee(ic, ch); + /* Retrieve current channel from last RXON. */ + chan = sc-rxon.chan; DPRINTF(sc, IWN_DEBUG_RESET, setting TX power for channel %d\n, chan); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r223242 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:43:06 2011 New Revision: 223242 URL: http://svn.freebsd.org/changeset/base/223242 Log: MFC r220688: Pass errors that might happen during state transitions up to net80211. Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:41:06 2011 (r223241) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:43:06 2011 (r223242) @@ -1920,7 +1920,7 @@ iwn_newstate(struct ieee80211vap *vap, e struct iwn_vap *ivp = IWN_VAP(vap); struct ieee80211com *ic = vap-iv_ic; struct iwn_softc *sc = ic-ic_ifp-if_softc; - int error; + int error = 0; DPRINTF(sc, IWN_DEBUG_STATE, %s: %s - %s\n, __func__, ieee80211_state_name[vap-iv_state], @@ -1947,7 +1947,10 @@ iwn_newstate(struct ieee80211vap *vap, e sc-rxon.filter = ~htole32(IWN_FILTER_BSS); sc-calib.state = IWN_CALIB_STATE_INIT; - error = iwn_auth(sc, vap); + if ((error = iwn_auth(sc, vap)) != 0) { + device_printf(sc-sc_dev, + %s: could not move to auth state\n, __func__); + } break; case IEEE80211_S_RUN: @@ -1964,7 +1967,10 @@ iwn_newstate(struct ieee80211vap *vap, e * which is done with a firmware cmd. We also defer * starting the timers until that work is done. */ - error = iwn_run(sc, vap); + if ((error = iwn_run(sc, vap)) != 0) { + device_printf(sc-sc_dev, + %s: could not move to run state\n, __func__); + } break; case IEEE80211_S_INIT: @@ -1976,6 +1982,8 @@ iwn_newstate(struct ieee80211vap *vap, e } IWN_UNLOCK(sc); IEEE80211_LOCK(ic); + if (error != 0) + return error; return ivp-iv_newstate(vap, nstate, arg); } ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r223243 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:44:54 2011 New Revision: 223243 URL: http://svn.freebsd.org/changeset/base/223243 Log: MFC r220689: RSSI related syncs with the OpenBSD code: - read RSSI only for the active chains - cast RSSI/NF to int8_t before passing it up to radiotap - remove the htole64() for the timestamp Obtained from:OpenBSD Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:43:06 2011 (r223242) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:44:54 2011 (r223243) @@ -2128,18 +2128,18 @@ iwn_rx_done(struct iwn_softc *sc, struct m-m_data = head; m-m_pkthdr.len = m-m_len = len; - rssi = hal-get_rssi(sc, stat); - /* Grab a reference to the source node. */ wh = mtod(m, struct ieee80211_frame *); ni = ieee80211_find_rxnode(ic, (struct ieee80211_frame_min *)wh); nf = (ni != NULL ni-ni_vap-iv_state == IEEE80211_S_RUN (ic-ic_flags IEEE80211_F_SCAN) == 0) ? sc-noise : -95; + rssi = hal-get_rssi(sc, stat); + if (ieee80211_radiotap_active(ic)) { struct iwn_rx_radiotap_header *tap = sc-sc_rxtap; - tap-wr_tsft = htole64(stat-tstamp); + tap-wr_tsft = stat-tstamp; tap-wr_flags = 0; if (stat-flags htole16(IWN_STAT_FLAG_SHPREAMBLE)) tap-wr_flags |= IEEE80211_RADIOTAP_F_SHORTPRE; @@ -2161,8 +2161,8 @@ iwn_rx_done(struct iwn_softc *sc, struct /* Unknown rate: should not happen. */ default: tap-wr_rate = 0; } - tap-wr_dbm_antsignal = rssi; - tap-wr_dbm_antnoise = nf; + tap-wr_dbm_antsignal = (int8_t)rssi; + tap-wr_dbm_antnoise = (int8_t)nf; } IWN_UNLOCK(sc); @@ -3985,18 +3985,12 @@ iwn4965_get_rssi(struct iwn_softc *sc, s agc = (le16toh(phy-agc) 7) 0x7f; rssi = 0; -#if 0 - if (mask IWN_ANT_A) /* Ant A */ - rssi = max(rssi, phy-rssi[0]); - if (mask IWN_ATH_B) /* Ant B */ - rssi = max(rssi, phy-rssi[2]); - if (mask IWN_ANT_C) /* Ant C */ - rssi = max(rssi, phy-rssi[4]); -#else - rssi = max(rssi, phy-rssi[0]); - rssi = max(rssi, phy-rssi[2]); - rssi = max(rssi, phy-rssi[4]); -#endif + if (mask IWN_ANT_A) + rssi = MAX(rssi, phy-rssi[0]); + if (mask IWN_ANT_B) + rssi = MAX(rssi, phy-rssi[2]); + if (mask IWN_ANT_C) + rssi = MAX(rssi, phy-rssi[4]); DPRINTF(sc, IWN_DEBUG_RECV, %s: agc %d mask 0x%x rssi %d %d %d result %d\n, __func__, agc, mask, ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r223244 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:51:17 2011 New Revision: 223244 URL: http://svn.freebsd.org/changeset/base/223244 Log: MFC r220691-220694,220700-220702,220704,220710-220711: - Remove the flags argument of iwn_dma_contig_alloc(), it is always set as BUS_DMA_NOWAIT. While here also set BUS_DMA_COHERENT. - OpenBSD uses IWN_RBUF_SIZE not MJUMPAGESIZE for the RX path, also replace caddr_t with void * to be in sync. - In case a new mbuf can't be loaded, reuse the old one. - scratch_paddr has the same address pre-assigned, use that instead. - Rewrite DMA segment handling to be more inline with the OpenBSD code. Also change the m_len == 0 hack to have less code churn. - Make sure to destroy all DMA tags and maps. - Unify TX/RX ring allocation, finish the descriptior DMA stuff before starting with data. - Add missing bus_dmamap_sync calls as well as remove two duplicate ones. - Prevent double-free, also use the same error codes as OpenBSD. - Replace RX/TX ring allocation error messages with something more sane and remove those where the caller already prints one. Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:44:54 2011 (r223243) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:51:17 2011 (r223244) @@ -88,7 +88,7 @@ static intiwn_init_otprom(struct iwn_so static int iwn_read_prom_data(struct iwn_softc *, uint32_t, void *, int); static voidiwn_dma_map_addr(void *, bus_dma_segment_t *, int, int); static int iwn_dma_contig_alloc(struct iwn_softc *, struct iwn_dma_info *, - void **, bus_size_t, bus_size_t, int); + void **, bus_size_t, bus_size_t); static voidiwn_dma_contig_free(struct iwn_dma_info *); static int iwn_alloc_sched(struct iwn_softc *); static voidiwn_free_sched(struct iwn_softc *); @@ -1117,7 +1117,7 @@ iwn_dma_map_addr(void *arg, bus_dma_segm static int iwn_dma_contig_alloc(struct iwn_softc *sc, struct iwn_dma_info *dma, - void **kvap, bus_size_t size, bus_size_t alignment, int flags) +void **kvap, bus_size_t size, bus_size_t alignment) { int error; @@ -1126,27 +1126,21 @@ iwn_dma_contig_alloc(struct iwn_softc *s error = bus_dma_tag_create(bus_get_dma_tag(sc-sc_dev), alignment, 0, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, size, - 1, size, flags, NULL, NULL, dma-tag); - if (error != 0) { - device_printf(sc-sc_dev, - %s: bus_dma_tag_create failed, error %d\n, - __func__, error); + 1, size, BUS_DMA_NOWAIT, NULL, NULL, dma-tag); + if (error != 0) goto fail; - } + error = bus_dmamem_alloc(dma-tag, (void **)dma-vaddr, - flags | BUS_DMA_ZERO, dma-map); - if (error != 0) { - device_printf(sc-sc_dev, - %s: bus_dmamem_alloc failed, error %d\n, __func__, error); + BUS_DMA_NOWAIT | BUS_DMA_ZERO | BUS_DMA_COHERENT, dma-map); + if (error != 0) goto fail; - } - error = bus_dmamap_load(dma-tag, dma-map, dma-vaddr, - size, iwn_dma_map_addr, dma-paddr, flags); - if (error != 0) { - device_printf(sc-sc_dev, - %s: bus_dmamap_load failed, error %d\n, __func__, error); + + error = bus_dmamap_load(dma-tag, dma-map, dma-vaddr, size, + iwn_dma_map_addr, dma-paddr, BUS_DMA_NOWAIT); + if (error != 0) goto fail; - } + + bus_dmamap_sync(dma-tag, dma-map, BUS_DMASYNC_PREWRITE); if (kvap != NULL) *kvap = dma-vaddr; @@ -1159,16 +1153,20 @@ fail: static void iwn_dma_contig_free(struct iwn_dma_info *dma) { - if (dma-tag != NULL) { - if (dma-map != NULL) { - if (dma-paddr == 0) { - bus_dmamap_sync(dma-tag, dma-map, - BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE); - bus_dmamap_unload(dma-tag, dma-map); - } + if (dma-map != NULL) { + if (dma-vaddr != NULL) { + bus_dmamap_sync(dma-tag, dma-map, + BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); + bus_dmamap_unload(dma-tag, dma-map); bus_dmamem_free(dma-tag, dma-vaddr, dma-map); + dma-vaddr = NULL; } + bus_dmamap_destroy(dma-tag,
svn commit: r223245 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:52:58 2011 New Revision: 223245 URL: http://svn.freebsd.org/changeset/base/223245 Log: MFC r220715: Instead of hardcoding TX rates and using that to fill the retry table use the neogotiated ni_rates instead. Modified: stable/8/sys/dev/iwn/if_iwn.c stable/8/sys/dev/iwn/if_iwnreg.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:51:17 2011 (r223244) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:52:58 2011 (r223245) @@ -121,6 +121,7 @@ static void iwn_read_eeprom_channels(str static voidiwn_read_eeprom_enhinfo(struct iwn_softc *); static struct ieee80211_node *iwn_node_alloc(struct ieee80211vap *, const uint8_t mac[IEEE80211_ADDR_LEN]); +static voidiwn_newassoc(struct ieee80211_node *, int); static int iwn_media_change(struct ifnet *); static int iwn_newstate(struct ieee80211vap *, enum ieee80211_state, int); static voidiwn_calib_timeout(void *); @@ -169,7 +170,8 @@ static int iwn4965_add_node(struct iwn_s int); static int iwn5000_add_node(struct iwn_softc *, struct iwn_node_info *, int); -static int iwn_set_link_quality(struct iwn_softc *, uint8_t, int); +static int iwn_set_link_quality(struct iwn_softc *, + struct ieee80211_node *); static int iwn_add_broadcast_node(struct iwn_softc *, int); static int iwn_wme_update(struct ieee80211com *); static voidiwn_update_mcast(struct ifnet *); @@ -648,6 +650,7 @@ iwn_attach(device_t dev) ic-ic_vap_delete = iwn_vap_delete; ic-ic_raw_xmit = iwn_raw_xmit; ic-ic_node_alloc = iwn_node_alloc; + ic-ic_newassoc = iwn_newassoc; ic-ic_wme.wme_update = iwn_wme_update; ic-ic_update_mcast = iwn_update_mcast; ic-ic_scan_start = iwn_scan_start; @@ -1908,6 +1911,18 @@ iwn_node_alloc(struct ieee80211vap *vap, return malloc(sizeof (struct iwn_node), M_80211_NODE,M_NOWAIT | M_ZERO); } +static void +iwn_newassoc(struct ieee80211_node *ni, int isnew) +{ + struct iwn_node *wn = (void *)ni; + int ridx, i; + + for (i = 0; i ni-ni_rates.rs_nrates; i++) { + ridx = iwn_plcp_signal(ni-ni_rates.rs_rates[i]); + wn-ridx[i] = ridx; + } +} + static int iwn_media_change(struct ifnet *ifp) { @@ -2891,7 +2906,7 @@ iwn_plcp_signal(int rate) { int i; for (i = 0; i IWN_RIDX_MAX + 1; i++) { - if (rate == iwn_rates[i].rate) + if ((rate IEEE80211_RATE_VAL) == iwn_rates[i].rate) return i; } @@ -3055,7 +3070,7 @@ iwn_tx_data(struct iwn_softc *sc, struct txant = IWN_LSB(sc-txchainmask); tx-rflags |= IWN_RFLAG_ANT(txant); } else { - tx-linkq = IWN_RIDX_OFDM54 - ridx; + tx-linkq = ni-ni_rates.rs_nrates - ridx - 1; flags |= IWN_TX_LINKQ; /* enable MRR */ } @@ -3599,98 +3614,39 @@ iwn5000_add_node(struct iwn_softc *sc, s return iwn_cmd(sc, IWN_CMD_ADD_NODE, node, sizeof (*node), async); } -#if 0 /* HT */ -static const uint8_t iwn_ridx_to_plcp[] = { - 10, 20, 55, 110, /* CCK */ - 0xd, 0xf, 0x5, 0x7, 0x9, 0xb, 0x1, 0x3, 0x3 /* OFDM R1-R4 */ -}; -static const uint8_t iwn_siso_mcs_to_plcp[] = { - 0, 0, 0, 0, /* CCK */ - 0, 0, 1, 2, 3, 4, 5, 6, 7 /* HT */ -}; -static const uint8_t iwn_mimo_mcs_to_plcp[] = { - 0, 0, 0, 0, /* CCK */ - 8, 8, 9, 10, 11, 12, 13, 14, 15 /* HT */ -}; -#endif -static const uint8_t iwn_prev_ridx[] = { - /* NB: allow fallback from CCK11 to OFDM9 and from OFDM6 to CCK5 */ - 0, 0, 1, 5, /* CCK */ - 2, 4, 3, 6, 7, 8, 9, 10, 10 /* OFDM */ -}; - -/* - * Configure hardware link parameters for the specified - * node operating on the specified channel. - */ static int -iwn_set_link_quality(struct iwn_softc *sc, uint8_t id, int async) +iwn_set_link_quality(struct iwn_softc *sc, struct ieee80211_node *ni) { - struct ifnet *ifp = sc-sc_ifp; - struct ieee80211com *ic = ifp-if_l2com; + struct iwn_node *wn = (void *)ni; + struct ieee80211_rateset *rs = ni-ni_rates; struct iwn_cmd_link_quality linkq; const struct iwn_rate *rinfo; - int i; - uint8_t txant, ridx; + uint8_t txant; + int i, txrate; /* Use the first valid TX antenna. */ txant = IWN_LSB(sc-txchainmask); memset(linkq, 0, sizeof linkq); -
svn commit: r223246 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:54:44 2011 New Revision: 223246 URL: http://svn.freebsd.org/changeset/base/223246 Log: MFC r220719: Remove if_ierrors which do not necessarily indicate a RX error, also do account send packets. While here use the IWN_TX_FAIL constant. Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:52:58 2011 (r223245) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:54:44 2011 (r223246) @@ -2069,7 +2069,6 @@ iwn_rx_done(struct iwn_softc *sc, struct if (!sc-last_rx_valid) { DPRINTF(sc, IWN_DEBUG_ANY, %s: missing RX_PHY\n, __func__); - ifp-if_ierrors++; return; } sc-last_rx_valid = 0; @@ -2083,7 +2082,6 @@ iwn_rx_done(struct iwn_softc *sc, struct device_printf(sc-sc_dev, %s: invalid rx statistic header, len %d\n, __func__, stat-cfg_phy_len); - ifp-if_ierrors++; return; } if (desc-type == IWN_MPDU_RX_DONE) { @@ -2427,11 +2425,12 @@ iwn_tx_done(struct iwn_softc *sc, struct /* * Update rate control statistics for the node. */ - if (status 0x80) { + if (status IWN_TX_FAIL) { ifp-if_oerrors++; ieee80211_ratectl_tx_complete(vap, ni, IEEE80211_RATECTL_TX_FAILURE, ackfailcnt, NULL); } else { + ifp-if_opackets++; ieee80211_ratectl_tx_complete(vap, ni, IEEE80211_RATECTL_TX_SUCCESS, ackfailcnt, NULL); } ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r223247 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 11:56:40 2011 New Revision: 223247 URL: http://svn.freebsd.org/changeset/base/223247 Log: MFC r220720: Fix WME/QoS handling: - move the TX queue selection into iwn_tx_data/iwn_tx_data_raw - extract traffic identifier and use it - do not expect ACKs for frames marked as such Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:54:44 2011 (r223246) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:56:40 2011 (r223247) @@ -158,7 +158,10 @@ static voidiwn5000_reset_sched(struct i #endif static uint8_t iwn_plcp_signal(int); static int iwn_tx_data(struct iwn_softc *, struct mbuf *, - struct ieee80211_node *, struct iwn_tx_ring *); + struct ieee80211_node *); +static int iwn_tx_data_raw(struct iwn_softc *, struct mbuf *, + struct ieee80211_node *, + const struct ieee80211_bpf_params *params); static int iwn_raw_xmit(struct ieee80211_node *, struct mbuf *, const struct ieee80211_bpf_params *); static voidiwn_start(struct ifnet *); @@ -2913,8 +2916,7 @@ iwn_plcp_signal(int rate) { } static int -iwn_tx_data(struct iwn_softc *sc, struct mbuf *m, struct ieee80211_node *ni, -struct iwn_tx_ring *ring) +iwn_tx_data(struct iwn_softc *sc, struct mbuf *m, struct ieee80211_node *ni) { const struct iwn_hal *hal = sc-sc_hal; const struct ieee80211_txparam *tp; @@ -2922,6 +2924,7 @@ iwn_tx_data(struct iwn_softc *sc, struct struct ieee80211vap *vap = ni-ni_vap; struct ieee80211com *ic = ni-ni_ic; struct iwn_node *wn = (void *)ni; + struct iwn_tx_ring *ring; struct iwn_tx_desc *desc; struct iwn_tx_data *data; struct iwn_tx_cmd *cmd; @@ -2931,9 +2934,10 @@ iwn_tx_data(struct iwn_softc *sc, struct struct mbuf *m1; bus_dma_segment_t *seg, segs[IWN_MAX_SCATTER]; uint32_t flags; + uint16_t qos; u_int hdrlen; - int totlen, error, pad, nsegs = 0, i, rate; - uint8_t ridx, type, txant; + uint8_t tid, ridx, type, txant; + int ac, i, totlen, error, pad, nsegs = 0, rate; IWN_LOCK_ASSERT(sc); @@ -2941,6 +2945,17 @@ iwn_tx_data(struct iwn_softc *sc, struct hdrlen = ieee80211_anyhdrsize(wh); type = wh-i_fc[0] IEEE80211_FC0_TYPE_MASK; + /* Select EDCA Access Category and TX ring for this frame. */ + if (IEEE80211_QOS_HAS_SEQ(wh)) { + qos = ((const struct ieee80211_qosframe *)wh)-i_qos[0]; + tid = qos IEEE80211_QOS_TID; + } else { + qos = 0; + tid = 0; + } + ac = M_WME_GETAC(m); + + ring = sc-txq[ac]; desc = ring-desc[ring-cur]; data = ring-data[ring-cur]; @@ -2995,8 +3010,12 @@ iwn_tx_data(struct iwn_softc *sc, struct tx-scratch = 0;/* clear scratch area */ flags = 0; - if (!IEEE80211_IS_MULTICAST(wh-i_addr1)) - flags |= IWN_TX_NEED_ACK; + if (!IEEE80211_IS_MULTICAST(wh-i_addr1)) { + /* Unicast frame, check if an ACK is expected. */ + if (!qos || (qos IEEE80211_QOS_ACKPOLICY) != + IEEE80211_QOS_ACKPOLICY_NOACK) + flags |= IWN_TX_NEED_ACK; + } if ((wh-i_fc[0] (IEEE80211_FC0_TYPE_MASK | IEEE80211_FC0_SUBTYPE_MASK)) == (IEEE80211_FC0_TYPE_CTL | IEEE80211_FC0_SUBTYPE_BAR)) @@ -3056,7 +3075,7 @@ iwn_tx_data(struct iwn_softc *sc, struct pad = 0; tx-len = htole16(totlen); - tx-tid = 0; + tx-tid = tid; tx-rts_ntries = 60; tx-data_ntries = 15; tx-lifetime = htole32(IWN_LIFETIME_INFINITE); @@ -3161,8 +3180,7 @@ iwn_tx_data(struct iwn_softc *sc, struct static int iwn_tx_data_raw(struct iwn_softc *sc, struct mbuf *m, -struct ieee80211_node *ni, struct iwn_tx_ring *ring, -const struct ieee80211_bpf_params *params) +struct ieee80211_node *ni, const struct ieee80211_bpf_params *params) { const struct iwn_hal *hal = sc-sc_hal; const struct iwn_rate *rinfo; @@ -3172,13 +3190,14 @@ iwn_tx_data_raw(struct iwn_softc *sc, st struct iwn_tx_cmd *cmd; struct iwn_cmd_data *tx; struct ieee80211_frame *wh; + struct iwn_tx_ring *ring; struct iwn_tx_desc *desc; struct iwn_tx_data *data; struct mbuf *m1; bus_dma_segment_t *seg, segs[IWN_MAX_SCATTER]; uint32_t flags;
svn commit: r223248 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 12:00:49 2011 New Revision: 223248 URL: http://svn.freebsd.org/changeset/base/223248 Log: MFC r220721,220723-220726: - Rename some stuff in favour of the OpenBSD names: - prefer EDCA over WME - qid for a TXQ ID - reg for register values - Shuffle code around a bit. Mostly to group functional connected things, others to get the same order as the OpenBSD code. - Sync debug and error messages with OpenBSD. The device capability announcements are now hidden behind bootverbose. - Sync comments with OpenBSD. - Whitespace sync, some more style(9) conform then others. Modified: stable/8/sys/dev/iwn/if_iwn.c stable/8/sys/dev/iwn/if_iwnreg.h stable/8/sys/dev/iwn/if_iwnvar.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 11:56:40 2011 (r223247) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 12:00:49 2011 (r223248) @@ -72,16 +72,61 @@ __FBSDID($FreeBSD$); #include dev/iwn/if_iwnreg.h #include dev/iwn/if_iwnvar.h +struct iwn_ident { + uint16_tvendor; + uint16_tdevice; + const char *name; +}; + +static const struct iwn_ident iwn_ident_table [] = { + { 0x8086, 0x4229, Intel(R) PRO/Wireless 4965BGN }, + { 0x8086, 0x422D, Intel(R) PRO/Wireless 4965BGN }, + { 0x8086, 0x4230, Intel(R) PRO/Wireless 4965BGN }, + { 0x8086, 0x4233, Intel(R) PRO/Wireless 4965BGN }, + { 0x8086, 0x4232, Intel(R) PRO/Wireless 5100 }, + { 0x8086, 0x4237, Intel(R) PRO/Wireless 5100 }, + { 0x8086, 0x423C, Intel(R) PRO/Wireless 5150 }, + { 0x8086, 0x423D, Intel(R) PRO/Wireless 5150 }, + { 0x8086, 0x4235, Intel(R) PRO/Wireless 5300 }, + { 0x8086, 0x4236, Intel(R) PRO/Wireless 5300 }, + { 0x8086, 0x423A, Intel(R) PRO/Wireless 5350 }, + { 0x8086, 0x423B, Intel(R) PRO/Wireless 5350 }, + { 0x8086, 0x0083, Intel(R) PRO/Wireless 1000 }, + { 0x8086, 0x0084, Intel(R) PRO/Wireless 1000 }, + { 0x8086, 0x008D, Intel(R) PRO/Wireless 6000 }, + { 0x8086, 0x008E, Intel(R) PRO/Wireless 6000 }, + { 0x8086, 0x4238, Intel(R) PRO/Wireless 6000 }, + { 0x8086, 0x4239, Intel(R) PRO/Wireless 6000 }, + { 0x8086, 0x422B, Intel(R) PRO/Wireless 6000 }, + { 0x8086, 0x422C, Intel(R) PRO/Wireless 6000 }, + { 0x8086, 0x0087, Intel(R) PRO/Wireless 6250 }, + { 0x8086, 0x0089, Intel(R) PRO/Wireless 6250 }, + { 0x8086, 0x0082, Intel(R) PRO/Wireless 6205a }, + { 0x8086, 0x0085, Intel(R) PRO/Wireless 6205a }, +#ifdef notyet + { 0x8086, 0x008a, Intel(R) PRO/Wireless 6205b }, + { 0x8086, 0x008b, Intel(R) PRO/Wireless 6205b }, + { 0x8086, 0x008f, Intel(R) PRO/Wireless 6205b }, + { 0x8086, 0x0090, Intel(R) PRO/Wireless 6205b }, + { 0x8086, 0x0091, Intel(R) PRO/Wireless 6205b }, +#endif + { 0, 0, NULL } +}; + static int iwn_probe(device_t); static int iwn_attach(device_t); static const struct iwn_hal *iwn_hal_attach(struct iwn_softc *); static voidiwn_radiotap_attach(struct iwn_softc *); +static voidiwn_sysctlattach(struct iwn_softc *); static struct ieee80211vap *iwn_vap_create(struct ieee80211com *, const char name[IFNAMSIZ], int unit, int opmode, int flags, const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t mac[IEEE80211_ADDR_LEN]); static voidiwn_vap_delete(struct ieee80211vap *); static int iwn_detach(device_t); +static int iwn_shutdown(device_t); +static int iwn_suspend(device_t); +static int iwn_resume(device_t); static int iwn_nic_lock(struct iwn_softc *); static int iwn_eeprom_lock(struct iwn_softc *); static int iwn_init_otprom(struct iwn_softc *); @@ -116,8 +161,12 @@ static voidiwn_read_eeprom_band(struct #if 0 /* HT */ static voidiwn_read_eeprom_ht40(struct iwn_softc *, int); #endif -static voidiwn_read_eeprom_channels(struct iwn_softc *, int, - uint32_t); +static voidiwn_read_eeprom_channels(struct iwn_softc *, int, uint32_t); +static struct iwn_eeprom_chan *iwn_find_eeprom_channel(struct iwn_softc *, + struct ieee80211_channel *); +static int iwn_setregdomain(struct ieee80211com *, + struct ieee80211_regdomain *, int, + struct ieee80211_channel[]); static voidiwn_read_eeprom_enhinfo(struct iwn_softc *); static struct ieee80211_node *iwn_node_alloc(struct ieee80211vap *, const uint8_t mac[IEEE80211_ADDR_LEN]); @@ -176,7 +225,7 @@ static int
svn commit: r223249 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 12:03:30 2011 New Revision: 223249 URL: http://svn.freebsd.org/changeset/base/223249 Log: MFC r220727-220728: - Read RX/TX chainmasks directly of the EEPROM. Some chips are known to have the wrong/broken information stored, keep the hardcoded values for those. - Bring over the HAL/OPS changes, instead of two const structs it is now slightly more dynamic. Obtained from:OpenBSD Modified: stable/8/sys/dev/iwn/if_iwn.c stable/8/sys/dev/iwn/if_iwnvar.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 12:00:49 2011 (r223248) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 12:03:30 2011 (r223249) @@ -115,7 +115,8 @@ static const struct iwn_ident iwn_ident_ static int iwn_probe(device_t); static int iwn_attach(device_t); -static const struct iwn_hal *iwn_hal_attach(struct iwn_softc *); +static int iwn4965_attach(struct iwn_softc *, uint16_t); +static int iwn5000_attach(struct iwn_softc *, uint16_t); static voidiwn_radiotap_attach(struct iwn_softc *); static voidiwn_sysctlattach(struct iwn_softc *); static struct ieee80211vap *iwn_vap_create(struct ieee80211com *, @@ -410,62 +411,6 @@ MODULE_DEPEND(iwn, firmware, 1, 1, 1); MODULE_DEPEND(iwn, pci, 1, 1, 1); MODULE_DEPEND(iwn, wlan, 1, 1, 1); -static const struct iwn_hal iwn4965_hal = { - iwn4965_load_firmware, - iwn4965_read_eeprom, - iwn4965_post_alive, - iwn4965_nic_config, - iwn4965_update_sched, - iwn4965_get_temperature, - iwn4965_get_rssi, - iwn4965_set_txpower, - iwn4965_init_gains, - iwn4965_set_gains, - iwn4965_add_node, - iwn4965_tx_done, -#if 0 /* HT */ - iwn4965_ampdu_tx_start, - iwn4965_ampdu_tx_stop, -#endif - IWN4965_NTXQUEUES, - IWN4965_NDMACHNLS, - IWN4965_ID_BROADCAST, - IWN4965_RXONSZ, - IWN4965_SCHEDSZ, - IWN4965_FW_TEXT_MAXSZ, - IWN4965_FW_DATA_MAXSZ, - IWN4965_FWSZ, - IWN4965_SCHED_TXFACT -}; - -static const struct iwn_hal iwn5000_hal = { - iwn5000_load_firmware, - iwn5000_read_eeprom, - iwn5000_post_alive, - iwn5000_nic_config, - iwn5000_update_sched, - iwn5000_get_temperature, - iwn5000_get_rssi, - iwn5000_set_txpower, - iwn5000_init_gains, - iwn5000_set_gains, - iwn5000_add_node, - iwn5000_tx_done, -#if 0 /* HT */ - iwn5000_ampdu_tx_start, - iwn5000_ampdu_tx_stop, -#endif - IWN5000_NTXQUEUES, - IWN5000_NDMACHNLS, - IWN5000_ID_BROADCAST, - IWN5000_RXONSZ, - IWN5000_SCHEDSZ, - IWN5000_FW_TEXT_MAXSZ, - IWN5000_FW_DATA_MAXSZ, - IWN5000_FWSZ, - IWN5000_SCHED_TXFACT -}; - static int iwn_probe(device_t dev) { @@ -487,7 +432,6 @@ iwn_attach(device_t dev) struct iwn_softc *sc = (struct iwn_softc *)device_get_softc(dev); struct ieee80211com *ic; struct ifnet *ifp; - const struct iwn_hal *hal; uint32_t reg; int i, error, result; uint8_t macaddr[IEEE80211_ADDR_LEN]; @@ -545,10 +489,15 @@ iwn_attach(device_t dev) IWN_LOCK_INIT(sc); - /* Attach Hardware Abstraction Layer. */ - hal = iwn_hal_attach(sc); - if (hal == NULL) { - error = ENXIO; /* XXX: Wrong error code? */ + /* Read hardware revision and attach. */ + sc-hw_type = (IWN_READ(sc, IWN_HW_REV) 4) 0xf; + if (sc-hw_type == IWN_HW_REV_TYPE_4965) + error = iwn4965_attach(sc, pci_get_device(dev)); + else + error = iwn5000_attach(sc, pci_get_device(dev)); + if (error != 0) { + device_printf(dev, could not attach device, error %d\n, + error); goto fail; } @@ -588,7 +537,7 @@ iwn_attach(device_t dev) } /* Allocate TX rings (16 on 4965AGN, 20 on =5000). */ - for (i = 0; i hal-ntxqs; i++) { + for (i = 0; i sc-ntxqs; i++) { if ((error = iwn_alloc_tx_ring(sc, sc-txq[i], i)) != 0) { device_printf(dev, could not allocate TX ring %d, error %d\n, i, @@ -754,85 +703,121 @@ fail: return error; } -static const struct iwn_hal * -iwn_hal_attach(struct iwn_softc *sc) +static int +iwn4965_attach(struct iwn_softc *sc, uint16_t pid) { - sc-hw_type = (IWN_READ(sc, IWN_HW_REV) 4) 0xf; + struct iwn_ops *ops = sc-ops; + + ops-load_firmware = iwn4965_load_firmware; + ops-read_eeprom =
svn commit: r223250 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 12:07:06 2011 New Revision: 223250 URL: http://svn.freebsd.org/changeset/base/223250 Log: MFC r220729: Add some new features: - 6000 series devices need enhanced sensitivity calibration. - 6000 series devices need a different setting for the shadow reg. - set the IWN_FLAG_HAS_11N bit if the EEPROM says the device has 11n support. Obtained from:OpenBSD Modified: stable/8/sys/dev/iwn/if_iwn.c stable/8/sys/dev/iwn/if_iwnreg.h stable/8/sys/dev/iwn/if_iwnvar.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 12:03:30 2011 (r223249) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 12:07:06 2011 (r223250) @@ -1653,6 +1653,12 @@ iwn_read_eeprom(struct iwn_softc *sc, ui } } + iwn_read_prom_data(sc, IWN_EEPROM_SKU_CAP, val, 2); + DPRINTF(sc, IWN_DEBUG_RESET, SKU capabilities=0x%04x\n, le16toh(val)); + /* Check if HT support is bonded out. */ + if (val htole16(IWN_EEPROM_SKU_CAP_11N)) + sc-sc_flags |= IWN_FLAG_HAS_11N; + iwn_read_prom_data(sc, IWN_EEPROM_RFCFG, val, 2); sc-rfcfg = le16toh(val); DPRINTF(sc, IWN_DEBUG_RESET, radio config=0x%04x\n, sc-rfcfg); @@ -4595,9 +4601,11 @@ static int iwn_send_sensitivity(struct iwn_softc *sc) { struct iwn_calib_state *calib = sc-calib; - struct iwn_sensitivity_cmd cmd; + struct iwn_enhanced_sensitivity_cmd cmd; + int len; memset(cmd, 0, sizeof cmd); + len = sizeof (struct iwn_sensitivity_cmd); cmd.which = IWN_SENSITIVITY_WORKTBL; /* OFDM modulation. */ cmd.corr_ofdm_x1 = htole16(calib-ofdm_x1); @@ -4619,7 +4627,21 @@ iwn_send_sensitivity(struct iwn_softc *s calib-ofdm_x1, calib-ofdm_mrc_x1, calib-ofdm_x4, calib-ofdm_mrc_x4, calib-cck_x4, calib-cck_mrc_x4, calib-energy_cck); - return iwn_cmd(sc, IWN_CMD_SET_SENSITIVITY, cmd, sizeof cmd, 1); + + if (!(sc-sc_flags IWN_FLAG_ENH_SENS)) + goto send; + /* Enhanced sensitivity settings. */ + len = sizeof (struct iwn_enhanced_sensitivity_cmd); + cmd.ofdm_det_slope_mrc = htole16(668); + cmd.ofdm_det_icept_mrc = htole16(4); + cmd.ofdm_det_slope = htole16(486); + cmd.ofdm_det_icept = htole16(37); + cmd.cck_det_slope_mrc = htole16(853); + cmd.cck_det_icept_mrc = htole16(4); + cmd.cck_det_slope = htole16(476); + cmd.cck_det_icept = htole16(99); +send: + return iwn_cmd(sc, IWN_CMD_SET_SENSITIVITY, cmd, len, 1); } /* @@ -6175,6 +6197,8 @@ iwn5000_nic_config(struct iwn_softc *sc) /* Indicate that ROM calibration version is =6. */ IWN_SETBITS(sc, IWN_GP_DRIVER, IWN_GP_DRIVER_CALIB_VER6); } + if (sc-hw_type == IWN_HW_REV_TYPE_6005) + IWN_SETBITS(sc, IWN_GP_DRIVER, IWN_GP_DRIVER_6050_1X2); return 0; } @@ -6304,6 +6328,10 @@ iwn_hw_init(struct iwn_softc *sc) IWN_WRITE(sc, IWN_UCODE_GP1_CLR, IWN_UCODE_GP1_RFKILL); IWN_WRITE(sc, IWN_UCODE_GP1_CLR, IWN_UCODE_GP1_RFKILL); + /* Enable shadow registers. */ + if (sc-hw_type = IWN_HW_REV_TYPE_6000) + IWN_SETBITS(sc, IWN_SHADOW_REG_CTRL, 0x800f); + if ((error = ops-load_firmware(sc)) != 0) { device_printf(sc-sc_dev, %s: could not load firmware, error %d\n, __func__, Modified: stable/8/sys/dev/iwn/if_iwnreg.h == --- stable/8/sys/dev/iwn/if_iwnreg.hSat Jun 18 12:03:30 2011 (r223249) +++ stable/8/sys/dev/iwn/if_iwnreg.hSat Jun 18 12:07:06 2011 (r223250) @@ -70,6 +70,7 @@ #define IWN_UCODE_GP1_CLR 0x05c #define IWN_LED0x094 #define IWN_DRAM_INT_TBL 0x0a0 +#define IWN_SHADOW_REG_CTRL0x0a8 #define IWN_GIO_CHICKEN0x100 #define IWN_ANA_PLL0x20c #define IWN_HW_REV_WA 0x22c @@ -215,6 +216,7 @@ #define IWN_GP_DRIVER_RADIO_2X2_HYB(1 0) #define IWN_GP_DRIVER_RADIO_2X2_IPA(2 0) #define IWN_GP_DRIVER_CALIB_VER6 (1 2) +#define IWN_GP_DRIVER_6050_1X2 (1 3) /* Possible flags for register IWN_UCODE_GP1_CLR. */ #define IWN_UCODE_GP1_RFKILL (1 1) @@ -856,7 +858,7 @@ struct iwn_critical_temp { #define IWN_CTOMUK(c) (((c) * 100) + 27315) } __packed; -/* Structure for command IWN_CMD_SET_SENSITIVITY. */ +/* Structures for command IWN_CMD_SET_SENSITIVITY. */
svn commit: r223251 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 12:10:06 2011 New Revision: 223251 URL: http://svn.freebsd.org/changeset/base/223251 Log: MFC r220866-220867: - Pull some features out of the firmware: - If a ENH_SENS TLV section exit the firmware is capable of doing enhanced sensitivity calibration. - Newer devices/firmwares have more calibration commands therefore hardcoding the noise gain/reset commands no longer works. It is supposed to use the next index after the newest calibration type support. Read the command index of the TLV section if available. - Enable DC calibration for all 6000 series devices, except those with an internal PA. - Override the chainmask also for the 6050. Modified: stable/8/sys/dev/iwn/if_iwn.c stable/8/sys/dev/iwn/if_iwnreg.h stable/8/sys/dev/iwn/if_iwnvar.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 12:07:06 2011 (r223250) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 12:10:06 2011 (r223251) @@ -772,6 +772,8 @@ iwn5000_attach(struct iwn_softc *sc, uin sc-fw_data_maxsz = IWN5000_FW_DATA_MAXSZ; sc-fwsz = IWN5000_FWSZ; sc-sched_txfact_addr = IWN5000_SCHED_TXFACT; + sc-reset_noise_gain = IWN5000_PHY_CALIB_RESET_NOISE_GAIN; + sc-noise_gain = IWN5000_PHY_CALIB_NOISE_GAIN; switch (sc-hw_type) { case IWN_HW_REV_TYPE_5100: @@ -807,6 +809,9 @@ iwn5000_attach(struct iwn_softc *sc, uin case IWN_HW_REV_TYPE_6050: sc-limits = iwn6000_sensitivity_limits; sc-fwname = iwn6050fw; + /* Override chains masks, ROM is known to be broken. */ + sc-txchainmask = IWN_ANT_AB; + sc-rxchainmask = IWN_ANT_AB; break; case IWN_HW_REV_TYPE_6005: sc-limits = iwn6000_sensitivity_limits; @@ -2385,7 +2390,9 @@ iwn5000_rx_calib_results(struct iwn_soft switch (calib-code) { case IWN5000_PHY_CALIB_DC: - if (sc-hw_type == IWN_HW_REV_TYPE_5150) + if ((sc-sc_flags IWN_FLAG_INTERNAL_PA) == 0 + (sc-hw_type == IWN_HW_REV_TYPE_5150 || +sc-hw_type = IWN_HW_REV_TYPE_6000)) idx = 0; break; case IWN5000_PHY_CALIB_LO: @@ -4367,7 +4374,7 @@ iwn5000_init_gains(struct iwn_softc *sc) struct iwn_phy_calib cmd; memset(cmd, 0, sizeof cmd); - cmd.code = IWN5000_PHY_CALIB_RESET_NOISE_GAIN; + cmd.code = sc-reset_noise_gain; cmd.ngroups = 1; cmd.isvalid = 1; DPRINTF(sc, IWN_DEBUG_CALIBRATE, @@ -4419,7 +4426,7 @@ iwn5000_set_gains(struct iwn_softc *sc) div = (sc-hw_type == IWN_HW_REV_TYPE_6050) ? 20 : 30; memset(cmd, 0, sizeof cmd); - cmd.code = IWN5000_PHY_CALIB_NOISE_GAIN; + cmd.code = sc-noise_gain; cmd.ngroups = 1; cmd.isvalid = 1; /* Get first available RX antenna as referential. */ @@ -5900,7 +5907,7 @@ iwn_read_firmware_tlv(struct iwn_softc * const struct iwn_fw_tlv *tlv; const uint8_t *ptr, *end; uint64_t altmask; - uint32_t len; + uint32_t len, tmp; if (fw-size sizeof (*hdr)) { device_printf(sc-sc_dev, %s: firmware too short: %zu bytes\n, @@ -5965,6 +5972,17 @@ iwn_read_firmware_tlv(struct iwn_softc * fw-boot.text = ptr; fw-boot.textsz = len; break; + case IWN_FW_TLV_ENH_SENS: + if (!len) + sc-sc_flags |= IWN_FLAG_ENH_SENS; + break; + case IWN_FW_TLV_PHY_CALIB: + tmp = htole32(*ptr); + if (tmp 253) { + sc-reset_noise_gain = tmp; + sc-noise_gain = tmp + 1; + } + break; default: DPRINTF(sc, IWN_DEBUG_RESET, TLV type %d not handled\n, le16toh(tlv-type)); Modified: stable/8/sys/dev/iwn/if_iwnreg.h == --- stable/8/sys/dev/iwn/if_iwnreg.hSat Jun 18 12:07:06 2011 (r223250) +++ stable/8/sys/dev/iwn/if_iwnreg.hSat Jun 18 12:10:06 2011 (r223251) @@ -1322,6 +1322,8 @@ struct iwn_fw_tlv { #define IWN_FW_TLV_INIT_DATA 4 #define IWN_FW_TLV_BOOT_TEXT 5 #define IWN_FW_TLV_PBREQ_MAXLEN6 +#define
svn commit: r223252 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 12:11:48 2011 New Revision: 223252 URL: http://svn.freebsd.org/changeset/base/223252 Log: MFC r220891: Add basic support for advanced bluetooth coexistence required for 6005 gen2b (1030/6030) adapters. Modified: stable/8/sys/dev/iwn/if_iwn.c stable/8/sys/dev/iwn/if_iwnreg.h stable/8/sys/dev/iwn/if_iwnvar.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 12:10:06 2011 (r223251) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 12:11:48 2011 (r223252) @@ -253,6 +253,7 @@ static void iwn_tune_sensitivity(struct static int iwn_send_sensitivity(struct iwn_softc *); static int iwn_set_pslevel(struct iwn_softc *, int, int, int); static int iwn_send_btcoex(struct iwn_softc *); +static int iwn_send_advanced_btcoex(struct iwn_softc *); static int iwn_config(struct iwn_softc *); static uint8_t *ieee80211_add_ssid(uint8_t *, const uint8_t *, u_int); static int iwn_scan(struct iwn_softc *); @@ -816,6 +817,8 @@ iwn5000_attach(struct iwn_softc *sc, uin case IWN_HW_REV_TYPE_6005: sc-limits = iwn6000_sensitivity_limits; sc-fwname = iwn6005fw; + if (pid != 0x0082 pid != 0x0085) + sc-sc_flags |= IWN_FLAG_ADV_BTCOEX; break; default: device_printf(sc-sc_dev, adapter type %d not supported\n, @@ -4721,6 +4724,63 @@ iwn_send_btcoex(struct iwn_softc *sc) } static int +iwn_send_advanced_btcoex(struct iwn_softc *sc) +{ + static const uint32_t btcoex_3wire[12] = { + 0x, 0x, 0xaeaa, 0x, + 0xcc00ff28, 0x, 0xcc00, 0x, + 0xc0004000, 0x4000, 0xf0005000, 0xf0005000, + }; + struct iwn6000_btcoex_config btconfig; + struct iwn_btcoex_priotable btprio; + struct iwn_btcoex_prot btprot; + int error, i; + + memset(btconfig, 0, sizeof btconfig); + btconfig.flags = 145; + btconfig.max_kill = 5; + btconfig.bt3_t7_timer = 1; + btconfig.kill_ack = htole32(0x); + btconfig.kill_cts = htole32(0x); + btconfig.sample_time = 2; + btconfig.bt3_t2_timer = 0xc; + for (i = 0; i 12; i++) + btconfig.lookup_table[i] = htole32(btcoex_3wire[i]); + btconfig.valid = htole16(0xff); + btconfig.prio_boost = 0xf0; + DPRINTF(sc, IWN_DEBUG_RESET, + %s: configuring advanced bluetooth coexistence\n, __func__); + error = iwn_cmd(sc, IWN_CMD_BT_COEX, btconfig, sizeof(btconfig), 1); + if (error != 0) + return error; + + memset(btprio, 0, sizeof btprio); + btprio.calib_init1 = 0x6; + btprio.calib_init2 = 0x7; + btprio.calib_periodic_low1 = 0x2; + btprio.calib_periodic_low2 = 0x3; + btprio.calib_periodic_high1 = 0x4; + btprio.calib_periodic_high2 = 0x5; + btprio.dtim = 0x6; + btprio.scan52 = 0x8; + btprio.scan24 = 0xa; + error = iwn_cmd(sc, IWN_CMD_BT_COEX_PRIOTABLE, btprio, sizeof(btprio), + 1); + if (error != 0) + return error; + + /* Force BT state machine change. */ + memset(btprot, 0, sizeof btprio); + btprot.open = 1; + btprot.type = 1; + error = iwn_cmd(sc, IWN_CMD_BT_COEX_PROT, btprot, sizeof(btprot), 1); + if (error != 0) + return error; + btprot.open = 0; + return iwn_cmd(sc, IWN_CMD_BT_COEX_PROT, btprot, sizeof(btprot), 1); +} + +static int iwn_config(struct iwn_softc *sc) { struct iwn_ops *ops = sc-ops; @@ -4756,7 +4816,10 @@ iwn_config(struct iwn_softc *sc) } /* Configure bluetooth coexistence. */ - error = iwn_send_btcoex(sc); + if (sc-sc_flags IWN_FLAG_ADV_BTCOEX) + error = iwn_send_advanced_btcoex(sc); + else + error = iwn_send_btcoex(sc); if (error != 0) { device_printf(sc-sc_dev, %s: could not configure bluetooth coexistence, error %d\n, Modified: stable/8/sys/dev/iwn/if_iwnreg.h == --- stable/8/sys/dev/iwn/if_iwnreg.hSat Jun 18 12:10:06 2011 (r223251) +++ stable/8/sys/dev/iwn/if_iwnreg.hSat Jun 18 12:11:48 2011 (r223252) @@ -434,6 +434,8 @@ struct iwn_tx_cmd { #define IWN_CMD_SET_CRITICAL_TEMP 164 #define IWN_CMD_SET_SENSITIVITY168 #define IWN_CMD_PHY_CALIB 176 +#define IWN_CMD_BT_COEX_PRIOTABLE
svn commit: r223253 - stable/8/sys/dev/iwn
Author: bschmidt Date: Sat Jun 18 12:13:27 2011 New Revision: 223253 URL: http://svn.freebsd.org/changeset/base/223253 Log: MFC r220894: The 6000 series gen2 adapters have 2 firmware images, one with advanced btcoex support and one without. Modified: stable/8/sys/dev/iwn/if_iwn.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) Modified: stable/8/sys/dev/iwn/if_iwn.c == --- stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 12:11:48 2011 (r223252) +++ stable/8/sys/dev/iwn/if_iwn.c Sat Jun 18 12:13:27 2011 (r223253) @@ -816,9 +816,11 @@ iwn5000_attach(struct iwn_softc *sc, uin break; case IWN_HW_REV_TYPE_6005: sc-limits = iwn6000_sensitivity_limits; - sc-fwname = iwn6005fw; - if (pid != 0x0082 pid != 0x0085) + if (pid != 0x0082 pid != 0x0085) { + sc-fwname = iwn6000g2bfw; sc-sc_flags |= IWN_FLAG_ADV_BTCOEX; + } else + sc-fwname = iwn6000g2afw; break; default: device_printf(sc-sc_dev, adapter type %d not supported\n, ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org