diff -up ./drivers/net/wireless/zd1211rw/Kconfig.zd1211 ./drivers/net/wireless/zd1211rw/Kconfig --- ./drivers/net/wireless/zd1211rw/Kconfig.zd1211 2016-12-11 00:27:13.000000000 +0900 +++ ./drivers/net/wireless/zd1211rw/Kconfig 2017-02-05 18:56:17.000000000 +0900 @@ -3,11 +3,11 @@ config ZD1211RW depends on USB && MAC80211 select FW_LOADER ---help--- - This is an experimental driver for the ZyDAS ZD1211/ZD1211B wireless + This is a driver for the ZyDAS ZD1211/ZD1211B wireless chip, present in many USB-wireless adapters. Device firmware is required alongside this driver. You can download - the firmware distribution from http://zd1211.ath.cx/get-firmware + the firmware distribution from http://sf.net/projects/zd1211/files/ config ZD1211RW_DEBUG bool "ZyDAS ZD1211 debugging" diff -up ./drivers/net/wireless/zd1211rw/zd_chip.c.zd1211 ./drivers/net/wireless/zd1211rw/zd_chip.c --- ./drivers/net/wireless/zd1211rw/zd_chip.c.zd1211 2016-12-11 00:27:13.000000000 +0900 +++ ./drivers/net/wireless/zd1211rw/zd_chip.c 2017-02-05 18:57:51.000000000 +0900 @@ -14,8 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program; if not, see . */ /* This file implements all the hardware specific functions for the ZD1211 @@ -130,7 +129,7 @@ int zd_ioread32v_locked(struct zd_chip * r = zd_ioread16v_locked(chip, v16, a16, count16); if (r) { dev_dbg_f(zd_chip_dev(chip), - "error: zd_ioread16v_locked. Error number %d\n", r); + "error: %s. Error number %d\n", __func__, r); return r; } @@ -257,8 +256,8 @@ int zd_iowrite32a_locked(struct zd_chip if (r) { zd_usb_iowrite16v_async_end(&chip->usb, 0); dev_dbg_f(zd_chip_dev(chip), - "error _zd_iowrite32v_locked." - " Error number %d\n", r); + "error _%s. Error number %d\n", __func__, + r); return r; } } diff -up ./drivers/net/wireless/zd1211rw/zd_chip.h.zd1211 ./drivers/net/wireless/zd1211rw/zd_chip.h --- ./drivers/net/wireless/zd1211rw/zd_chip.h.zd1211 2016-12-11 00:27:13.000000000 +0900 +++ ./drivers/net/wireless/zd1211rw/zd_chip.h 2017-02-05 18:58:35.000000000 +0900 @@ -14,8 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program; if not, see . */ #ifndef _ZD_CHIP_H diff -up ./drivers/net/wireless/zd1211rw/zd_def.h.zd1211 ./drivers/net/wireless/zd1211rw/zd_def.h --- ./drivers/net/wireless/zd1211rw/zd_def.h.zd1211 2016-12-11 00:27:13.000000000 +0900 +++ ./drivers/net/wireless/zd1211rw/zd_def.h 2017-02-05 19:13:04.000000000 +0900 @@ -14,8 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program; if not, see . */ #ifndef _ZD_DEF_H diff -up ./drivers/net/wireless/zd1211rw/zd_mac.c.zd1211 ./drivers/net/wireless/zd1211rw/zd_mac.c --- ./drivers/net/wireless/zd1211rw/zd_mac.c.zd1211 2016-12-11 00:27:13.000000000 +0900 +++ ./drivers/net/wireless/zd1211rw/zd_mac.c 2017-02-05 19:16:18.000000000 +0900 @@ -16,8 +16,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program; if not, see . */ #include @@ -533,9 +532,8 @@ void zd_mac_tx_failed(struct urb *urb) tx_hdr = (struct ieee80211_hdr *)skb->data; /* we skip all frames not matching the reported destination */ - if (unlikely(memcmp(tx_hdr->addr1, tx_status->mac, ETH_ALEN))) { + if (unlikely(!ether_addr_equal(tx_hdr->addr1, tx_status->mac))) continue; - } /* we skip all frames not matching the reported final rate */ @@ -998,7 +996,7 @@ static int filter_ack(struct ieee80211_h continue; tx_hdr = (struct ieee80211_hdr *)skb->data; - if (likely(!memcmp(tx_hdr->addr2, rx_hdr->addr1, ETH_ALEN))) + if (likely(ether_addr_equal(tx_hdr->addr2, rx_hdr->addr1))) { found = 1; break; @@ -1070,7 +1068,7 @@ int zd_mac_rx(struct ieee80211_hw *hw, c } stats.freq = zd_channels[_zd_chip_get_channel(&mac->chip) - 1].center_freq; - stats.band = IEEE80211_BAND_2GHZ; + stats.band = NL80211_BAND_2GHZ; stats.signal = zd_check_signal(hw, status->signal_strength); rate = zd_rx_rate(buffer, status); @@ -1232,7 +1230,7 @@ static u64 zd_op_prepare_multicast(struc } #define SUPPORTED_FIF_FLAGS \ - (FIF_PROMISC_IN_BSS | FIF_ALLMULTI | FIF_FCSFAIL | FIF_CONTROL | \ + (FIF_ALLMULTI | FIF_FCSFAIL | FIF_CONTROL | \ FIF_OTHER_BSS | FIF_BCN_PRBRESP_PROMISC) static void zd_op_configure_filter(struct ieee80211_hw *hw, unsigned int changed_flags, @@ -1258,7 +1256,7 @@ static void zd_op_configure_filter(struc * we will have some issue with IPv6 which uses multicast for link * layer address resolution. */ - if (*new_flags & (FIF_PROMISC_IN_BSS | FIF_ALLMULTI)) + if (*new_flags & FIF_ALLMULTI) zd_mc_add_all(&hash); spin_lock_irqsave(&mac->lock, flags); @@ -1397,12 +1395,12 @@ struct ieee80211_hw *zd_mac_alloc_hw(str mac->band.n_channels = ARRAY_SIZE(zd_channels); mac->band.channels = mac->channels; - hw->wiphy->bands[IEEE80211_BAND_2GHZ] = &mac->band; + hw->wiphy->bands[NL80211_BAND_2GHZ] = &mac->band; - hw->flags = IEEE80211_HW_RX_INCLUDES_FCS | - IEEE80211_HW_SIGNAL_UNSPEC | - IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING | - IEEE80211_HW_MFP_CAPABLE; + ieee80211_hw_set(hw, MFP_CAPABLE); + ieee80211_hw_set(hw, HOST_BROADCAST_PS_BUFFERING); + ieee80211_hw_set(hw, RX_INCLUDES_FCS); + ieee80211_hw_set(hw, SIGNAL_UNSPEC); hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_MESH_POINT) | diff -up ./drivers/net/wireless/zd1211rw/zd_mac.h.zd1211 ./drivers/net/wireless/zd1211rw/zd_mac.h --- ./drivers/net/wireless/zd1211rw/zd_mac.h.zd1211 2016-12-11 00:27:13.000000000 +0900 +++ ./drivers/net/wireless/zd1211rw/zd_mac.h 2017-02-05 19:03:17.000000000 +0900 @@ -14,8 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program; if not, see . */ #ifndef _ZD_MAC_H diff -up ./drivers/net/wireless/zd1211rw/zd_rf_al2230.c.zd1211 ./drivers/net/wireless/zd1211rw/zd_rf_al2230.c --- ./drivers/net/wireless/zd1211rw/zd_rf_al2230.c.zd1211 2016-12-11 00:27:13.000000000 +0900 +++ ./drivers/net/wireless/zd1211rw/zd_rf_al2230.c 2017-02-05 19:04:21.000000000 +0900 @@ -14,8 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program; if not, see . */ #include diff -up ./drivers/net/wireless/zd1211rw/zd_rf_al7230b.c.zd1211 ./drivers/net/wireless/zd1211rw/zd_rf_al7230b.c --- ./drivers/net/wireless/zd1211rw/zd_rf_al7230b.c.zd1211 2016-12-11 00:27:13.000000000 +0900 +++ ./drivers/net/wireless/zd1211rw/zd_rf_al7230b.c 2017-02-05 19:05:44.000000000 +0900 @@ -14,8 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program; if not, see . */ #include diff -up ./drivers/net/wireless/zd1211rw/zd_rf.c.zd1211 ./drivers/net/wireless/zd1211rw/zd_rf.c --- ./drivers/net/wireless/zd1211rw/zd_rf.c.zd1211 2016-12-11 00:27:13.000000000 +0900 +++ ./drivers/net/wireless/zd1211rw/zd_rf.c 2017-02-05 19:06:13.000000000 +0900 @@ -14,8 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program; if not, see . */ #include diff -up ./drivers/net/wireless/zd1211rw/zd_rf.h.zd1211 ./drivers/net/wireless/zd1211rw/zd_rf.h --- ./drivers/net/wireless/zd1211rw/zd_rf.h.zd1211 2017-02-05 19:06:37.000000000 +0900 +++ ./drivers/net/wireless/zd1211rw/zd_rf.h 2017-02-05 19:06:58.000000000 +0900 @@ -14,8 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program; if not, see . */ #ifndef _ZD_RF_H diff -up ./drivers/net/wireless/zd1211rw/zd_rf_rf2959.c.zd1211 ./drivers/net/wireless/zd1211rw/zd_rf_rf2959.c --- ./drivers/net/wireless/zd1211rw/zd_rf_rf2959.c.zd1211 2016-12-11 00:27:13.000000000 +0900 +++ ./drivers/net/wireless/zd1211rw/zd_rf_rf2959.c 2017-02-05 19:07:23.000000000 +0900 @@ -14,8 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program; if not, see . */ #include diff -up ./drivers/net/wireless/zd1211rw/zd_rf_uw2453.c.zd1211 ./drivers/net/wireless/zd1211rw/zd_rf_uw2453.c --- ./drivers/net/wireless/zd1211rw/zd_rf_uw2453.c.zd1211 2016-12-11 00:27:13.000000000 +0900 +++ ./drivers/net/wireless/zd1211rw/zd_rf_uw2453.c 2017-02-05 19:07:47.000000000 +0900 @@ -14,8 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program; if not, see . */ #include diff -up ./drivers/net/wireless/zd1211rw/zd_usb.c.zd1211 ./drivers/net/wireless/zd1211rw/zd_usb.c --- ./drivers/net/wireless/zd1211rw/zd_usb.c.zd1211 2017-02-05 16:08:11.000000000 +0900 +++ ./drivers/net/wireless/zd1211rw/zd_usb.c 2017-02-05 19:08:40.000000000 +0900 @@ -15,8 +15,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program; if not, see . */ #include @@ -1620,7 +1619,7 @@ static void prepare_read_regs_int(struct atomic_set(&intr->read_regs_enabled, 1); intr->read_regs.req = req; intr->read_regs.req_count = count; - INIT_COMPLETION(intr->read_regs.completion); + reinit_completion(&intr->read_regs.completion); spin_unlock_irq(&intr->lock); } diff -up ./drivers/net/wireless/zd1211rw/zd_usb.h.zd1211 ./drivers/net/wireless/zd1211rw/zd_usb.h --- ./drivers/net/wireless/zd1211rw/zd_usb.h.zd1211 2016-12-11 00:27:13.000000000 +0900 +++ ./drivers/net/wireless/zd1211rw/zd_usb.h 2017-02-05 19:09:10.000000000 +0900 @@ -14,8 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program; if not, see . */ #ifndef _ZD_USB_H