All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/4] mwifiex: remove unnecessary wakeup interrupt number sanity check
@ 2017-04-07 10:51 Xinming Hu
  2017-04-07 10:51 ` [PATCH v2 2/4] mwifiex: fall back mwifiex_dbg to pr_info when adapter->dev not set Xinming Hu
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Xinming Hu @ 2017-04-07 10:51 UTC (permalink / raw)
  To: Linux Wireless
  Cc: Kalle Valo, Brian Norris, Dmitry Torokhov, rajatja,
	Amitkumar Karwar, Cathy Luo, Xinming Hu

From: Xinming Hu <huxm@marvell.com>

If wakeup interrupt handler is called, we know that the wakeup
interrupt number is valid, there is no need to check it.

Signed-off-by: Xinming Hu <huxm@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Reviewed-by: Dmitry Torokhov <dtor@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>
---
v2: modify description(Dimtry)
---
 drivers/net/wireless/marvell/mwifiex/main.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wireless/marvell/mwifiex/main.c
index 0dfbac8..98fd491 100644
--- a/drivers/net/wireless/marvell/mwifiex/main.c
+++ b/drivers/net/wireless/marvell/mwifiex/main.c
@@ -1513,11 +1513,9 @@ static irqreturn_t mwifiex_irq_wakeup_handler(int irq, void *priv)
 {
 	struct mwifiex_adapter *adapter = priv;
 
-	if (adapter->irq_wakeup >= 0) {
-		dev_dbg(adapter->dev, "%s: wake by wifi", __func__);
-		adapter->wake_by_wifi = true;
-		disable_irq_nosync(irq);
-	}
+	dev_dbg(adapter->dev, "%s: wake by wifi", __func__);
+	adapter->wake_by_wifi = true;
+	disable_irq_nosync(irq);
 
 	/* Notify PM core we are wakeup source */
 	pm_wakeup_event(adapter->dev, 0);
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 2/4] mwifiex: fall back mwifiex_dbg to pr_info when adapter->dev not set
  2017-04-07 10:51 [PATCH v2 1/4] mwifiex: remove unnecessary wakeup interrupt number sanity check Xinming Hu
@ 2017-04-07 10:51 ` Xinming Hu
  2017-04-07 17:28   ` Dmitry Torokhov
  2017-04-07 10:51 ` [PATCH v2 3/4] mwifiex: pcie: correct scratch register name Xinming Hu
  2017-04-07 10:51 ` [PATCH v2 4/4] mwifiex: pcie: extract wifi part from combo firmware during function level reset Xinming Hu
  2 siblings, 1 reply; 6+ messages in thread
From: Xinming Hu @ 2017-04-07 10:51 UTC (permalink / raw)
  To: Linux Wireless
  Cc: Kalle Valo, Brian Norris, Dmitry Torokhov, rajatja,
	Amitkumar Karwar, Cathy Luo, Xinming Hu

From: Xinming Hu <huxm@marvell.com>

mwifiex_dbg will do nothing before adapter->dev get assigned. several logs
lost in this case. it can be avoided by fall back to pr_info.

Signed-off-by: Xinming Hu <huxm@marvell.com>
---
v2: enhance adapter->dev null case.(Brain)
---
 drivers/net/wireless/marvell/mwifiex/main.c | 17 ++++++++++++-----
 drivers/net/wireless/marvell/mwifiex/main.h |  2 ++
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wireless/marvell/mwifiex/main.c
index 98fd491..f3e772f 100644
--- a/drivers/net/wireless/marvell/mwifiex/main.c
+++ b/drivers/net/wireless/marvell/mwifiex/main.c
@@ -1749,18 +1749,25 @@ void _mwifiex_dbg(const struct mwifiex_adapter *adapter, int mask,
 {
 	struct va_format vaf;
 	va_list args;
+	char msg[MWIFIEX_LOG_LEN];
 
-	if (!adapter->dev || !(adapter->debug_mask & mask))
+	if (!(adapter->debug_mask & mask))
 		return;
 
 	va_start(args, fmt);
 
-	vaf.fmt = fmt;
-	vaf.va = &args;
-
-	dev_info(adapter->dev, "%pV", &vaf);
+	if (!adapter->dev) {
+		vsnprintf(msg, MWIFIEX_LOG_LEN, fmt, args);
+	} else {
+		vaf.fmt = fmt;
+		vaf.va = &args;
+		dev_info(adapter->dev, "%pV", &vaf);
+	}
 
 	va_end(args);
+
+	if (!adapter->dev)
+		pr_info("%s", msg);
 }
 EXPORT_SYMBOL_GPL(_mwifiex_dbg);
 
diff --git a/drivers/net/wireless/marvell/mwifiex/main.h b/drivers/net/wireless/marvell/mwifiex/main.h
index f1cb875..d4289a9 100644
--- a/drivers/net/wireless/marvell/mwifiex/main.h
+++ b/drivers/net/wireless/marvell/mwifiex/main.h
@@ -164,6 +164,8 @@ enum {
 /* Address alignment */
 #define MWIFIEX_ALIGN_ADDR(p, a) (((long)(p) + (a) - 1) & ~((a) - 1))
 
+#define MWIFIEX_LOG_LEN 120
+
 /**
  *enum mwifiex_debug_level  -  marvell wifi debug level
  */
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 3/4] mwifiex: pcie: correct scratch register name
  2017-04-07 10:51 [PATCH v2 1/4] mwifiex: remove unnecessary wakeup interrupt number sanity check Xinming Hu
  2017-04-07 10:51 ` [PATCH v2 2/4] mwifiex: fall back mwifiex_dbg to pr_info when adapter->dev not set Xinming Hu
