| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: if_iwm.c,v 1.73 2017/06/01 02:45:11 chs Exp $ */ | | 1 | /* $NetBSD: if_iwm.c,v 1.73.2.1 2017/06/10 06:17:01 snj 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.73 2017/06/01 02:45:11 chs Exp $"); | | 109 | __KERNEL_RCSID(0, "$NetBSD: if_iwm.c,v 1.73.2.1 2017/06/10 06:17:01 snj 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 | |
| @@ -3034,27 +3034,27 @@ iwm_send_paging_cmd(struct iwm_softc *sc | | | @@ -3034,27 +3034,27 @@ iwm_send_paging_cmd(struct iwm_softc *sc |
3034 | | | 3034 | |
3035 | /* loop for for all paging blocks + CSS block */ | | 3035 | /* loop for for all paging blocks + CSS block */ |
3036 | for (blk_idx = 0; blk_idx < sc->num_of_paging_blk + 1; blk_idx++) { | | 3036 | for (blk_idx = 0; blk_idx < sc->num_of_paging_blk + 1; blk_idx++) { |
3037 | bus_addr_t dev_phy_addr = | | 3037 | bus_addr_t dev_phy_addr = |
3038 | sc->fw_paging_db[blk_idx].fw_paging_block.paddr; | | 3038 | sc->fw_paging_db[blk_idx].fw_paging_block.paddr; |
3039 | if (iwm_has_new_tx_api(sc)) { | | 3039 | if (iwm_has_new_tx_api(sc)) { |
3040 | fw_paging_cmd.device_phy_addr.addr64[blk_idx] = | | 3040 | fw_paging_cmd.device_phy_addr.addr64[blk_idx] = |
3041 | htole64(dev_phy_addr); | | 3041 | htole64(dev_phy_addr); |
3042 | } else { | | 3042 | } else { |
3043 | dev_phy_addr = dev_phy_addr >> IWM_PAGE_2_EXP_SIZE; | | 3043 | dev_phy_addr = dev_phy_addr >> IWM_PAGE_2_EXP_SIZE; |
3044 | fw_paging_cmd.device_phy_addr.addr32[blk_idx] = | | 3044 | fw_paging_cmd.device_phy_addr.addr32[blk_idx] = |
3045 | htole32(dev_phy_addr); | | 3045 | htole32(dev_phy_addr); |
3046 | } | | 3046 | } |
3047 | dmap = sc->fw_paging_db[blk_idx].fw_paging_block.map, | | 3047 | dmap = sc->fw_paging_db[blk_idx].fw_paging_block.map; |
3048 | bus_dmamap_sync(sc->sc_dmat, dmap, 0, dmap->dm_mapsize, | | 3048 | bus_dmamap_sync(sc->sc_dmat, dmap, 0, dmap->dm_mapsize, |
3049 | BUS_DMASYNC_PREWRITE | BUS_DMASYNC_PREREAD); | | 3049 | BUS_DMASYNC_PREWRITE | BUS_DMASYNC_PREREAD); |
3050 | } | | 3050 | } |
3051 | | | 3051 | |
3052 | return iwm_send_cmd_pdu(sc, | | 3052 | return iwm_send_cmd_pdu(sc, |
3053 | iwm_cmd_id(IWM_FW_PAGING_BLOCK_CMD, IWM_ALWAYS_LONG_GROUP, 0), | | 3053 | iwm_cmd_id(IWM_FW_PAGING_BLOCK_CMD, IWM_ALWAYS_LONG_GROUP, 0), |
3054 | 0, size, &fw_paging_cmd); | | 3054 | 0, size, &fw_paging_cmd); |
3055 | } | | 3055 | } |
3056 | | | 3056 | |
3057 | static void | | 3057 | static void |
3058 | iwm_set_hw_address_8000(struct iwm_softc *sc, struct iwm_nvm_data *data, | | 3058 | iwm_set_hw_address_8000(struct iwm_softc *sc, struct iwm_nvm_data *data, |
3059 | const uint16_t *mac_override, const uint16_t *nvm_hw) | | 3059 | const uint16_t *mac_override, const uint16_t *nvm_hw) |
3060 | { | | 3060 | { |