| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: if_iwm.c,v 1.80 2018/06/06 01:49:08 maya Exp $ */ | | 1 | /* $NetBSD: if_iwm.c,v 1.81 2018/06/08 11:09:24 knakahara Exp $ */ |
2 | /* OpenBSD: if_iwm.c,v 1.148 2016/11/19 21:07:08 stsp Exp */ | | 2 | /* OpenBSD: if_iwm.c,v 1.148 2016/11/19 21:07:08 stsp Exp */ |
3 | #define IEEE80211_NO_HT | | 3 | #define IEEE80211_NO_HT |
4 | /* | | 4 | /* |
5 | * Copyright (c) 2014, 2016 genua gmbh <info@genua.de> | | 5 | * Copyright (c) 2014, 2016 genua gmbh <info@genua.de> |
6 | * Author: Stefan Sperling <stsp@openbsd.org> | | 6 | * Author: Stefan Sperling <stsp@openbsd.org> |
7 | * Copyright (c) 2014 Fixup Software Ltd. | | 7 | * Copyright (c) 2014 Fixup Software Ltd. |
8 | * | | 8 | * |
9 | * Permission to use, copy, modify, and distribute this software for any | | 9 | * Permission to use, copy, modify, and distribute this software for any |
10 | * purpose with or without fee is hereby granted, provided that the above | | 10 | * purpose with or without fee is hereby granted, provided that the above |
11 | * copyright notice and this permission notice appear in all copies. | | 11 | * copyright notice and this permission notice appear in all copies. |
12 | * | | 12 | * |
13 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | | 13 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
14 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | | 14 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
| @@ -96,27 +96,27 @@ | | | @@ -96,27 +96,27 @@ |
96 | * purpose with or without fee is hereby granted, provided that the above | | 96 | * purpose with or without fee is hereby granted, provided that the above |
97 | * copyright notice and this permission notice appear in all copies. | | 97 | * copyright notice and this permission notice appear in all copies. |
98 | * | | 98 | * |
99 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | | 99 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
100 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | | 100 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
101 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | | 101 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
102 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | | 102 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
103 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | | 103 | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
104 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | | 104 | * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
105 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | | 105 | * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
106 | */ | | 106 | */ |
107 | | | 107 | |
108 | #include <sys/cdefs.h> | | 108 | #include <sys/cdefs.h> |
109 | __KERNEL_RCSID(0, "$NetBSD: if_iwm.c,v 1.80 2018/06/06 01:49:08 maya Exp $"); | | 109 | __KERNEL_RCSID(0, "$NetBSD: if_iwm.c,v 1.81 2018/06/08 11:09:24 knakahara Exp $"); |
110 | | | 110 | |
111 | #include <sys/param.h> | | 111 | #include <sys/param.h> |
112 | #include <sys/conf.h> | | 112 | #include <sys/conf.h> |
113 | #include <sys/kernel.h> | | 113 | #include <sys/kernel.h> |
114 | #include <sys/kmem.h> | | 114 | #include <sys/kmem.h> |
115 | #include <sys/mbuf.h> | | 115 | #include <sys/mbuf.h> |
116 | #include <sys/mutex.h> | | 116 | #include <sys/mutex.h> |
117 | #include <sys/proc.h> | | 117 | #include <sys/proc.h> |
118 | #include <sys/socket.h> | | 118 | #include <sys/socket.h> |
119 | #include <sys/sockio.h> | | 119 | #include <sys/sockio.h> |
120 | #include <sys/sysctl.h> | | 120 | #include <sys/sysctl.h> |
121 | #include <sys/systm.h> | | 121 | #include <sys/systm.h> |
122 | | | 122 | |
| @@ -7752,26 +7752,31 @@ iwm_preinit(struct iwm_softc *sc) | | | @@ -7752,26 +7752,31 @@ iwm_preinit(struct iwm_softc *sc) |
7752 | sc->sc_hw_rev & IWM_CSR_HW_REV_TYPE_MSK, sc->sc_fwver, | | 7752 | sc->sc_hw_rev & IWM_CSR_HW_REV_TYPE_MSK, sc->sc_fwver, |
7753 | ether_sprintf(sc->sc_nvm.hw_addr)); | | 7753 | ether_sprintf(sc->sc_nvm.hw_addr)); |
7754 | | | 7754 | |
7755 | #ifndef IEEE80211_NO_HT | | 7755 | #ifndef IEEE80211_NO_HT |
7756 | if (sc->sc_nvm.sku_cap_11n_enable) | | 7756 | if (sc->sc_nvm.sku_cap_11n_enable) |
7757 | iwm_setup_ht_rates(sc); | | 7757 | iwm_setup_ht_rates(sc); |
7758 | #endif | | 7758 | #endif |
7759 | | | 7759 | |
7760 | /* not all hardware can do 5GHz band */ | | 7760 | /* not all hardware can do 5GHz band */ |
7761 | if (sc->sc_nvm.sku_cap_band_52GHz_enable) | | 7761 | if (sc->sc_nvm.sku_cap_band_52GHz_enable) |
7762 | ic->ic_sup_rates[IEEE80211_MODE_11A] = ieee80211_std_rateset_11a; | | 7762 | ic->ic_sup_rates[IEEE80211_MODE_11A] = ieee80211_std_rateset_11a; |
7763 | | | 7763 | |
7764 | ether_ifdetach(ifp); | | 7764 | ether_ifdetach(ifp); |
| | | 7765 | /* |
| | | 7766 | * XXX |
| | | 7767 | * ether_ifdetach() overwrites ifp->if_ioctl, so restore it here. |
| | | 7768 | */ |
| | | 7769 | ifp->if_ioctl = iwm_ioctl; |
7765 | ieee80211_ifattach(ic); | | 7770 | ieee80211_ifattach(ic); |
7766 | | | 7771 | |
7767 | ic->ic_node_alloc = iwm_node_alloc; | | 7772 | ic->ic_node_alloc = iwm_node_alloc; |
7768 | | | 7773 | |
7769 | /* Override 802.11 state transition machine. */ | | 7774 | /* Override 802.11 state transition machine. */ |
7770 | sc->sc_newstate = ic->ic_newstate; | | 7775 | sc->sc_newstate = ic->ic_newstate; |
7771 | ic->ic_newstate = iwm_newstate; | | 7776 | ic->ic_newstate = iwm_newstate; |
7772 | ieee80211_media_init(ic, iwm_media_change, ieee80211_media_status); | | 7777 | ieee80211_media_init(ic, iwm_media_change, ieee80211_media_status); |
7773 | ieee80211_announce(ic); | | 7778 | ieee80211_announce(ic); |
7774 | | | 7779 | |
7775 | iwm_radiotap_attach(sc); | | 7780 | iwm_radiotap_attach(sc); |
7776 | | | 7781 | |
7777 | return 0; | | 7782 | return 0; |