@ 2017-04-07 10:51 ` Xinming Hu
  2017-04-07 10:51 ` [PATCH v2 4/4] mwifiex: pcie: extract wifi part from combo firmware during function level reset Xinming Hu
  2 siblings, 0 replies; 6+ messages in thread
From: Xinming Hu @ 2017-04-07 10:51 UTC (permalink / raw)
  To: Linux Wireless
  Cc: Kalle Valo, Brian Norris, Dmitry Torokhov, rajatja,
	Amitkumar Karwar, Cathy Luo, Xinming Hu

From: Xinming Hu <huxm@marvell.com>

This patch correct pcie scratch register name, to keep the same with
chipset side definition.

Signed-off-by: Xinming Hu <huxm@marvell.com>
---
v2: code clean and prepare for next patch 4/4
---
 drivers/net/wireless/marvell/mwifiex/pcie.c |  4 ++--
 drivers/net/wireless/marvell/mwifiex/pcie.h | 13 +++++++------
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
index f45ab12..a07cb0a 100644
--- a/drivers/net/wireless/marvell/mwifiex/pcie.c
+++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
@@ -2494,8 +2494,8 @@ static int mwifiex_pcie_host_to_card(struct mwifiex_adapter *adapter, u8 type,
 	struct pcie_service_card *card = adapter->card;
 	const struct mwifiex_pcie_card_reg *reg = card->pcie.reg;
 	int pcie_scratch_reg[] = {PCIE_SCRATCH_12_REG,
-				  PCIE_SCRATCH_13_REG,
-				  PCIE_SCRATCH_14_REG};
+				  PCIE_SCRATCH_14_REG,
+				  PCIE_SCRATCH_15_REG};
 
 	if (!p)
 		return 0;
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.h b/drivers/net/wireless/marvell/mwifiex/pcie.h
index 00e8ee5..7e2450c 100644
--- a/drivers/net/wireless/marvell/mwifiex/pcie.h
+++ b/drivers/net/wireless/marvell/mwifiex/pcie.h
@@ -77,8 +77,9 @@
 #define PCIE_SCRATCH_10_REG				0xCE8
 #define PCIE_SCRATCH_11_REG				0xCEC
 #define PCIE_SCRATCH_12_REG				0xCF0
-#define PCIE_SCRATCH_13_REG				0xCF8
-#define PCIE_SCRATCH_14_REG				0xCFC
+#define PCIE_SCRATCH_13_REG				0xCF4
+#define PCIE_SCRATCH_14_REG				0xCF8
+#define PCIE_SCRATCH_15_REG				0xCFC
 #define PCIE_RD_DATA_PTR_Q0_Q1                          0xC08C
 #define PCIE_WR_DATA_PTR_Q0_Q1                          0xC05C
 
