Merge tag 'iwlwifi-for-kalle-2016-05-04' of git://git.kernel.org/pub/scm/linux/kernel...
authorLuca Coelho <luciano.coelho@intel.com>
Tue, 10 May 2016 08:56:24 +0000 (11:56 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Tue, 10 May 2016 08:56:24 +0000 (11:56 +0300)
* fix P2P rates (and possibly other issues)

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
1  2 
drivers/net/wireless/intel/iwlwifi/iwl-8000.c
drivers/net/wireless/intel/iwlwifi/iwl-drv.c
drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c
drivers/net/wireless/intel/iwlwifi/mvm/fw.c
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
drivers/net/wireless/intel/iwlwifi/mvm/ops.c
drivers/net/wireless/intel/iwlwifi/mvm/tx.c
drivers/net/wireless/intel/iwlwifi/pcie/drv.c
drivers/net/wireless/intel/iwlwifi/pcie/trans.c

index cbb5947b3fab1fc651d78c0cb95f0c5661b43368,6938cd37be57c6e48ae9efc4d559b58845fd705c..e25171f9b407545d0d052ed3978f4574034fd768
@@@ -601,15 -525,9 +601,16 @@@ void iwl_mvm_fw_error_dump(struct iwl_m
        if (sram2_len)
                file_len += sizeof(*dump_data) + sizeof(*dump_mem) + sram2_len;
  
 +      /* Make room for MEM segments */
 +      for (i = 0; i < ARRAY_SIZE(mvm->fw->dbg_mem_tlv); i++) {
 +              if (fw_dbg_mem[i])
 +                      file_len += sizeof(*dump_data) + sizeof(*dump_mem) +
 +                              le32_to_cpu(fw_dbg_mem[i]->len);
 +      }
 +
        /* Make room for fw's virtual image pages, if it exists */
-       if (mvm->fw->img[mvm->cur_ucode].paging_mem_size)
+       if (mvm->fw->img[mvm->cur_ucode].paging_mem_size &&
+           mvm->fw_paging_db[0].fw_paging_block)
                file_len += mvm->num_of_paging_blk *
                        (sizeof(*dump_data) +
                         sizeof(struct iwl_fw_error_dump_paging) +
index 656541c5360a374ebaad9137f9404b82d9fb4d04,d278399097dc5bedb72ae8bed05da5db263cd6f2..8bfb8e06a90c4dd24765ca56aaf7a16abaa0f25b
@@@ -782,15 -761,8 +782,13 @@@ static void iwl_op_mode_mvm_stop(struc
        for (i = 0; i < NVM_MAX_NUM_SECTIONS; i++)
                kfree(mvm->nvm_sections[i].data);
  
-       iwl_free_fw_paging(mvm);
        iwl_mvm_tof_clean(mvm);
  
 +      del_timer_sync(&mvm->scan_timer);
 +
 +      mutex_destroy(&mvm->mutex);
 +      mutex_destroy(&mvm->d0i3_suspend_mutex);
 +
        ieee80211_free_hw(mvm->hw);
  }
  
index bd286fca3776b0f52b95818b848e7d7668988a8e,34731e29c58946d22ebd02e9195ebaf6a9c247e2..c53aa0f220e0873117ee34de8d41aaa98545f8d3
@@@ -294,16 -186,10 +295,16 @@@ void iwl_mvm_set_tx_cmd(struct iwl_mvm 
        tx_cmd->tx_flags = cpu_to_le32(tx_flags);
        /* Total # bytes to be transmitted */
        tx_cmd->len = cpu_to_le16((u16)skb->len +
-               (uintptr_t)info->driver_data[0]);
+               (uintptr_t)skb_info->driver_data[0]);
 -      tx_cmd->next_frame_len = 0;
        tx_cmd->life_time = cpu_to_le32(TX_CMD_LIFE_TIME_INFINITE);
        tx_cmd->sta_id = sta_id;
 +
 +      /* padding is inserted later in transport */
 +      if (ieee80211_hdrlen(fc) % 4 &&
 +          !(tx_cmd->offload_assist & cpu_to_le16(BIT(TX_CMD_OFFLD_AMSDU))))
 +              tx_cmd->offload_assist |= cpu_to_le16(BIT(TX_CMD_OFFLD_PAD));
 +
 +      iwl_mvm_tx_csum(mvm, skb, hdr, info, tx_cmd);
  }
  
  /*
index 41c6dd5b9cccc88dd5f9371445ea8db8278ca175,79d7cd7d461e49afda911356928b253f3c0ab794..de42066fa49b6d07cf8ce84400317f981e7adc25
@@@ -479,16 -479,24 +479,26 @@@ static const struct pci_device_id iwl_h
        {IWL_PCI_DEVICE(0x24F3, 0x0930, iwl8260_2ac_cfg)},
        {IWL_PCI_DEVICE(0x24F3, 0x0000, iwl8265_2ac_cfg)},
        {IWL_PCI_DEVICE(0x24FD, 0x0010, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x0110, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x1110, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x1010, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x0050, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x0150, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x9010, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x8110, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x8050, iwl8265_2ac_cfg)},
        {IWL_PCI_DEVICE(0x24FD, 0x8010, iwl8265_2ac_cfg)},
        {IWL_PCI_DEVICE(0x24FD, 0x0810, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x9110, iwl8265_2ac_cfg)},
+       {IWL_PCI_DEVICE(0x24FD, 0x8130, iwl8265_2ac_cfg)},
  
  /* 9000 Series */
 +      {IWL_PCI_DEVICE(0x9DF0, 0x0A10, iwl9560_2ac_cfg)},
 +      {IWL_PCI_DEVICE(0x9DF0, 0x0010, iwl9560_2ac_cfg)},
        {IWL_PCI_DEVICE(0x9DF0, 0x2A10, iwl5165_2ac_cfg)},
        {IWL_PCI_DEVICE(0x9DF0, 0x2010, iwl5165_2ac_cfg)},
 -      {IWL_PCI_DEVICE(0x9DF0, 0x0A10, iwl9260_2ac_cfg)},
 -      {IWL_PCI_DEVICE(0x9DF0, 0x0010, iwl9260_2ac_cfg)},
 +      {IWL_PCI_DEVICE(0x2526, 0x1420, iwl5165_2ac_cfg)},
 +      {IWL_PCI_DEVICE(0x2526, 0x0010, iwl5165_2ac_cfg)},
        {IWL_PCI_DEVICE(0x9DF0, 0x0000, iwl5165_2ac_cfg)},
        {IWL_PCI_DEVICE(0x9DF0, 0x0310, iwl5165_2ac_cfg)},
        {IWL_PCI_DEVICE(0x9DF0, 0x0510, iwl5165_2ac_cfg)},