mwifiex: Fix invalid port issue
authorGanapathi Bhat <gbhat@marvell.com>
Tue, 4 Apr 2017 04:46:28 +0000 (10:16 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Mar 2018 08:17:53 +0000 (09:17 +0100)
[ Upstream commit ecd7eb7c2bcf99f6c23d68ad56ce15949da848a1 ]

We have to use start port, for TX/RX of single packet,
instead of current aggregating port. This will fix SDIO
CMD53(TX/RX) returning -ETIMEDOUT and halting the data path.

Fixes: 0cb52aac4d19 ("mwifiex: do not set multiport flag for tx/rx single packet")
Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/marvell/mwifiex/sdio.c

index 8d601dcf294808244914665a9d6abc8d13a296d4..486b8c75cd1f9ec098edb71d1b878aecbc14b27c 100644 (file)
@@ -1458,7 +1458,7 @@ static int mwifiex_sdio_card_to_host_mp_aggr(struct mwifiex_adapter *adapter,
                }
 
                if (card->mpa_rx.pkt_cnt == 1)
-                       mport = adapter->ioport + port;
+                       mport = adapter->ioport + card->mpa_rx.start_port;
 
                if (mwifiex_read_data_sync(adapter, card->mpa_rx.buf,
                                           card->mpa_rx.buf_len, mport, 1))
@@ -1891,7 +1891,7 @@ static int mwifiex_host_to_card_mp_aggr(struct mwifiex_adapter *adapter,
                }
 
                if (card->mpa_tx.pkt_cnt == 1)
-                       mport = adapter->ioport + port;
+                       mport = adapter->ioport + card->mpa_tx.start_port;
 
                ret = mwifiex_write_data_to_card(adapter, card->mpa_tx.buf,
                                                 card->mpa_tx.buf_len, mport);