@@ -217,8 +218,8 @@ struct mwifiex_pcie_card_reg {
 	.ring_tx_start_ptr = MWIFIEX_BD_FLAG_TX_START_PTR,
 	.pfu_enabled = 1,
 	.sleep_cookie = 0,
-	.fw_dump_ctrl = 0xcf4,
-	.fw_dump_start = 0xcf8,
+	.fw_dump_ctrl = PCIE_SCRATCH_13_REG,
+	.fw_dump_start = PCIE_SCRATCH_14_REG,
 	.fw_dump_end = 0xcff,
 	.fw_dump_host_ready = 0xee,
 	.fw_dump_read_done = 0xfe,
@@ -254,8 +255,8 @@ struct mwifiex_pcie_card_reg {
 	.ring_tx_start_ptr = MWIFIEX_BD_FLAG_TX_START_PTR,
 	.pfu_enabled = 1,
 	.sleep_cookie = 0,
-	.fw_dump_ctrl = 0xcf4,
-	.fw_dump_start = 0xcf8,
+	.fw_dump_ctrl = PCIE_SCRATCH_13_REG,
+	.fw_dump_start = PCIE_SCRATCH_14_REG,
 	.fw_dump_end = 0xcff,
 	.fw_dump_host_ready = 0xcc,
 	.fw_dump_read_done = 0xdd,
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 4/4] mwifiex: pcie: extract wifi part from combo firmware during function level reset
  2017-04-07 10:51 [PATCH v2 1/4] mwifiex: remove unnecessary wakeup interrupt number sanity check Xinming Hu
  2017-04-07 10:51 ` [PATCH v2 2/4] mwifiex: fall back mwifiex_dbg to pr_info when adapter->dev not set Xinming Hu
  2017-04-07 10:51 ` [PATCH v2 3/4] mwifiex: pcie: correct scratch register name Xinming Hu
@ 2017-04-07 10:51 ` Xinming Hu
  2 siblings, 0 replies; 6+ messages in thread
From: Xinming Hu @ 2017-04-07 10:51 UTC (permalink / raw)
  To: Linux Wireless
  Cc: Kalle Valo, Brian Norris, Dmitry Torokhov, rajatja,
	Amitkumar Karwar, Cathy Luo, Xinming Hu, Ganapathi Bhat

From: Xinming Hu <huxm@marvell.com>

A seperate wifi-only firmware was download during pcie function level reset.
It is in fact the tail part of wifi/bt combo firmware. Per Brian's and
Dmitry's suggestion, this patch extract the wifi part from combo firmware.

After that, we can discard the redudant image in linux-firmware repo.

Signed-off-by: Xinming Hu <huxm@marvell.com>
Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
---
v2: extract wifi part from combo firmware(Dimtry and Brain)
    add more description(Kalle)
---
 drivers/net/wireless/marvell/mwifiex/fw.h   | 18 +++++++
 drivers/net/wireless/marvell/mwifiex/pcie.c | 83 ++++++++++++++++++++++++++---
 drivers/net/wireless/marvell/mwifiex/pcie.h |  2 +
 3 files changed, 96 insertions(+), 7 deletions(-)

diff --git a/drivers/net/wireless/marvell/mwifiex/fw.h b/drivers/net/wireless/marvell/mwifiex/fw.h
index 0b68374..6cf9ab9 100644
--- a/drivers/net/wireless/marvell/mwifiex/fw.h
+++ b/drivers/net/wireless/marvell/mwifiex/fw.h
@@ -43,6 +43,24 @@ struct tx_packet_hdr {
 	struct rfc_1042_hdr rfc1042_hdr;
 } __packed;
 
+struct mwifiex_fw_header {
+	__le32 dnld_cmd;
+	__le32 base_addr;
+	__le32 data_length;
+	__le32 crc;
+} __packed;
+
+struct mwifiex_fw_data {
+	struct mwifiex_fw_header header;
+	__le32 seq_num;
+	u8 data[1];
+} __packed;
+
+#define MWIFIEX_FW_DNLD_CMD_1 0x1
+#define MWIFIEX_FW_DNLD_CMD_5 0x5
+#define MWIFIEX_FW_DNLD_CMD_6 0x6
+#define MWIFIEX_FW_DNLD_CMD_7 0x7
+
 #define B_SUPPORTED_RATES               5
 #define G_SUPPORTED_RATES               9
 #define BG_SUPPORTED_RATES              13
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
index a07cb0a..ebf00d9 100644
--- a/drivers/net/wireless/marvell/mwifiex/pcie.c
+++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
@@ -1956,6 +1956,63 @@ static int mwifiex_pcie_event_complete(struct mwifiex_adapter *adapter,
 	return ret;
 }
 
+/* Extract wifi part from wifi-bt combo firmware image.
+ */
+
+static int mwifiex_extract_wifi_fw(struct mwifiex_adapter *adapter,
+				   u8 *firmware, u32 firmware_len) {
+	struct mwifiex_fw_data fwdata;
+	u32 offset = 0, data_len, dnld_cmd;
+	int ret = 0;
+	bool cmd7_before = false;
+
+	while (1) {
+		if (offset + sizeof(fwdata.header) >= firmware_len) {
+			mwifiex_dbg(adapter, ERROR,
+				    "extract wifi-only firmware failure!");
+			ret = -1;
+			goto done;
+		}
+
+		memcpy(&fwdata.header, firmware + offset,
+		       sizeof(fwdata.header));
+		dnld_cmd = le32_to_cpu(fwdata.header.dnld_cmd);
+		data_len = le32_to_cpu(fwdata.header.data_length);
+
+		switch (dnld_cmd) {
+		case MWIFIEX_FW_DNLD_CMD_1:
+			if (!cmd7_before) {
+				mwifiex_dbg(adapter, ERROR,
+					    "no cmd7 before cmd1!");
+				ret = -1;
+				goto done;
+			}
+			offset += data_len + sizeof(fwdata.header);
+			break;
+		case MWIFIEX_FW_DNLD_CMD_5:
+			offset += data_len + sizeof(fwdata.header);
+			break;
+		case MWIFIEX_FW_DNLD_CMD_6:
+			offset += data_len + sizeof(fwdata.header);
+			ret = offset;
+			goto done;
+		case MWIFIEX_FW_DNLD_CMD_7:
+			if (!cmd7_before)
+				cmd7_before = true;
+			offset += sizeof(fwdata.header);
+			break;
+		default:
+			mwifiex_dbg(adapter, ERROR, "unknown dnld_cmd %d\n",
+				    dnld_cmd);
+			ret = -1;
+			goto done;
+		}
+	}
+
+done:
+	return ret;
+}
+
 /*
  * This function downloads the firmware to the card.
  *
@@ -1971,7 +2028,7 @@ static int mwifiex_prog_fw_w_helper(struct mwifiex_adapter *adapter,
 	u32 firmware_len = fw->fw_len;
 	u32 offset = 0;
 	struct sk_buff *skb;
-	u32 txlen, tx_blocks = 0, tries, len;
+	u32 txlen, tx_blocks = 0, tries, len, val;
 	u32 block_retry_cnt = 0;
 	struct pcie_service_card *card = adapter->card;
 	const struct mwifiex_pcie_card_reg *reg = card->pcie.reg;
@@ -1998,6 +2055,24 @@ static int mwifiex_prog_fw_w_helper(struct mwifiex_adapter *adapter,
 		goto done;
 	}
 
+	ret = mwifiex_read_reg(adapter, PCIE_SCRATCH_13_REG, &val);
+	if (ret) {
+		mwifiex_dbg(adapter, FATAL, "Failed to read scratch register 13\n");
+		goto done;
+	}
+
+	/* PCIE FLR case: extract wifi part from combo firmware*/
+	if (val == MWIFIEX_PCIE_FLR_HAPPENS) {
+		ret = mwifiex_extract_wifi_fw(adapter, firmware, firmware_len);
+		if (ret < 0) {
+			mwifiex_dbg(adapter, ERROR, "Failed to extract wifi fw\n");
+			goto done;
+		}
+		offset = ret;
+		mwifiex_dbg(adapter, MSG,
+			    "info: dnld wifi firmware from %d bytes\n", offset);
+	}
+
 	/* Perform firmware data transfer */
 	do {
 		u32 ireg_intr = 0;
@@ -3060,12 +3135,6 @@ static void mwifiex_pcie_up_dev(struct mwifiex_adapter *adapter)
 	struct pci_dev *pdev = card->dev;
 	const struct mwifiex_pcie_card_reg *reg = card->pcie.reg;
 
-	/* Bluetooth is not on pcie interface. Download Wifi only firmware
-	 * during pcie FLR, so that bluetooth part of firmware which is
-	 * already running doesn't get affected.
-	 */
-	strcpy(adapter->fw_name, PCIE8997_DEFAULT_WIFIFW_NAME);
-
 	/* tx_buf_size might be changed to 3584 by firmware during
 	 * data transfer, we should reset it to default size.
 	 */
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.h b/drivers/net/wireless/marvell/mwifiex/pcie.h
index 6ac7dcb..5bbadf7 100644
--- a/drivers/net/wireless/marvell/mwifiex/pcie.h
+++ b/drivers/net/wireless/marvell/mwifiex/pcie.h
@@ -120,6 +120,8 @@
 #define MWIFIEX_SLEEP_COOKIE_SIZE			4
 #define MWIFIEX_MAX_DELAY_COUNT				100
 
+#define MWIFIEX_PCIE_FLR_HAPPENS 0xFEDCBABA
+
 struct mwifiex_pcie_card_reg {
 	u16 cmd_addr_lo;
 	u16 cmd_addr_hi;
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 2/4] mwifiex: fall back mwifiex_dbg to pr_info when adapter->dev not set
  2017-04-07 10:51 ` [PATCH v2 2/4] mwifiex: fall back mwifiex_dbg to pr_info when adapter->dev not set Xinming Hu
@ 2017-04-07 17:28   ` Dmitry Torokhov
  2017-04-10  9:08     ` Xinming Hu
  0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Torokhov @ 2017-04-07 17:28 UTC (permalink / raw)
  To: Xinming Hu
  Cc: Linux Wireless, Kalle Valo, Brian Norris, Rajat Jain,
	Amitkumar Karwar, Cathy Luo, Xinming Hu

Hi Xinming,

On Fri, Apr 7, 2017 at 3:51 AM, Xinming Hu <huxinming820@gmail.com> wrote:
> From: Xinming Hu <huxm@marvell.com>
>
> mwifiex_dbg will do nothing before adapter->dev get assigned. several logs
> lost in this case. it can be avoided by fall back to pr_info.
>
> Signed-off-by: Xinming Hu <huxm@marvell.com>
> ---
> v2: enhance adapter->dev null case.(Brain)
> ---
>  drivers/net/wireless/marvell/mwifiex/main.c | 17 ++++++++++++-----
>  drivers/net/wireless/marvell/mwifiex/main.h |  2 ++
>  2 files changed, 14 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wireless/marvell/mwifiex/main.c
> index 98fd491..f3e772f 100644
> --- a/drivers/net/wireless/marvell/mwifiex/main.c
> +++ b/drivers/net/wireless/marvell/mwifiex/main.c
> @@ -1749,18 +1749,25 @@ void _mwifiex_dbg(const struct mwifiex_adapter *adapter, int mask,
>  {
>         struct va_format vaf;
>         va_list args;
> +       char msg[MWIFIEX_LOG_LEN];
>
> -       if (!adapter->dev || !(adapter->debug_mask & mask))
> +       if (!(adapter->debug_mask & mask))
>                 return;
>
>         va_start(args, fmt);
>
> -       vaf.fmt = fmt;
> -       vaf.va = &args;
> -
> -       dev_info(adapter->dev, "%pV", &vaf);
> +       if (!adapter->dev) {
> +               vsnprintf(msg, MWIFIEX_LOG_LEN, fmt, args);
> +       } else {
> +               vaf.fmt = fmt;
> +               vaf.va = &args;
> +               dev_info(adapter->dev, "%pV", &vaf);
> +       }
>
>         va_end(args);
> +
> +       if (!adapter->dev)
> +               pr_info("%s", msg);

Why not:

vaf.fmt = fmt;
vaf.va = &args;

if (adapter->dev)
        dev_info(adapter->dev, "%pV", &vaf);
else
        pr_info("mwifiex: %pV", &vaf);

va_end(args);

Also, instead of static "mwifiex" prefix maybe make sure you have
pr_fmt() set properly (I am not sure if it is set or not).

Thanks.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE:  Re: [PATCH v2 2/4] mwifiex: fall back mwifiex_dbg to pr_info when adapter->dev not set
  2017-04-07 17:28   ` Dmitry Torokhov
@ 2017-04-10  9:08     ` Xinming Hu
  0 siblings, 0 replies; 6+ messages in thread
From: Xinming Hu @ 2017-04-10  9:08 UTC (permalink / raw)
  To: Dmitry Torokhov, Xinming Hu
  Cc: Linux Wireless, Kalle Valo, Brian Norris, Rajat Jain, Cathy Luo

SGkgRG1pdHJ5LA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IERtaXRy
eSBUb3Jva2hvdiBbbWFpbHRvOmR0b3JAZ29vZ2xlLmNvbV0NCj4gU2VudDogMjAxN+W5tDTmnIg4
5pelIDE6MjgNCj4gVG86IFhpbm1pbmcgSHUNCj4gQ2M6IExpbnV4IFdpcmVsZXNzOyBLYWxsZSBW
YWxvOyBCcmlhbiBOb3JyaXM7IFJhamF0IEphaW47IEFtaXRrdW1hciBLYXJ3YXI7DQo+IENhdGh5
IEx1bzsgWGlubWluZyBIdQ0KPiBTdWJqZWN0OiBbRVhUXSBSZTogW1BBVENIIHYyIDIvNF0gbXdp
ZmlleDogZmFsbCBiYWNrIG13aWZpZXhfZGJnIHRvIHByX2luZm8NCj4gd2hlbiBhZGFwdGVyLT5k
ZXYgbm90IHNldA0KPiANCj4gRXh0ZXJuYWwgRW1haWwNCj4gDQo+IC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g
SGkgWGlubWluZywNCj4gDQo+IE9uIEZyaSwgQXByIDcsIDIwMTcgYXQgMzo1MSBBTSwgWGlubWlu
ZyBIdSA8aHV4aW5taW5nODIwQGdtYWlsLmNvbT4NCj4gd3JvdGU6DQo+ID4gRnJvbTogWGlubWlu
ZyBIdSA8aHV4bUBtYXJ2ZWxsLmNvbT4NCj4gPg0KPiA+IG13aWZpZXhfZGJnIHdpbGwgZG8gbm90
aGluZyBiZWZvcmUgYWRhcHRlci0+ZGV2IGdldCBhc3NpZ25lZC4gc2V2ZXJhbA0KPiA+IGxvZ3Mg
bG9zdCBpbiB0aGlzIGNhc2UuIGl0IGNhbiBiZSBhdm9pZGVkIGJ5IGZhbGwgYmFjayB0byBwcl9p
bmZvLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogWGlubWluZyBIdSA8aHV4bUBtYXJ2ZWxsLmNv
bT4NCj4gPiAtLS0NCj4gPiB2MjogZW5oYW5jZSBhZGFwdGVyLT5kZXYgbnVsbCBjYXNlLihCcmFp
bikNCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21h
aW4uYyB8IDE3ICsrKysrKysrKysrKy0tLS0tDQo+ID4gZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFy
dmVsbC9td2lmaWV4L21haW4uaCB8ICAyICsrDQo+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMTQgaW5z
ZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz
L25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5jDQo+ID4gYi9kcml2ZXJzL25ldC93
aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5jDQo+ID4gaW5kZXggOThmZDQ5MS4uZjNlNzcy
ZiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgv
bWFpbi5jDQo+ID4gKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21h
aW4uYw0KPiA+IEBAIC0xNzQ5LDE4ICsxNzQ5LDI1IEBAIHZvaWQgX213aWZpZXhfZGJnKGNvbnN0
IHN0cnVjdA0KPiBtd2lmaWV4X2FkYXB0ZXINCj4gPiAqYWRhcHRlciwgaW50IG1hc2ssICB7DQo+
ID4gICAgICAgICBzdHJ1Y3QgdmFfZm9ybWF0IHZhZjsNCj4gPiAgICAgICAgIHZhX2xpc3QgYXJn
czsNCj4gPiArICAgICAgIGNoYXIgbXNnW01XSUZJRVhfTE9HX0xFTl07DQo+ID4NCj4gPiAtICAg
ICAgIGlmICghYWRhcHRlci0+ZGV2IHx8ICEoYWRhcHRlci0+ZGVidWdfbWFzayAmIG1hc2spKQ0K
PiA+ICsgICAgICAgaWYgKCEoYWRhcHRlci0+ZGVidWdfbWFzayAmIG1hc2spKQ0KPiA+ICAgICAg
ICAgICAgICAgICByZXR1cm47DQo+ID4NCj4gPiAgICAgICAgIHZhX3N0YXJ0KGFyZ3MsIGZtdCk7
DQo+ID4NCj4gPiAtICAgICAgIHZhZi5mbXQgPSBmbXQ7DQo+ID4gLSAgICAgICB2YWYudmEgPSAm
YXJnczsNCj4gPiAtDQo+ID4gLSAgICAgICBkZXZfaW5mbyhhZGFwdGVyLT5kZXYsICIlcFYiLCAm
dmFmKTsNCj4gPiArICAgICAgIGlmICghYWRhcHRlci0+ZGV2KSB7DQo+ID4gKyAgICAgICAgICAg
ICAgIHZzbnByaW50Zihtc2csIE1XSUZJRVhfTE9HX0xFTiwgZm10LCBhcmdzKTsNCj4gPiArICAg
ICAgIH0gZWxzZSB7DQo+ID4gKyAgICAgICAgICAgICAgIHZhZi5mbXQgPSBmbXQ7DQo+ID4gKyAg
ICAgICAgICAgICAgIHZhZi52YSA9ICZhcmdzOw0KPiA+ICsgICAgICAgICAgICAgICBkZXZfaW5m
byhhZGFwdGVyLT5kZXYsICIlcFYiLCAmdmFmKTsNCj4gPiArICAgICAgIH0NCj4gPg0KPiA+ICAg
ICAgICAgdmFfZW5kKGFyZ3MpOw0KPiA+ICsNCj4gPiArICAgICAgIGlmICghYWRhcHRlci0+ZGV2
KQ0KPiA+ICsgICAgICAgICAgICAgICBwcl9pbmZvKCIlcyIsIG1zZyk7DQo+IA0KPiBXaHkgbm90
Og0KPiANCj4gdmFmLmZtdCA9IGZtdDsNCj4gdmFmLnZhID0gJmFyZ3M7DQo+IA0KPiBpZiAoYWRh
cHRlci0+ZGV2KQ0KPiAgICAgICAgIGRldl9pbmZvKGFkYXB0ZXItPmRldiwgIiVwViIsICZ2YWYp
OyBlbHNlDQo+ICAgICAgICAgcHJfaW5mbygibXdpZmlleDogJXBWIiwgJnZhZik7DQo+IA0KDQpT
aW1wbGUgY2hhbmdlIGhlcmUgbG9va3MgYmV0dGVyLCBoYXZlIGFwcGxpZWQgaW4gdjMuDQoNCj4g
dmFfZW5kKGFyZ3MpOw0KPiANCj4gQWxzbywgaW5zdGVhZCBvZiBzdGF0aWMgIm13aWZpZXgiIHBy
ZWZpeCBtYXliZSBtYWtlIHN1cmUgeW91IGhhdmUNCj4gcHJfZm10KCkgc2V0IHByb3Blcmx5IChJ
IGFtIG5vdCBzdXJlIGlmIGl0IGlzIHNldCBvciBub3QpLg0KPiANCg0KWWVzLCB3ZSBoYXZlIHRo
ZSBiZWxvdyBkZWZpbmU6DQojZGVmaW5lIHByX2ZtdChmbXQpIEtCVUlMRF9NT0ROQU1FICI6ICIg
Zm10DQoNClRoYW5rcw0KU2ltb24NCg0KPiBUaGFua3MuDQo+IA0KPiAtLQ0KPiBEbWl0cnkNCg==

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-04-10  9:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-07 10:51 [PATCH v2 1/4] mwifiex: remove unnecessary wakeup interrupt number sanity check Xinming Hu
2017-04-07 10:51 ` [PATCH v2 2/4] mwifiex: fall back mwifiex_dbg to pr_info when adapter->dev not set Xinming Hu
2017-04-07 17:28   ` Dmitry Torokhov
2017-04-10  9:08     ` Xinming Hu
2017-04-07 10:51 ` [PATCH v2 3/4] mwifiex: pcie: correct scratch register name Xinming Hu
2017-04-07 10:51 ` [PATCH v2 4/4] mwifiex: pcie: extract wifi part from combo firmware during function level reset Xinming Hu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.