Merge tag 'wireless-drivers-next-for-davem-2019-06-26' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next
Kalle Valu says: ==================== wireless-drivers-next patches for 5.3 First set of patches for 5.3, but not that many patches this time. This pull request fails to compile with the tip tree due to ktime_get_boot_ns() API changes there. It should be easy for Linus to fix it in p54 driver once he pulls this, an example resolution here: https://lkml.kernel.org/r/20190625160432.533aa140@canb.auug.org.au Major changes: airo * switch to use skcipher interface p54 * support boottime in scan results rtw88 * add fast xmit support * add random mac address on scan support rt2x00 * add software watchdog to detect hangs, it's disabled by default ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -368,7 +368,7 @@ static int if_usb_send_fw_pkt(struct if_usb_card *cardp)
|
||||
cardp->fwseqnum, cardp->totalbytes);
|
||||
} else if (fwdata->hdr.dnldcmd == cpu_to_le32(FW_HAS_LAST_BLOCK)) {
|
||||
lbs_deb_usb2(&cardp->udev->dev, "Host has finished FW downloading\n");
|
||||
lbs_deb_usb2(&cardp->udev->dev, "Donwloading FW JUMP BLOCK\n");
|
||||
lbs_deb_usb2(&cardp->udev->dev, "Downloading FW JUMP BLOCK\n");
|
||||
|
||||
cardp->fwfinalblk = 1;
|
||||
}
|
||||
|
@@ -315,7 +315,7 @@ static int if_usb_send_fw_pkt(struct if_usb_card *cardp)
|
||||
} else if (fwdata->hdr.dnldcmd == cpu_to_le32(FW_HAS_LAST_BLOCK)) {
|
||||
lbtf_deb_usb2(&cardp->udev->dev,
|
||||
"Host has finished FW downloading\n");
|
||||
lbtf_deb_usb2(&cardp->udev->dev, "Donwloading FW JUMP BLOCK\n");
|
||||
lbtf_deb_usb2(&cardp->udev->dev, "Downloading FW JUMP BLOCK\n");
|
||||
|
||||
/* Host has finished FW downloading
|
||||
* Donwloading FW JUMP BLOCK
|
||||
|
@@ -39,10 +39,11 @@ static void mwifiex_cancel_pending_ioctl(struct mwifiex_adapter *adapter);
|
||||
static void
|
||||
mwifiex_init_cmd_node(struct mwifiex_private *priv,
|
||||
struct cmd_ctrl_node *cmd_node,
|
||||
u32 cmd_oid, void *data_buf, bool sync)
|
||||
u32 cmd_no, void *data_buf, bool sync)
|
||||
{
|
||||
cmd_node->priv = priv;
|
||||
cmd_node->cmd_oid = cmd_oid;
|
||||
cmd_node->cmd_no = cmd_no;
|
||||
|
||||
if (sync) {
|
||||
cmd_node->wait_q_enabled = true;
|
||||
cmd_node->cmd_wait_q_woken = false;
|
||||
@@ -92,7 +93,7 @@ static void
|
||||
mwifiex_clean_cmd_node(struct mwifiex_adapter *adapter,
|
||||
struct cmd_ctrl_node *cmd_node)
|
||||
{
|
||||
cmd_node->cmd_oid = 0;
|
||||
cmd_node->cmd_no = 0;
|
||||
cmd_node->cmd_flag = 0;
|
||||
cmd_node->data_buf = NULL;
|
||||
cmd_node->wait_q_enabled = false;
|
||||
@@ -201,6 +202,7 @@ static int mwifiex_dnld_cmd_to_fw(struct mwifiex_private *priv,
|
||||
}
|
||||
|
||||
cmd_code = le16_to_cpu(host_cmd->command);
|
||||
cmd_node->cmd_no = cmd_code;
|
||||
cmd_size = le16_to_cpu(host_cmd->size);
|
||||
|
||||
if (adapter->hw_status == MWIFIEX_HW_STATUS_RESET &&
|
||||
@@ -621,7 +623,7 @@ int mwifiex_send_cmd(struct mwifiex_private *priv, u16 cmd_no,
|
||||
}
|
||||
|
||||
/* Initialize the command node */
|
||||
mwifiex_init_cmd_node(priv, cmd_node, cmd_oid, data_buf, sync);
|
||||
mwifiex_init_cmd_node(priv, cmd_node, cmd_no, data_buf, sync);
|
||||
|
||||
if (!cmd_node->cmd_skb) {
|
||||
mwifiex_dbg(adapter, ERROR,
|
||||
@@ -822,9 +824,6 @@ int mwifiex_process_cmdresp(struct mwifiex_adapter *adapter)
|
||||
uint16_t cmdresp_result;
|
||||
unsigned long flags;
|
||||
|
||||
/* Now we got response from FW, cancel the command timer */
|
||||
del_timer_sync(&adapter->cmd_timer);
|
||||
|
||||
if (!adapter->curr_cmd || !adapter->curr_cmd->resp_skb) {
|
||||
resp = (struct host_cmd_ds_command *) adapter->upld_buf;
|
||||
mwifiex_dbg(adapter, ERROR,
|
||||
@@ -833,9 +832,20 @@ int mwifiex_process_cmdresp(struct mwifiex_adapter *adapter)
|
||||
return -1;
|
||||
}
|
||||
|
||||
resp = (struct host_cmd_ds_command *)adapter->curr_cmd->resp_skb->data;
|
||||
orig_cmdresp_no = le16_to_cpu(resp->command);
|
||||
cmdresp_no = (orig_cmdresp_no & HostCmd_CMD_ID_MASK);
|
||||
|
||||
if (adapter->curr_cmd->cmd_no != cmdresp_no) {
|
||||
mwifiex_dbg(adapter, ERROR,
|
||||
"cmdresp error: cmd=0x%x cmd_resp=0x%x\n",
|
||||
adapter->curr_cmd->cmd_no, cmdresp_no);
|
||||
return -1;
|
||||
}
|
||||
/* Now we got response from FW, cancel the command timer */
|
||||
del_timer_sync(&adapter->cmd_timer);
|
||||
clear_bit(MWIFIEX_IS_CMD_TIMEDOUT, &adapter->work_flags);
|
||||
|
||||
resp = (struct host_cmd_ds_command *) adapter->curr_cmd->resp_skb->data;
|
||||
if (adapter->curr_cmd->cmd_flag & CMD_F_HOSTCMD) {
|
||||
/* Copy original response back to response buffer */
|
||||
struct mwifiex_ds_misc_cmd *hostcmd;
|
||||
@@ -849,7 +859,6 @@ int mwifiex_process_cmdresp(struct mwifiex_adapter *adapter)
|
||||
memcpy(hostcmd->cmd, resp, size);
|
||||
}
|
||||
}
|
||||
orig_cmdresp_no = le16_to_cpu(resp->command);
|
||||
|
||||
/* Get BSS number and corresponding priv */
|
||||
priv = mwifiex_get_priv_by_id(adapter,
|
||||
|
@@ -960,10 +960,10 @@ int mwifiex_set_mac_address(struct mwifiex_private *priv,
|
||||
|
||||
mac_addr = old_mac_addr;
|
||||
|
||||
if (priv->bss_type == MWIFIEX_BSS_TYPE_P2P)
|
||||
if (priv->bss_type == MWIFIEX_BSS_TYPE_P2P) {
|
||||
mac_addr |= BIT_ULL(MWIFIEX_MAC_LOCAL_ADMIN_BIT);
|
||||
|
||||
if (mwifiex_get_intf_num(priv->adapter, priv->bss_type) > 1) {
|
||||
mac_addr += priv->bss_num;
|
||||
} else if (priv->adapter->priv[0] != priv) {
|
||||
/* Set mac address based on bss_type/bss_num */
|
||||
mac_addr ^= BIT_ULL(priv->bss_type + 8);
|
||||
mac_addr += priv->bss_num;
|
||||
|
@@ -747,7 +747,7 @@ struct mwifiex_bss_prio_tbl {
|
||||
struct cmd_ctrl_node {
|
||||
struct list_head list;
|
||||
struct mwifiex_private *priv;
|
||||
u32 cmd_oid;
|
||||
u32 cmd_no;
|
||||
u32 cmd_flag;
|
||||
struct sk_buff *cmd_skb;
|
||||
struct sk_buff *resp_skb;
|
||||
|
@@ -2924,10 +2924,9 @@ static int mwifiex_init_pcie(struct mwifiex_adapter *adapter)
|
||||
|
||||
pci_set_master(pdev);
|
||||
|
||||
pr_notice("try set_consistent_dma_mask(32)\n");
|
||||
ret = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
|
||||
if (ret) {
|
||||
pr_err("set_dma_mask(32) failed\n");
|
||||
pr_err("set_dma_mask(32) failed: %d\n", ret);
|
||||
goto err_set_dma_mask;
|
||||
}
|
||||
|
||||
@@ -2960,7 +2959,7 @@ static int mwifiex_init_pcie(struct mwifiex_adapter *adapter)
|
||||
goto err_iomap2;
|
||||
}
|
||||
|
||||
pr_notice("PCI memory map Virt0: %p PCI memory map Virt2: %p\n",
|
||||
pr_notice("PCI memory map Virt0: %pK PCI memory map Virt2: %pK\n",
|
||||
card->pci_mmap, card->pci_mmap1);
|
||||
|
||||
ret = mwifiex_pcie_alloc_buffers(adapter);
|
||||
|
Reference in New Issue
Block a user