All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] mwifiex: remove unnecessary wakeup interrupt number sanity check
@ 2017-03-30  9:19 Xinming Hu
  2017-03-30  9:19 ` [PATCH 2/3] mwifiex: using general print function during device intialization Xinming Hu
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Xinming Hu @ 2017-03-30  9:19 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>

Sanity check of interrupt number in interrupt handler is unnecessary and
confusion, remove it.

Signed-off-by: Xinming Hu <huxm@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
---
 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 30f4994..5e82602 100644
--- a/drivers/net/wireless/marvell/mwifiex/main.c
+++ b/drivers/net/wireless/marvell/mwifiex/main.c
@@ -1503,11 +1503,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] 16+ messages in thread

* [PATCH 2/3] mwifiex: using general print function during device intialization
  2017-03-30  9:19 [PATCH 1/3] mwifiex: remove unnecessary wakeup interrupt number sanity check Xinming Hu
@ 2017-03-30  9:19 ` Xinming Hu
  2017-03-31 22:46   ` Dmitry Torokhov
  2017-03-30  9:19 ` [PATCH 3/3] mwifiex: pcie: avoid hardcode wifi-only firmware name Xinming Hu
  2017-03-31 22:37 ` [PATCH 1/3] mwifiex: remove unnecessary wakeup interrupt number sanity check Dmitry Torokhov
  2 siblings, 1 reply; 16+ messages in thread
From: Xinming Hu @ 2017-03-30  9:19 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>

adapter->dev is initialized after mwifiex_register done, before that
print message by general pr_* function

Signed-off-by: Xinming Hu <huxm@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
---
 drivers/net/wireless/marvell/mwifiex/pcie.c | 78 ++++++++++++-----------------
 drivers/net/wireless/marvell/mwifiex/sdio.c |  3 +-
 2 files changed, 34 insertions(+), 47 deletions(-)

diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
index e381def..59cb01a 100644
--- a/drivers/net/wireless/marvell/mwifiex/pcie.c
+++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
@@ -60,7 +60,7 @@ static int mwifiex_pcie_probe_of(struct device *dev)
 
 	mapping.addr = pci_map_single(card->dev, skb->data, size, flags);
 	if (pci_dma_mapping_error(card->dev, mapping.addr)) {
-		mwifiex_dbg(adapter, ERROR, "failed to map pci memory!\n");
+		pr_err("failed to map pci memory!\n");
 		return -1;
 	}
 	mapping.len = size;
@@ -594,7 +594,7 @@ static int mwifiex_init_rxq_ring(struct mwifiex_adapter *adapter)
 		skb = mwifiex_alloc_dma_align_buf(MWIFIEX_RX_DATA_BUF_SIZE,
 						  GFP_KERNEL);
 		if (!skb) {
-			mwifiex_dbg(adapter, ERROR,
+			pr_err(
 				    "Unable to allocate skb for RX ring.\n");
 			kfree(card->rxbd_ring_vbase);
 			return -ENOMEM;
@@ -651,8 +651,7 @@ static int mwifiex_pcie_init_evt_ring(struct mwifiex_adapter *adapter)
 		/* Allocate skb here so that firmware can DMA data from it */
 		skb = dev_alloc_skb(MAX_EVENT_SIZE);
 		if (!skb) {
-			mwifiex_dbg(adapter, ERROR,
-				    "Unable to allocate skb for EVENT buf.\n");
+			pr_err("Unable to allocate skb for EVENT buf.\n");
 			kfree(card->evtbd_ring_vbase);
 			return -ENOMEM;
 		}
@@ -818,16 +817,14 @@ static int mwifiex_pcie_create_txbd_ring(struct mwifiex_adapter *adapter)
 						     card->txbd_ring_size,
 						     &card->txbd_ring_pbase);
 	if (!card->txbd_ring_vbase) {
-		mwifiex_dbg(adapter, ERROR,
-			    "allocate consistent memory (%d bytes) failed!\n",
-			    card->txbd_ring_size);
+		pr_err("allocate consistent memory (%d bytes) failed!\n",
+		       card->txbd_ring_size);
 		return -ENOMEM;
 	}
-	mwifiex_dbg(adapter, DATA,
-		    "info: txbd_ring - base: %p, pbase: %#x:%x, len: %x\n",
-		    card->txbd_ring_vbase, (unsigned int)card->txbd_ring_pbase,
-		    (u32)((u64)card->txbd_ring_pbase >> 32),
-		    card->txbd_ring_size);
+	pr_notice("info: txbd_ring - base: %p, pbase: %#x:%x, len: %x\n",
+		  card->txbd_ring_vbase, (unsigned int)card->txbd_ring_pbase,
+		  (u32)((u64)card->txbd_ring_pbase >> 32),
+		  card->txbd_ring_size);
 
 	return mwifiex_init_txq_ring(adapter);
 }
@@ -875,24 +872,21 @@ static int mwifiex_pcie_create_rxbd_ring(struct mwifiex_adapter *adapter)
 		card->rxbd_ring_size = sizeof(struct mwifiex_pcie_buf_desc) *
 				       MWIFIEX_MAX_TXRX_BD;
 
-	mwifiex_dbg(adapter, INFO,
-		    "info: rxbd_ring: Allocating %d bytes\n",
-		    card->rxbd_ring_size);
+	pr_info("info: rxbd_ring: Allocating %d bytes\n",
+		card->rxbd_ring_size);
 	card->rxbd_ring_vbase = pci_alloc_consistent(card->dev,
 						     card->rxbd_ring_size,
 						     &card->rxbd_ring_pbase);
 	if (!card->rxbd_ring_vbase) {
-		mwifiex_dbg(adapter, ERROR,
-			    "allocate consistent memory (%d bytes) failed!\n",
-			    card->rxbd_ring_size);
+		pr_err("allocate consistent memory (%d bytes) failed!\n",
+		       card->rxbd_ring_size);
 		return -ENOMEM;
 	}
 
-	mwifiex_dbg(adapter, DATA,
-		    "info: rxbd_ring - base: %p, pbase: %#x:%x, len: %#x\n",
-		    card->rxbd_ring_vbase, (u32)card->rxbd_ring_pbase,
-		    (u32)((u64)card->rxbd_ring_pbase >> 32),
-		    card->rxbd_ring_size);
+	pr_notice("info: rxbd_ring - base: %p, pbase: %#x:%x, len: %#x\n",
+		  card->rxbd_ring_vbase, (u32)card->rxbd_ring_pbase,
+		  (u32)((u64)card->rxbd_ring_pbase >> 32),
+		  card->rxbd_ring_size);
 
 	return mwifiex_init_rxq_ring(adapter);
 }
@@ -939,24 +933,21 @@ static int mwifiex_pcie_create_evtbd_ring(struct mwifiex_adapter *adapter)
 	card->evtbd_ring_size = sizeof(struct mwifiex_evt_buf_desc) *
 				MWIFIEX_MAX_EVT_BD;
 
-	mwifiex_dbg(adapter, INFO,
-		    "info: evtbd_ring: Allocating %d bytes\n",
+	pr_info("info: evtbd_ring: Allocating %d bytes\n",
 		card->evtbd_ring_size);
 	card->evtbd_ring_vbase = pci_alloc_consistent(card->dev,
 						      card->evtbd_ring_size,
 						      &card->evtbd_ring_pbase);
 	if (!card->evtbd_ring_vbase) {
-		mwifiex_dbg(adapter, ERROR,
-			    "allocate consistent memory (%d bytes) failed!\n",
-			    card->evtbd_ring_size);
+		pr_err("allocate consistent memory (%d bytes) failed!\n",
+		       card->evtbd_ring_size);
 		return -ENOMEM;
 	}
 
-	mwifiex_dbg(adapter, EVENT,
-		    "info: CMDRSP/EVT bd_ring - base: %p pbase: %#x:%x len: %#x\n",
-		    card->evtbd_ring_vbase, (u32)card->evtbd_ring_pbase,
-		    (u32)((u64)card->evtbd_ring_pbase >> 32),
-		    card->evtbd_ring_size);
+	pr_notice("info: CMDRSP/EVT bd_ring - base: %p pbase: %#x:%x len: %#x\n",
+		  card->evtbd_ring_vbase, (u32)card->evtbd_ring_pbase,
+		  (u32)((u64)card->evtbd_ring_pbase >> 32),
+		  card->evtbd_ring_size);
 
 	return mwifiex_pcie_init_evt_ring(adapter);
 }
@@ -995,8 +986,7 @@ static int mwifiex_pcie_alloc_cmdrsp_buf(struct mwifiex_adapter *adapter)
 	/* Allocate memory for receiving command response data */
 	skb = dev_alloc_skb(MWIFIEX_UPLD_SIZE);
 	if (!skb) {
-		mwifiex_dbg(adapter, ERROR,
-			    "Unable to allocate skb for command response data.\n");
+		pr_err("Unable to allocate skb for command response data.\n");
 		return -ENOMEM;
 	}
 	skb_put(skb, MWIFIEX_UPLD_SIZE);
@@ -1045,17 +1035,15 @@ static int mwifiex_pcie_alloc_sleep_cookie_buf(struct mwifiex_adapter *adapter)
 	card->sleep_cookie_vbase = pci_alloc_consistent(card->dev, sizeof(u32),
 						     &card->sleep_cookie_pbase);
 	if (!card->sleep_cookie_vbase) {
-		mwifiex_dbg(adapter, ERROR,
-			    "pci_alloc_consistent failed!\n");
+		pr_err("pci_alloc_consistent failed!\n");
 		return -ENOMEM;
 	}
 	/* Init val of Sleep Cookie */
 	tmp = FW_AWAKE_COOKIE;
 	put_unaligned(tmp, card->sleep_cookie_vbase);
 
-	mwifiex_dbg(adapter, INFO,
-		    "alloc_scook: sleep cookie=0x%x\n",
-		    get_unaligned(card->sleep_cookie_vbase));
+	pr_info("alloc_scook: sleep cookie=0x%x\n",
+		get_unaligned(card->sleep_cookie_vbase));
 
 	return 0;
 }
@@ -3069,32 +3057,32 @@ static void mwifiex_pcie_up_dev(struct mwifiex_adapter *adapter)
 	card->cmdrsp_buf = NULL;
 	ret = mwifiex_pcie_create_txbd_ring(adapter);
 	if (ret) {
-		mwifiex_dbg(adapter, ERROR, "Failed to create txbd ring\n");
+		pr_err("Failed to create txbd ring\n");
 		goto err_cre_txbd;
 	}
 
 	ret = mwifiex_pcie_create_rxbd_ring(adapter);
 	if (ret) {
-		mwifiex_dbg(adapter, ERROR, "Failed to create rxbd ring\n");
+		pr_err("Failed to create rxbd ring\n");
 		goto err_cre_rxbd;
 	}
 
 	ret = mwifiex_pcie_create_evtbd_ring(adapter);
 	if (ret) {
-		mwifiex_dbg(adapter, ERROR, "Failed to create evtbd ring\n");
+		pr_err("Failed to create evtbd ring\n");
 		goto err_cre_evtbd;
 	}
 
 	ret = mwifiex_pcie_alloc_cmdrsp_buf(adapter);
 	if (ret) {
-		mwifiex_dbg(adapter, ERROR, "Failed to allocate cmdbuf buffer\n");
+		pr_err("Failed to allocate cmdbuf buffer\n");
 		goto err_alloc_cmdbuf;
 	}
 
 	if (reg->sleep_cookie) {
 		ret = mwifiex_pcie_alloc_sleep_cookie_buf(adapter);
 		if (ret) {
-			mwifiex_dbg(adapter, ERROR, "Failed to allocate sleep_cookie buffer\n");
+			pr_err("Failed to allocate sleep_cookie buffer\n");
 			goto err_alloc_cookie;
 		}
 	} else {
diff --git a/drivers/net/wireless/marvell/mwifiex/sdio.c b/drivers/net/wireless/marvell/mwifiex/sdio.c
index 58d3da0..596282e 100644
--- a/drivers/net/wireless/marvell/mwifiex/sdio.c
+++ b/drivers/net/wireless/marvell/mwifiex/sdio.c
@@ -631,8 +631,7 @@ static int mwifiex_init_sdio_ioport(struct mwifiex_adapter *adapter)
 	else
 		return -1;
 cont:
-	mwifiex_dbg(adapter, INFO,
-		    "info: SDIO FUNC1 IO port: %#x\n", adapter->ioport);
+	pr_info("info: SDIO FUNC1 IO port: %#x\n", adapter->ioport);
 
 	/* Set Host interrupt reset to read to clear */
 	if (!mwifiex_read_reg(adapter, card->reg->host_int_rsr_reg, &reg))
-- 
1.8.1.4

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

* [PATCH 3/3] mwifiex: pcie: avoid hardcode wifi-only firmware name
  2017-03-30  9:19 [PATCH 1/3] mwifiex: remove unnecessary wakeup interrupt number sanity check Xinming Hu
  2017-03-30  9:19 ` [PATCH 2/3] mwifiex: using general print function during device intialization Xinming Hu
@ 2017-03-30  9:19 ` Xinming Hu
  2017-03-31 22:50   ` Dmitry Torokhov
                     ` (2 more replies)
  2017-03-31 22:37 ` [PATCH 1/3] mwifiex: remove unnecessary wakeup interrupt number sanity check Dmitry Torokhov
  2 siblings, 3 replies; 16+ messages in thread
From: Xinming Hu @ 2017-03-30  9:19 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>

Wifi-only firmware name should be chipset specific.

Signed-off-by: Xinming Hu <huxm@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
---
 drivers/net/wireless/marvell/mwifiex/pcie.c | 8 +++++++-
 drivers/net/wireless/marvell/mwifiex/pcie.h | 6 ++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
index 59cb01a..282aa9a 100644
--- a/drivers/net/wireless/marvell/mwifiex/pcie.c
+++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
@@ -351,6 +351,12 @@ static void mwifiex_pcie_reset_notify(struct pci_dev *pdev, bool prepare)
 	struct pcie_service_card *card = pci_get_drvdata(pdev);
 	struct mwifiex_adapter *adapter = card->adapter;
 
+	if (!card->pcie.flr_support) {
+		pr_err("%s: FLR disabled in current chipset\n", __func__);
+		return;
+	}
+
+	adapter = card->adapter;
 	if (!adapter) {
 		dev_err(&pdev->dev, "%s: adapter structure is not valid\n",
 			__func__);
@@ -3047,7 +3053,7 @@ static void mwifiex_pcie_up_dev(struct mwifiex_adapter *adapter)
 	 * 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);
+	strcpy(adapter->fw_name, card->pcie.wifi_fw_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 00e8ee5..d6c8526 100644
--- a/drivers/net/wireless/marvell/mwifiex/pcie.h
+++ b/drivers/net/wireless/marvell/mwifiex/pcie.h
@@ -285,6 +285,8 @@ struct mwifiex_pcie_device {
 	struct memory_type_mapping *mem_type_mapping_tbl;
 	u8 num_mem_types;
 	bool can_ext_scan;
+	u8 flr_support;
+	char *wifi_fw_name;
 };
 
 static const struct mwifiex_pcie_device mwifiex_pcie8766 = {
@@ -293,6 +295,7 @@ struct mwifiex_pcie_device {
 	.tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_2K,
 	.can_dump_fw = false,
 	.can_ext_scan = true,
+	.flr_support = 0,
 };
 
 static const struct mwifiex_pcie_device mwifiex_pcie8897 = {
@@ -303,6 +306,7 @@ struct mwifiex_pcie_device {
 	.mem_type_mapping_tbl = mem_type_mapping_tbl_w8897,
 	.num_mem_types = ARRAY_SIZE(mem_type_mapping_tbl_w8897),
 	.can_ext_scan = true,
+	.flr_support = 0,
 };
 
 static const struct mwifiex_pcie_device mwifiex_pcie8997 = {
@@ -313,6 +317,8 @@ struct mwifiex_pcie_device {
 	.mem_type_mapping_tbl = mem_type_mapping_tbl_w8997,
 	.num_mem_types = ARRAY_SIZE(mem_type_mapping_tbl_w8997),
 	.can_ext_scan = true,
+	.flr_support = 1,
+	.wifi_fw_name = "mrvl/pcie8997_wlan_v4.bin",
 };
 
 struct mwifiex_evt_buf_desc {
-- 
1.8.1.4

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

* Re: [PATCH 1/3] mwifiex: remove unnecessary wakeup interrupt number sanity check
  2017-03-30  9:19 [PATCH 1/3] mwifiex: remove unnecessary wakeup interrupt number sanity check Xinming Hu
  2017-03-30  9:19 ` [PATCH 2/3] mwifiex: using general print function during device intialization Xinming Hu
  2017-03-30  9:19 ` [PATCH 3/3] mwifiex: pcie: avoid hardcode wifi-only firmware name Xinming Hu
@ 2017-03-31 22:37 ` Dmitry Torokhov
  2017-04-03 18:33   ` Brian Norris
  2017-04-05  5:16   ` [EXT] " Xinming Hu
  2 siblings, 2 replies; 16+ messages in thread
From: Dmitry Torokhov @ 2017-03-31 22:37 UTC (permalink / raw)
  To: Xinming Hu
  Cc: Linux Wireless, Kalle Valo, Brian Norris, Rajat Jain,
	Amitkumar Karwar, Cathy Luo, Xinming Hu

On Thu, Mar 30, 2017 at 2:19 AM, Xinming Hu <huxinming820@gmail.com> wrote:
> From: Xinming Hu <huxm@marvell.com>
>
> Sanity check of interrupt number in interrupt handler is unnecessary and
> confusion, remove it.

I'd reworded the explanation a bit: "If wakeup interrupt handler is
called, we know that the wakeup interrupt number is valid, there is no
need to check it."

Otherwise:

Reviewed-by: Dmitry Torokhov <dtor@chromium.org>

>
> Signed-off-by: Xinming Hu <huxm@marvell.com>
> Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
> ---
>  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 30f4994..5e82602 100644
> --- a/drivers/net/wireless/marvell/mwifiex/main.c
> +++ b/drivers/net/wireless/marvell/mwifiex/main.c
> @@ -1503,11 +1503,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	[flat|nested] 16+ messages in thread

* Re: [PATCH 2/3] mwifiex: using general print function during device intialization
  2017-03-30  9:19 ` [PATCH 2/3] mwifiex: using general print function during device intialization Xinming Hu
@ 2017-03-31 22:46   ` Dmitry Torokhov
  2017-04-03 18:42     ` Brian Norris
  0 siblings, 1 reply; 16+ messages in thread
From: Dmitry Torokhov @ 2017-03-31 22:46 UTC (permalink / raw)
  To: Xinming Hu
  Cc: Linux Wireless, Kalle Valo, Brian Norris, Rajat Jain,
	Amitkumar Karwar, Cathy Luo, Xinming Hu

On Thu, Mar 30, 2017 at 2:19 AM, Xinming Hu <huxinming820@gmail.com> wrote:
> From: Xinming Hu <huxm@marvell.com>
>
> adapter->dev is initialized after mwifiex_register done, before that
> print message by general pr_* function

No, we should move away from naked pr_*() as much as possible. Please
change  mwifiex_register() to accept "dev" parameter and assign
adapter->dev early enough so that the standard mwifiex_err() calls are
usable.

Also consider changing _mwifiex_dbg() to handle cases when
adapter->dev is NULL and fall back to pr_<level>.

>
> Signed-off-by: Xinming Hu <huxm@marvell.com>
> Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
> ---
>  drivers/net/wireless/marvell/mwifiex/pcie.c | 78 ++++++++++++-----------------
>  drivers/net/wireless/marvell/mwifiex/sdio.c |  3 +-
>  2 files changed, 34 insertions(+), 47 deletions(-)
>
> diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
> index e381def..59cb01a 100644
> --- a/drivers/net/wireless/marvell/mwifiex/pcie.c
> +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
> @@ -60,7 +60,7 @@ static int mwifiex_pcie_probe_of(struct device *dev)
>
>         mapping.addr = pci_map_single(card->dev, skb->data, size, flags);
>         if (pci_dma_mapping_error(card->dev, mapping.addr)) {
> -               mwifiex_dbg(adapter, ERROR, "failed to map pci memory!\n");
> +               pr_err("failed to map pci memory!\n");
>                 return -1;
>         }
>         mapping.len = size;
> @@ -594,7 +594,7 @@ static int mwifiex_init_rxq_ring(struct mwifiex_adapter *adapter)
>                 skb = mwifiex_alloc_dma_align_buf(MWIFIEX_RX_DATA_BUF_SIZE,
>                                                   GFP_KERNEL);
>                 if (!skb) {
> -                       mwifiex_dbg(adapter, ERROR,
> +                       pr_err(
>                                     "Unable to allocate skb for RX ring.\n");
>                         kfree(card->rxbd_ring_vbase);
>                         return -ENOMEM;
> @@ -651,8 +651,7 @@ static int mwifiex_pcie_init_evt_ring(struct mwifiex_adapter *adapter)
>                 /* Allocate skb here so that firmware can DMA data from it */
>                 skb = dev_alloc_skb(MAX_EVENT_SIZE);
>                 if (!skb) {
> -                       mwifiex_dbg(adapter, ERROR,
> -                                   "Unable to allocate skb for EVENT buf.\n");
> +                       pr_err("Unable to allocate skb for EVENT buf.\n");
>                         kfree(card->evtbd_ring_vbase);
>                         return -ENOMEM;
>                 }
> @@ -818,16 +817,14 @@ static int mwifiex_pcie_create_txbd_ring(struct mwifiex_adapter *adapter)
>                                                      card->txbd_ring_size,
>                                                      &card->txbd_ring_pbase);
>         if (!card->txbd_ring_vbase) {
> -               mwifiex_dbg(adapter, ERROR,
> -                           "allocate consistent memory (%d bytes) failed!\n",
> -                           card->txbd_ring_size);
> +               pr_err("allocate consistent memory (%d bytes) failed!\n",
> +                      card->txbd_ring_size);
>                 return -ENOMEM;
>         }
> -       mwifiex_dbg(adapter, DATA,
> -                   "info: txbd_ring - base: %p, pbase: %#x:%x, len: %x\n",
> -                   card->txbd_ring_vbase, (unsigned int)card->txbd_ring_pbase,
> -                   (u32)((u64)card->txbd_ring_pbase >> 32),
> -                   card->txbd_ring_size);
> +       pr_notice("info: txbd_ring - base: %p, pbase: %#x:%x, len: %x\n",
> +                 card->txbd_ring_vbase, (unsigned int)card->txbd_ring_pbase,
> +                 (u32)((u64)card->txbd_ring_pbase >> 32),
> +                 card->txbd_ring_size);
>
>         return mwifiex_init_txq_ring(adapter);
>  }
> @@ -875,24 +872,21 @@ static int mwifiex_pcie_create_rxbd_ring(struct mwifiex_adapter *adapter)
>                 card->rxbd_ring_size = sizeof(struct mwifiex_pcie_buf_desc) *
>                                        MWIFIEX_MAX_TXRX_BD;
>
> -       mwifiex_dbg(adapter, INFO,
> -                   "info: rxbd_ring: Allocating %d bytes\n",
> -                   card->rxbd_ring_size);
> +       pr_info("info: rxbd_ring: Allocating %d bytes\n",
> +               card->rxbd_ring_size);
>         card->rxbd_ring_vbase = pci_alloc_consistent(card->dev,
>                                                      card->rxbd_ring_size,
>                                                      &card->rxbd_ring_pbase);
>         if (!card->rxbd_ring_vbase) {
> -               mwifiex_dbg(adapter, ERROR,
> -                           "allocate consistent memory (%d bytes) failed!\n",
> -                           card->rxbd_ring_size);
> +               pr_err("allocate consistent memory (%d bytes) failed!\n",
> +                      card->rxbd_ring_size);
>                 return -ENOMEM;
>         }
>
> -       mwifiex_dbg(adapter, DATA,
> -                   "info: rxbd_ring - base: %p, pbase: %#x:%x, len: %#x\n",
> -                   card->rxbd_ring_vbase, (u32)card->rxbd_ring_pbase,
> -                   (u32)((u64)card->rxbd_ring_pbase >> 32),
> -                   card->rxbd_ring_size);
> +       pr_notice("info: rxbd_ring - base: %p, pbase: %#x:%x, len: %#x\n",
> +                 card->rxbd_ring_vbase, (u32)card->rxbd_ring_pbase,
> +                 (u32)((u64)card->rxbd_ring_pbase >> 32),
> +                 card->rxbd_ring_size);
>
>         return mwifiex_init_rxq_ring(adapter);
>  }
> @@ -939,24 +933,21 @@ static int mwifiex_pcie_create_evtbd_ring(struct mwifiex_adapter *adapter)
>         card->evtbd_ring_size = sizeof(struct mwifiex_evt_buf_desc) *
>                                 MWIFIEX_MAX_EVT_BD;
>
> -       mwifiex_dbg(adapter, INFO,
> -                   "info: evtbd_ring: Allocating %d bytes\n",
> +       pr_info("info: evtbd_ring: Allocating %d bytes\n",
>                 card->evtbd_ring_size);
>         card->evtbd_ring_vbase = pci_alloc_consistent(card->dev,
>                                                       card->evtbd_ring_size,
>                                                       &card->evtbd_ring_pbase);
>         if (!card->evtbd_ring_vbase) {
> -               mwifiex_dbg(adapter, ERROR,
> -                           "allocate consistent memory (%d bytes) failed!\n",
> -                           card->evtbd_ring_size);
> +               pr_err("allocate consistent memory (%d bytes) failed!\n",
> +                      card->evtbd_ring_size);
>                 return -ENOMEM;
>         }
>
> -       mwifiex_dbg(adapter, EVENT,
> -                   "info: CMDRSP/EVT bd_ring - base: %p pbase: %#x:%x len: %#x\n",
> -                   card->evtbd_ring_vbase, (u32)card->evtbd_ring_pbase,
> -                   (u32)((u64)card->evtbd_ring_pbase >> 32),
> -                   card->evtbd_ring_size);
> +       pr_notice("info: CMDRSP/EVT bd_ring - base: %p pbase: %#x:%x len: %#x\n",
> +                 card->evtbd_ring_vbase, (u32)card->evtbd_ring_pbase,
> +                 (u32)((u64)card->evtbd_ring_pbase >> 32),
> +                 card->evtbd_ring_size);
>
>         return mwifiex_pcie_init_evt_ring(adapter);
>  }
> @@ -995,8 +986,7 @@ static int mwifiex_pcie_alloc_cmdrsp_buf(struct mwifiex_adapter *adapter)
>         /* Allocate memory for receiving command response data */
>         skb = dev_alloc_skb(MWIFIEX_UPLD_SIZE);
>         if (!skb) {
> -               mwifiex_dbg(adapter, ERROR,
> -                           "Unable to allocate skb for command response data.\n");
> +               pr_err("Unable to allocate skb for command response data.\n");
>                 return -ENOMEM;
>         }
>         skb_put(skb, MWIFIEX_UPLD_SIZE);
> @@ -1045,17 +1035,15 @@ static int mwifiex_pcie_alloc_sleep_cookie_buf(struct mwifiex_adapter *adapter)
>         card->sleep_cookie_vbase = pci_alloc_consistent(card->dev, sizeof(u32),
>                                                      &card->sleep_cookie_pbase);
>         if (!card->sleep_cookie_vbase) {
> -               mwifiex_dbg(adapter, ERROR,
> -                           "pci_alloc_consistent failed!\n");
> +               pr_err("pci_alloc_consistent failed!\n");
>                 return -ENOMEM;
>         }
>         /* Init val of Sleep Cookie */
>         tmp = FW_AWAKE_COOKIE;
>         put_unaligned(tmp, card->sleep_cookie_vbase);
>
> -       mwifiex_dbg(adapter, INFO,
> -                   "alloc_scook: sleep cookie=0x%x\n",
> -                   get_unaligned(card->sleep_cookie_vbase));
> +       pr_info("alloc_scook: sleep cookie=0x%x\n",
> +               get_unaligned(card->sleep_cookie_vbase));
>
>         return 0;
>  }
> @@ -3069,32 +3057,32 @@ static void mwifiex_pcie_up_dev(struct mwifiex_adapter *adapter)
>         card->cmdrsp_buf = NULL;
>         ret = mwifiex_pcie_create_txbd_ring(adapter);
>         if (ret) {
> -               mwifiex_dbg(adapter, ERROR, "Failed to create txbd ring\n");
> +               pr_err("Failed to create txbd ring\n");
>                 goto err_cre_txbd;
>         }
>
>         ret = mwifiex_pcie_create_rxbd_ring(adapter);
>         if (ret) {
> -               mwifiex_dbg(adapter, ERROR, "Failed to create rxbd ring\n");
> +               pr_err("Failed to create rxbd ring\n");
>                 goto err_cre_rxbd;
>         }
>
>         ret = mwifiex_pcie_create_evtbd_ring(adapter);
>         if (ret) {
> -               mwifiex_dbg(adapter, ERROR, "Failed to create evtbd ring\n");
> +               pr_err("Failed to create evtbd ring\n");
>                 goto err_cre_evtbd;
>         }
>
>         ret = mwifiex_pcie_alloc_cmdrsp_buf(adapter);
>         if (ret) {
> -               mwifiex_dbg(adapter, ERROR, "Failed to allocate cmdbuf buffer\n");
> +               pr_err("Failed to allocate cmdbuf buffer\n");
>                 goto err_alloc_cmdbuf;
>         }
>
>         if (reg->sleep_cookie) {
>                 ret = mwifiex_pcie_alloc_sleep_cookie_buf(adapter);
>                 if (ret) {
> -                       mwifiex_dbg(adapter, ERROR, "Failed to allocate sleep_cookie buffer\n");
> +                       pr_err("Failed to allocate sleep_cookie buffer\n");
>                         goto err_alloc_cookie;
>                 }
>         } else {
> diff --git a/drivers/net/wireless/marvell/mwifiex/sdio.c b/drivers/net/wireless/marvell/mwifiex/sdio.c
> index 58d3da0..596282e 100644
> --- a/drivers/net/wireless/marvell/mwifiex/sdio.c
> +++ b/drivers/net/wireless/marvell/mwifiex/sdio.c
> @@ -631,8 +631,7 @@ static int mwifiex_init_sdio_ioport(struct mwifiex_adapter *adapter)
>         else
>                 return -1;
>  cont:
> -       mwifiex_dbg(adapter, INFO,
> -                   "info: SDIO FUNC1 IO port: %#x\n", adapter->ioport);
> +       pr_info("info: SDIO FUNC1 IO port: %#x\n", adapter->ioport);
>
>         /* Set Host interrupt reset to read to clear */
>         if (!mwifiex_read_reg(adapter, card->reg->host_int_rsr_reg, &reg))
> --
> 1.8.1.4
>

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

* Re: [PATCH 3/3] mwifiex: pcie: avoid hardcode wifi-only firmware name
  2017-03-30  9:19 ` [PATCH 3/3] mwifiex: pcie: avoid hardcode wifi-only firmware name Xinming Hu
@ 2017-03-31 22:50   ` Dmitry Torokhov
  2017-04-03 18:48     ` Brian Norris
  2017-04-06  8:05     ` Xinming Hu
  2017-04-05 10:47   ` [3/3] " Kalle Valo
       [not found]   ` <20170405104711.1092260DC7@smtp.codeaurora.org>
  2 siblings, 2 replies; 16+ messages in thread
From: Dmitry Torokhov @ 2017-03-31 22:50 UTC (permalink / raw)
  To: Xinming Hu
  Cc: Linux Wireless, Kalle Valo, Brian Norris, Rajat Jain,
	Amitkumar Karwar, Cathy Luo, Xinming Hu

On Thu, Mar 30, 2017 at 2:19 AM, Xinming Hu <huxinming820@gmail.com> wrote:
> From: Xinming Hu <huxm@marvell.com>
>
> Wifi-only firmware name should be chipset specific.
>
> Signed-off-by: Xinming Hu <huxm@marvell.com>
> Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
> ---
>  drivers/net/wireless/marvell/mwifiex/pcie.c | 8 +++++++-
>  drivers/net/wireless/marvell/mwifiex/pcie.h | 6 ++++++
>  2 files changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
> index 59cb01a..282aa9a 100644
> --- a/drivers/net/wireless/marvell/mwifiex/pcie.c
> +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
> @@ -351,6 +351,12 @@ static void mwifiex_pcie_reset_notify(struct pci_dev *pdev, bool prepare)
>         struct pcie_service_card *card = pci_get_drvdata(pdev);
>         struct mwifiex_adapter *adapter = card->adapter;
>
> +       if (!card->pcie.flr_support) {
> +               pr_err("%s: FLR disabled in current chipset\n", __func__);
> +               return;
> +       }
> +
> +       adapter = card->adapter;
>         if (!adapter) {
>                 dev_err(&pdev->dev, "%s: adapter structure is not valid\n",
>                         __func__);
> @@ -3047,7 +3053,7 @@ static void mwifiex_pcie_up_dev(struct mwifiex_adapter *adapter)
>          * 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);
> +       strcpy(adapter->fw_name, card->pcie.wifi_fw_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 00e8ee5..d6c8526 100644
> --- a/drivers/net/wireless/marvell/mwifiex/pcie.h
> +++ b/drivers/net/wireless/marvell/mwifiex/pcie.h
> @@ -285,6 +285,8 @@ struct mwifiex_pcie_device {
>         struct memory_type_mapping *mem_type_mapping_tbl;
>         u8 num_mem_types;
>         bool can_ext_scan;
> +       u8 flr_support;

This sounds like a boolean, but given that you can key off
wifi_fw_name being NULL I am not sure it is needed.

> +       char *wifi_fw_name;

const char *.

That said, I consider the whole wifi-only firmware business is quite
fragile. Can we have unified firmware and have driver figure out what
part shoudl be [re]loaded?

>  };
>
>  static const struct mwifiex_pcie_device mwifiex_pcie8766 = {
> @@ -293,6 +295,7 @@ struct mwifiex_pcie_device {
>         .tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_2K,
>         .can_dump_fw = false,
>         .can_ext_scan = true,
> +       .flr_support = 0,
>  };
>
>  static const struct mwifiex_pcie_device mwifiex_pcie8897 = {
> @@ -303,6 +306,7 @@ struct mwifiex_pcie_device {
>         .mem_type_mapping_tbl = mem_type_mapping_tbl_w8897,
>         .num_mem_types = ARRAY_SIZE(mem_type_mapping_tbl_w8897),
>         .can_ext_scan = true,
> +       .flr_support = 0,
>  };
>
>  static const struct mwifiex_pcie_device mwifiex_pcie8997 = {
> @@ -313,6 +317,8 @@ struct mwifiex_pcie_device {
>         .mem_type_mapping_tbl = mem_type_mapping_tbl_w8997,
>         .num_mem_types = ARRAY_SIZE(mem_type_mapping_tbl_w8997),
>         .can_ext_scan = true,
> +       .flr_support = 1,
> +       .wifi_fw_name = "mrvl/pcie8997_wlan_v4.bin",
>  };
>
>  struct mwifiex_evt_buf_desc {
> --
> 1.8.1.4
>

Thanks.

-- 
Dmitry

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

* Re: [PATCH 1/3] mwifiex: remove unnecessary wakeup interrupt number sanity check
  2017-03-31 22:37 ` [PATCH 1/3] mwifiex: remove unnecessary wakeup interrupt number sanity check Dmitry Torokhov
@ 2017-04-03 18:33   ` Brian Norris
  2017-04-05  5:23     ` Xinming Hu
  2017-04-05  5:16   ` [EXT] " Xinming Hu
  1 sibling, 1 reply; 16+ messages in thread
From: Brian Norris @ 2017-04-03 18:33 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Xinming Hu, Linux Wireless, Kalle Valo, Rajat Jain,
	Amitkumar Karwar, Cathy Luo, Xinming Hu

On Fri, Mar 31, 2017 at 03:37:01PM -0700, Dmitry Torokhov wrote:
> On Thu, Mar 30, 2017 at 2:19 AM, Xinming Hu <huxinming820@gmail.com> wrote:
> > From: Xinming Hu <huxm@marvell.com>
> >
> > Sanity check of interrupt number in interrupt handler is unnecessary and
> > confusion, remove it.
> 
> I'd reworded the explanation a bit: "If wakeup interrupt handler is
> called, we know that the wakeup interrupt number is valid, there is no
> need to check it."

Either way works for me (modulo grammar), though Dmitry's is more
informative. So +1.

> Otherwise:
> 
> Reviewed-by: Dmitry Torokhov <dtor@chromium.org>

Ooh, me too!

Reviewed-by: Brian Norris <briannorris@chromium.org>

I believe this same pattern occurs in btmrvl_sdio. Possibly others.

> > Signed-off-by: Xinming Hu <huxm@marvell.com>
> > Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
> > ---
> >  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 30f4994..5e82602 100644
> > --- a/drivers/net/wireless/marvell/mwifiex/main.c
> > +++ b/drivers/net/wireless/marvell/mwifiex/main.c
> > @@ -1503,11 +1503,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	[flat|nested] 16+ messages in thread

* Re: [PATCH 2/3] mwifiex: using general print function during device intialization
  2017-03-31 22:46   ` Dmitry Torokhov
@ 2017-04-03 18:42     ` Brian Norris
  2017-04-05  6:41       ` Xinming Hu
  0 siblings, 1 reply; 16+ messages in thread
From: Brian Norris @ 2017-04-03 18:42 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Xinming Hu, Linux Wireless, Kalle Valo, Rajat Jain,
	Amitkumar Karwar, Cathy Luo, Xinming Hu

On Fri, Mar 31, 2017 at 03:46:58PM -0700, Dmitry Torokhov wrote:
> On Thu, Mar 30, 2017 at 2:19 AM, Xinming Hu <huxinming820@gmail.com> wrote:
> > From: Xinming Hu <huxm@marvell.com>
> >
> > adapter->dev is initialized after mwifiex_register done, before that
> > print message by general pr_* function
> 
> No, we should move away from naked pr_*() as much as possible. Please
> change  mwifiex_register() to accept "dev" parameter and assign
> adapter->dev early enough so that the standard mwifiex_err() calls are
> usable.

Agreed. You mean like I did here? :)

ba1c7e45ec22 mwifiex: set adapter->dev before starting to use mwifiex_dbg()

That's in v4.11-rc4, partly as a bugfix to this:

2e02b5814217 ("mwifiex: Allow mwifiex early access to device structure")

> Also consider changing _mwifiex_dbg() to handle cases when
> adapter->dev is NULL and fall back to pr_<level>.

That'd be nice. It would have mitigated the problems of commit
2e02b5814217 too.

Brian

> > Signed-off-by: Xinming Hu <huxm@marvell.com>
> > Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
> > ---
> >  drivers/net/wireless/marvell/mwifiex/pcie.c | 78 ++++++++++++-----------------
> >  drivers/net/wireless/marvell/mwifiex/sdio.c |  3 +-
> >  2 files changed, 34 insertions(+), 47 deletions(-)

[...]

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

* Re: [PATCH 3/3] mwifiex: pcie: avoid hardcode wifi-only firmware name
  2017-03-31 22:50   ` Dmitry Torokhov
@ 2017-04-03 18:48     ` Brian Norris
  2017-04-06  8:08       ` [EXT] " Xinming Hu
  2017-04-06  8:05     ` Xinming Hu
  1 sibling, 1 reply; 16+ messages in thread
From: Brian Norris @ 2017-04-03 18:48 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Xinming Hu, Linux Wireless, Kalle Valo, Rajat Jain,
	Amitkumar Karwar, Cathy Luo, Xinming Hu

On Fri, Mar 31, 2017 at 03:50:27PM -0700, Dmitry Torokhov wrote:
> That said, I consider the whole wifi-only firmware business is quite
> fragile. Can we have unified firmware and have driver figure out what
> part shoudl be [re]loaded?

+1. I think we should really give a stab at this first, and *then* see
how we want to patch up the flagging of support on a per-chipset basis.
As-is, you're wasting filesystem space on a duplicate firmware blob,
that we have to make sure gets updated in sync with the combined
firmware every time there's an update.

Proof of the duplicate blob -- the latter portion of the combined FW is
identical to the WLAN-only:

  $ cmp mrvl/pcie{usb8997_combo,8997_wlan}_v4.bin $((0x2919c)); echo $?
  0

Brian

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

* RE: [EXT] Re: [PATCH 1/3] mwifiex: remove unnecessary wakeup interrupt number sanity check
  2017-03-31 22:37 ` [PATCH 1/3] mwifiex: remove unnecessary wakeup interrupt number sanity check Dmitry Torokhov
  2017-04-03 18:33   ` Brian Norris
@ 2017-04-05  5:16   ` Xinming Hu
  1 sibling, 0 replies; 16+ messages in thread
From: Xinming Hu @ 2017-04-05  5:16 UTC (permalink / raw)
  To: Dmitry Torokhov, Xinming Hu
  Cc: Linux Wireless, Kalle Valo, Brian Norris, Rajat Jain,
	Amitkumar Karwar, Cathy Luo

SGkgRG1pdHJ5LA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IERtaXRy
eSBUb3Jva2hvdiBbbWFpbHRvOmR0b3JAY2hyb21pdW0ub3JnXQ0KPiBTZW50OiAyMDE35bm0NOac
iDHml6UgNjozNw0KPiBUbzogWGlubWluZyBIdQ0KPiBDYzogTGludXggV2lyZWxlc3M7IEthbGxl
IFZhbG87IEJyaWFuIE5vcnJpczsgUmFqYXQgSmFpbjsgQW1pdGt1bWFyIEthcndhcjsNCj4gQ2F0
aHkgTHVvOyBYaW5taW5nIEh1DQo+IFN1YmplY3Q6IFtFWFRdIFJlOiBbUEFUQ0ggMS8zXSBtd2lm
aWV4OiByZW1vdmUgdW5uZWNlc3Nhcnkgd2FrZXVwIGludGVycnVwdA0KPiBudW1iZXIgc2FuaXR5
IGNoZWNrDQo+IA0KPiBFeHRlcm5hbCBFbWFpbA0KPiANCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiBPbiBU
aHUsIE1hciAzMCwgMjAxNyBhdCAyOjE5IEFNLCBYaW5taW5nIEh1IDxodXhpbm1pbmc4MjBAZ21h
aWwuY29tPg0KPiB3cm90ZToNCj4gPiBGcm9tOiBYaW5taW5nIEh1IDxodXhtQG1hcnZlbGwuY29t
Pg0KPiA+DQo+ID4gU2FuaXR5IGNoZWNrIG9mIGludGVycnVwdCBudW1iZXIgaW4gaW50ZXJydXB0
IGhhbmRsZXIgaXMgdW5uZWNlc3NhcnkNCj4gPiBhbmQgY29uZnVzaW9uLCByZW1vdmUgaXQuDQo+
IA0KPiBJJ2QgcmV3b3JkZWQgdGhlIGV4cGxhbmF0aW9uIGEgYml0OiAiSWYgd2FrZXVwIGludGVy
cnVwdCBoYW5kbGVyIGlzIGNhbGxlZCwgd2UNCj4ga25vdyB0aGF0IHRoZSB3YWtldXAgaW50ZXJy
dXB0IG51bWJlciBpcyB2YWxpZCwgdGhlcmUgaXMgbm8gbmVlZCB0byBjaGVjayBpdC4iDQo+IA0K
PiBPdGhlcndpc2U6DQo+IA0KPiBSZXZpZXdlZC1ieTogRG1pdHJ5IFRvcm9raG92IDxkdG9yQGNo
cm9taXVtLm9yZz4NCj4gDQoNClRoYW5rcyBmb3IgdGhlIHJldmlldy4gV2lsbCByZXdvcmQgaW4g
VjIuDQoNClRoYW5rcw0KU2ltb24NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFhpbm1pbmcgSHUg
PGh1eG1AbWFydmVsbC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogQW1pdGt1bWFyIEthcndhciA8
YWthcndhckBtYXJ2ZWxsLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9uZXQvd2lyZWxlc3Mv
bWFydmVsbC9td2lmaWV4L21haW4uYyB8IDggKysrLS0tLS0NCj4gPiAgMSBmaWxlIGNoYW5nZWQs
IDMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9k
cml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5jDQo+ID4gYi9kcml2ZXJz
L25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5jDQo+ID4gaW5kZXggMzBmNDk5NC4u
NWU4MjYwMiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213
aWZpZXgvbWFpbi5jDQo+ID4gKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lm
aWV4L21haW4uYw0KPiA+IEBAIC0xNTAzLDExICsxNTAzLDkgQEAgc3RhdGljIGlycXJldHVybl90
DQo+ID4gbXdpZmlleF9pcnFfd2FrZXVwX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqcHJpdikgIHsN
Cj4gPiAgICAgICAgIHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXIgPSBwcml2Ow0KPiA+
DQo+ID4gLSAgICAgICBpZiAoYWRhcHRlci0+aXJxX3dha2V1cCA+PSAwKSB7DQo+ID4gLSAgICAg
ICAgICAgICAgIGRldl9kYmcoYWRhcHRlci0+ZGV2LCAiJXM6IHdha2UgYnkgd2lmaSIsIF9fZnVu
Y19fKTsNCj4gPiAtICAgICAgICAgICAgICAgYWRhcHRlci0+d2FrZV9ieV93aWZpID0gdHJ1ZTsN
Cj4gPiAtICAgICAgICAgICAgICAgZGlzYWJsZV9pcnFfbm9zeW5jKGlycSk7DQo+ID4gLSAgICAg
ICB9DQo+ID4gKyAgICAgICBkZXZfZGJnKGFkYXB0ZXItPmRldiwgIiVzOiB3YWtlIGJ5IHdpZmki
LCBfX2Z1bmNfXyk7DQo+ID4gKyAgICAgICBhZGFwdGVyLT53YWtlX2J5X3dpZmkgPSB0cnVlOw0K
PiA+ICsgICAgICAgZGlzYWJsZV9pcnFfbm9zeW5jKGlycSk7DQo+ID4NCj4gPiAgICAgICAgIC8q
IE5vdGlmeSBQTSBjb3JlIHdlIGFyZSB3YWtldXAgc291cmNlICovDQo+ID4gICAgICAgICBwbV93
YWtldXBfZXZlbnQoYWRhcHRlci0+ZGV2LCAwKTsNCj4gPiAtLQ0KPiA+IDEuOC4xLjQNCj4gPg0K

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

* RE:  Re: [PATCH 1/3] mwifiex: remove unnecessary wakeup interrupt number sanity check
  2017-04-03 18:33   ` Brian Norris
@ 2017-04-05  5:23     ` Xinming Hu
  0 siblings, 0 replies; 16+ messages in thread
From: Xinming Hu @ 2017-04-05  5:23 UTC (permalink / raw)
  To: Brian Norris, Dmitry Torokhov
  Cc: Xinming Hu, Linux Wireless, Kalle Valo, Rajat Jain,
	Amitkumar Karwar, Cathy Luo

SGkgQnJhaW4sDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQnJpYW4g
Tm9ycmlzIFttYWlsdG86YnJpYW5ub3JyaXNAY2hyb21pdW0ub3JnXQ0KPiBTZW50OiAyMDE3xOo0
1MI0yNUgMjozNA0KPiBUbzogRG1pdHJ5IFRvcm9raG92DQo+IENjOiBYaW5taW5nIEh1OyBMaW51
eCBXaXJlbGVzczsgS2FsbGUgVmFsbzsgUmFqYXQgSmFpbjsgQW1pdGt1bWFyIEthcndhcjsgQ2F0
aHkNCj4gTHVvOyBYaW5taW5nIEh1DQo+IFN1YmplY3Q6IFtFWFRdIFJlOiBbUEFUQ0ggMS8zXSBt
d2lmaWV4OiByZW1vdmUgdW5uZWNlc3Nhcnkgd2FrZXVwIGludGVycnVwdA0KPiBudW1iZXIgc2Fu
aXR5IGNoZWNrDQo+IA0KPiBFeHRlcm5hbCBFbWFpbA0KPiANCj4gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiBP
biBGcmksIE1hciAzMSwgMjAxNyBhdCAwMzozNzowMVBNIC0wNzAwLCBEbWl0cnkgVG9yb2tob3Yg
d3JvdGU6DQo+ID4gT24gVGh1LCBNYXIgMzAsIDIwMTcgYXQgMjoxOSBBTSwgWGlubWluZyBIdSA8
aHV4aW5taW5nODIwQGdtYWlsLmNvbT4NCj4gd3JvdGU6DQo+ID4gPiBGcm9tOiBYaW5taW5nIEh1
IDxodXhtQG1hcnZlbGwuY29tPg0KPiA+ID4NCj4gPiA+IFNhbml0eSBjaGVjayBvZiBpbnRlcnJ1
cHQgbnVtYmVyIGluIGludGVycnVwdCBoYW5kbGVyIGlzIHVubmVjZXNzYXJ5DQo+ID4gPiBhbmQg
Y29uZnVzaW9uLCByZW1vdmUgaXQuDQo+ID4NCj4gPiBJJ2QgcmV3b3JkZWQgdGhlIGV4cGxhbmF0
aW9uIGEgYml0OiAiSWYgd2FrZXVwIGludGVycnVwdCBoYW5kbGVyIGlzDQo+ID4gY2FsbGVkLCB3
ZSBrbm93IHRoYXQgdGhlIHdha2V1cCBpbnRlcnJ1cHQgbnVtYmVyIGlzIHZhbGlkLCB0aGVyZSBp
cyBubw0KPiA+IG5lZWQgdG8gY2hlY2sgaXQuIg0KPiANCj4gRWl0aGVyIHdheSB3b3JrcyBmb3Ig
bWUgKG1vZHVsbyBncmFtbWFyKSwgdGhvdWdoIERtaXRyeSdzIGlzIG1vcmUNCj4gaW5mb3JtYXRp
dmUuIFNvICsxLg0KPiANCj4gPiBPdGhlcndpc2U6DQo+ID4NCj4gPiBSZXZpZXdlZC1ieTogRG1p
dHJ5IFRvcm9raG92IDxkdG9yQGNocm9taXVtLm9yZz4NCj4gDQo+IE9vaCwgbWUgdG9vIQ0KPiAN
Cj4gUmV2aWV3ZWQtYnk6IEJyaWFuIE5vcnJpcyA8YnJpYW5ub3JyaXNAY2hyb21pdW0ub3JnPg0K
PiANCj4gSSBiZWxpZXZlIHRoaXMgc2FtZSBwYXR0ZXJuIG9jY3VycyBpbiBidG1ydmxfc2Rpby4g
UG9zc2libHkgb3RoZXJzLg0KPiANCg0KVGhhbmtzIGZvciB0aGUgcmV2aWV3LCB0aGUgc2ltaWxh
ciBjaGFuZ2UgaGF2ZSBiZWVuIGFwcGxpZWQgdG8gQmx1ZXRvb3RoKGNvbW1pdCA3MzNkYjRjY2Vj
KQ0KDQpUaGFua3MNClNJbW9uDQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBYaW5taW5nIEh1IDxodXht
QG1hcnZlbGwuY29tPg0KPiA+ID4gU2lnbmVkLW9mZi1ieTogQW1pdGt1bWFyIEthcndhciA8YWth
cndhckBtYXJ2ZWxsLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gIGRyaXZlcnMvbmV0L3dpcmVsZXNz
L21hcnZlbGwvbXdpZmlleC9tYWluLmMgfCA4ICsrKy0tLS0tDQo+ID4gPiAgMSBmaWxlIGNoYW5n
ZWQsIDMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkNCj4gPiA+DQo+ID4gPiBkaWZmIC0t
Z2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21haW4uYw0KPiA+ID4g
Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvbWFpbi5jDQo+ID4gPiBpbmRl
eCAzMGY0OTk0Li41ZTgyNjAyIDEwMDY0NA0KPiA+ID4gLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxl
c3MvbWFydmVsbC9td2lmaWV4L21haW4uYw0KPiA+ID4gKysrIGIvZHJpdmVycy9uZXQvd2lyZWxl
c3MvbWFydmVsbC9td2lmaWV4L21haW4uYw0KPiA+ID4gQEAgLTE1MDMsMTEgKzE1MDMsOSBAQCBz
dGF0aWMgaXJxcmV0dXJuX3QNCj4gPiA+IG13aWZpZXhfaXJxX3dha2V1cF9oYW5kbGVyKGludCBp
cnEsIHZvaWQgKnByaXYpICB7DQo+ID4gPiAgICAgICAgIHN0cnVjdCBtd2lmaWV4X2FkYXB0ZXIg
KmFkYXB0ZXIgPSBwcml2Ow0KPiA+ID4NCj4gPiA+IC0gICAgICAgaWYgKGFkYXB0ZXItPmlycV93
YWtldXAgPj0gMCkgew0KPiA+ID4gLSAgICAgICAgICAgICAgIGRldl9kYmcoYWRhcHRlci0+ZGV2
LCAiJXM6IHdha2UgYnkgd2lmaSIsIF9fZnVuY19fKTsNCj4gPiA+IC0gICAgICAgICAgICAgICBh
ZGFwdGVyLT53YWtlX2J5X3dpZmkgPSB0cnVlOw0KPiA+ID4gLSAgICAgICAgICAgICAgIGRpc2Fi
bGVfaXJxX25vc3luYyhpcnEpOw0KPiA+ID4gLSAgICAgICB9DQo+ID4gPiArICAgICAgIGRldl9k
YmcoYWRhcHRlci0+ZGV2LCAiJXM6IHdha2UgYnkgd2lmaSIsIF9fZnVuY19fKTsNCj4gPiA+ICsg
ICAgICAgYWRhcHRlci0+d2FrZV9ieV93aWZpID0gdHJ1ZTsNCj4gPiA+ICsgICAgICAgZGlzYWJs
ZV9pcnFfbm9zeW5jKGlycSk7DQo+ID4gPg0KPiA+ID4gICAgICAgICAvKiBOb3RpZnkgUE0gY29y
ZSB3ZSBhcmUgd2FrZXVwIHNvdXJjZSAqLw0KPiA+ID4gICAgICAgICBwbV93YWtldXBfZXZlbnQo
YWRhcHRlci0+ZGV2LCAwKTsNCj4gPiA+IC0tDQo+ID4gPiAxLjguMS40DQo+ID4gPg0K

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

* Re: [PATCH 2/3] mwifiex: using general print function during device intialization
  2017-04-03 18:42     ` Brian Norris
@ 2017-04-05  6:41       ` Xinming Hu
  0 siblings, 0 replies; 16+ messages in thread
From: Xinming Hu @ 2017-04-05  6:41 UTC (permalink / raw)
  To: Brian Norris, Dmitry Torokhov
  Cc: Xinming Hu, Linux Wireless, Kalle Valo, Rajat Jain, Cathy Luo

DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEJyaWFuIE5vcnJpcyBbbWFp
bHRvOmJyaWFubm9ycmlzQGNocm9taXVtLm9yZ10NCj4gU2VudDogMjAxN8TqNNTCNMjVIDI6NDIN
Cj4gVG86IERtaXRyeSBUb3Jva2hvdg0KPiBDYzogWGlubWluZyBIdTsgTGludXggV2lyZWxlc3M7
IEthbGxlIFZhbG87IFJhamF0IEphaW47IEFtaXRrdW1hciBLYXJ3YXI7IENhdGh5DQo+IEx1bzsg
WGlubWluZyBIdQ0KPiBTdWJqZWN0OiBbRVhUXSBSZTogW1BBVENIIDIvM10gbXdpZmlleDogdXNp
bmcgZ2VuZXJhbCBwcmludCBmdW5jdGlvbiBkdXJpbmcNCj4gZGV2aWNlIGludGlhbGl6YXRpb24N
Cj4gDQo+IEV4dGVybmFsIEVtYWlsDQo+IA0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IE9uIEZyaSwgTWFy
IDMxLCAyMDE3IGF0IDAzOjQ2OjU4UE0gLTA3MDAsIERtaXRyeSBUb3Jva2hvdiB3cm90ZToNCj4g
PiBPbiBUaHUsIE1hciAzMCwgMjAxNyBhdCAyOjE5IEFNLCBYaW5taW5nIEh1IDxodXhpbm1pbmc4
MjBAZ21haWwuY29tPg0KPiB3cm90ZToNCj4gPiA+IEZyb206IFhpbm1pbmcgSHUgPGh1eG1AbWFy
dmVsbC5jb20+DQo+ID4gPg0KPiA+ID4gYWRhcHRlci0+ZGV2IGlzIGluaXRpYWxpemVkIGFmdGVy
IG13aWZpZXhfcmVnaXN0ZXIgZG9uZSwgYmVmb3JlIHRoYXQNCj4gPiA+IHByaW50IG1lc3NhZ2Ug
YnkgZ2VuZXJhbCBwcl8qIGZ1bmN0aW9uDQo+ID4NCj4gPiBObywgd2Ugc2hvdWxkIG1vdmUgYXdh
eSBmcm9tIG5ha2VkIHByXyooKSBhcyBtdWNoIGFzIHBvc3NpYmxlLiBQbGVhc2UNCj4gPiBjaGFu
Z2UgIG13aWZpZXhfcmVnaXN0ZXIoKSB0byBhY2NlcHQgImRldiIgcGFyYW1ldGVyIGFuZCBhc3Np
Z24NCj4gPiBhZGFwdGVyLT5kZXYgZWFybHkgZW5vdWdoIHNvIHRoYXQgdGhlIHN0YW5kYXJkIG13
aWZpZXhfZXJyKCkgY2FsbHMgYXJlDQo+ID4gdXNhYmxlLg0KPiANCg0KVGhhbmtzIGZvciB0aGUg
cmV2aWV3Lg0KDQo+IEFncmVlZC4gWW91IG1lYW4gbGlrZSBJIGRpZCBoZXJlPyA6KQ0KPiANCj4g
YmExYzdlNDVlYzIyIG13aWZpZXg6IHNldCBhZGFwdGVyLT5kZXYgYmVmb3JlIHN0YXJ0aW5nIHRv
IHVzZSBtd2lmaWV4X2RiZygpDQo+IA0KPiBUaGF0J3MgaW4gdjQuMTEtcmM0LCBwYXJ0bHkgYXMg
YSBidWdmaXggdG8gdGhpczoNCj4gDQo+IDJlMDJiNTgxNDIxNyAoIm13aWZpZXg6IEFsbG93IG13
aWZpZXggZWFybHkgYWNjZXNzIHRvIGRldmljZSBzdHJ1Y3R1cmUiKQ0KPiANCj4gPiBBbHNvIGNv
bnNpZGVyIGNoYW5naW5nIF9td2lmaWV4X2RiZygpIHRvIGhhbmRsZSBjYXNlcyB3aGVuDQo+ID4g
YWRhcHRlci0+ZGV2IGlzIE5VTEwgYW5kIGZhbGwgYmFjayB0byBwcl88bGV2ZWw+Lg0KPiANCj4g
VGhhdCdkIGJlIG5pY2UuIEl0IHdvdWxkIGhhdmUgbWl0aWdhdGVkIHRoZSBwcm9ibGVtcyBvZiBj
b21taXQNCj4gMmUwMmI1ODE0MjE3IHRvby4NCj4gDQoNClllcywgdGhpcyBjb21taXQgYmExYzdl
NCBzaG91bGQgYmUgYmV0dGVyIGFuZCB3b3JrIGZvciBtb3N0IGNhc2VzLCB3aWxsIGVuaGFuY2Ug
X19td2lmaWV4X2RiZyBmb3IgYWRhcHRlci0+ZGV2IE5VTEwgY2FzZSBpbiBWMi4NCg0KVGhhbmtz
LA0KU2ltb24NCg0KPiBCcmlhbg0KPiANCj4gPiA+IFNpZ25lZC1vZmYtYnk6IFhpbm1pbmcgSHUg
PGh1eG1AbWFydmVsbC5jb20+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBBbWl0a3VtYXIgS2Fyd2Fy
IDxha2Fyd2FyQG1hcnZlbGwuY29tPg0KPiA+ID4gLS0tDQo+ID4gPiAgZHJpdmVycy9uZXQvd2ly
ZWxlc3MvbWFydmVsbC9td2lmaWV4L3BjaWUuYyB8IDc4DQo+ID4gPiArKysrKysrKysrKystLS0t
LS0tLS0tLS0tLS0tLQ0KPiA+ID4gZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4
L3NkaW8uYyB8ICAzICstDQo+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCsp
LCA0NyBkZWxldGlvbnMoLSkNCj4gDQo+IFsuLi5dDQo=

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

* Re: [3/3] mwifiex: pcie: avoid hardcode wifi-only firmware name
  2017-03-30  9:19 ` [PATCH 3/3] mwifiex: pcie: avoid hardcode wifi-only firmware name Xinming Hu
  2017-03-31 22:50   ` Dmitry Torokhov
@ 2017-04-05 10:47   ` Kalle Valo
       [not found]   ` <20170405104711.1092260DC7@smtp.codeaurora.org>
  2 siblings, 0 replies; 16+ messages in thread
From: Kalle Valo @ 2017-04-05 10:47 UTC (permalink / raw)
  To: Xinming Hu
  Cc: Linux Wireless, Kalle Valo, Brian Norris, Dmitry Torokhov,
	rajatja, Amitkumar Karwar, Cathy Luo, Xinming Hu

Xinming Hu <huxinming820@gmail.com> wrote:
> From: Xinming Hu <huxm@marvell.com>
> 
> Wifi-only firmware name should be chipset specific.
> 
> Signed-off-by: Xinming Hu <huxm@marvell.com>
> Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>

The commit log is not telling anything. Why are you changing this? And how does
the functionality change from user space point of view?

-- 
https://patchwork.kernel.org/patch/9653387/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

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

* RE: Re: [PATCH 3/3] mwifiex: pcie: avoid hardcode wifi-only firmware name
  2017-03-31 22:50   ` Dmitry Torokhov
  2017-04-03 18:48     ` Brian Norris
@ 2017-04-06  8:05     ` Xinming Hu
  1 sibling, 0 replies; 16+ messages in thread
From: Xinming Hu @ 2017-04-06  8:05 UTC (permalink / raw)
  To: Dmitry Torokhov, Xinming Hu
  Cc: Linux Wireless, Kalle Valo, Brian Norris, Rajat Jain,
	Amitkumar Karwar, Cathy Luo

SGkgRG1pdHJ5LA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IERtaXRy
eSBUb3Jva2hvdiBbbWFpbHRvOmR0b3JAZ29vZ2xlLmNvbV0NCj4gU2VudDogMjAxN+W5tDTmnIgx
5pelIDY6NTANCj4gVG86IFhpbm1pbmcgSHUNCj4gQ2M6IExpbnV4IFdpcmVsZXNzOyBLYWxsZSBW
YWxvOyBCcmlhbiBOb3JyaXM7IFJhamF0IEphaW47IEFtaXRrdW1hciBLYXJ3YXI7DQo+IENhdGh5
IEx1bzsgWGlubWluZyBIdQ0KPiBTdWJqZWN0OiBbRVhUXSBSZTogW1BBVENIIDMvM10gbXdpZmll
eDogcGNpZTogYXZvaWQgaGFyZGNvZGUgd2lmaS1vbmx5DQo+IGZpcm13YXJlIG5hbWUNCj4gDQo+
IEV4dGVybmFsIEVtYWlsDQo+IA0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IE9uIFRodSwgTWFyIDMwLCAy
MDE3IGF0IDI6MTkgQU0sIFhpbm1pbmcgSHUgPGh1eGlubWluZzgyMEBnbWFpbC5jb20+DQo+IHdy
b3RlOg0KPiA+IEZyb206IFhpbm1pbmcgSHUgPGh1eG1AbWFydmVsbC5jb20+DQo+ID4NCj4gPiBX
aWZpLW9ubHkgZmlybXdhcmUgbmFtZSBzaG91bGQgYmUgY2hpcHNldCBzcGVjaWZpYy4NCj4gPg0K
PiA+IFNpZ25lZC1vZmYtYnk6IFhpbm1pbmcgSHUgPGh1eG1AbWFydmVsbC5jb20+DQo+ID4gU2ln
bmVkLW9mZi1ieTogQW1pdGt1bWFyIEthcndhciA8YWthcndhckBtYXJ2ZWxsLmNvbT4NCj4gPiAt
LS0NCj4gPiAgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3BjaWUuYyB8IDgg
KysrKysrKy0NCj4gPiBkcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvcGNpZS5o
IHwgNiArKysrKysNCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAxIGRl
bGV0aW9uKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFy
dmVsbC9td2lmaWV4L3BjaWUuYw0KPiA+IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9t
d2lmaWV4L3BjaWUuYw0KPiA+IGluZGV4IDU5Y2IwMWEuLjI4MmFhOWEgMTAwNjQ0DQo+ID4gLS0t
IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3BjaWUuYw0KPiA+ICsrKyBi
L2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9wY2llLmMNCj4gPiBAQCAtMzUx
LDYgKzM1MSwxMiBAQCBzdGF0aWMgdm9pZCBtd2lmaWV4X3BjaWVfcmVzZXRfbm90aWZ5KHN0cnVj
dCBwY2lfZGV2DQo+ICpwZGV2LCBib29sIHByZXBhcmUpDQo+ID4gICAgICAgICBzdHJ1Y3QgcGNp
ZV9zZXJ2aWNlX2NhcmQgKmNhcmQgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7DQo+ID4gICAgICAg
ICBzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyID0gY2FyZC0+YWRhcHRlcjsNCj4gPg0K
PiA+ICsgICAgICAgaWYgKCFjYXJkLT5wY2llLmZscl9zdXBwb3J0KSB7DQo+ID4gKyAgICAgICAg
ICAgICAgIHByX2VycigiJXM6IEZMUiBkaXNhYmxlZCBpbiBjdXJyZW50IGNoaXBzZXRcbiIsIF9f
ZnVuY19fKTsNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICsgICAgICAgfQ0KPiA+
ICsNCj4gPiArICAgICAgIGFkYXB0ZXIgPSBjYXJkLT5hZGFwdGVyOw0KPiA+ICAgICAgICAgaWYg
KCFhZGFwdGVyKSB7DQo+ID4gICAgICAgICAgICAgICAgIGRldl9lcnIoJnBkZXYtPmRldiwgIiVz
OiBhZGFwdGVyIHN0cnVjdHVyZSBpcyBub3QNCj4gdmFsaWRcbiIsDQo+ID4gICAgICAgICAgICAg
ICAgICAgICAgICAgX19mdW5jX18pOw0KPiA+IEBAIC0zMDQ3LDcgKzMwNTMsNyBAQCBzdGF0aWMg
dm9pZCBtd2lmaWV4X3BjaWVfdXBfZGV2KHN0cnVjdA0KPiBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0
ZXIpDQo+ID4gICAgICAgICAgKiBkdXJpbmcgcGNpZSBGTFIsIHNvIHRoYXQgYmx1ZXRvb3RoIHBh
cnQgb2YgZmlybXdhcmUgd2hpY2ggaXMNCj4gPiAgICAgICAgICAqIGFscmVhZHkgcnVubmluZyBk
b2Vzbid0IGdldCBhZmZlY3RlZC4NCj4gPiAgICAgICAgICAqLw0KPiA+IC0gICAgICAgc3RyY3B5
KGFkYXB0ZXItPmZ3X25hbWUsIFBDSUU4OTk3X0RFRkFVTFRfV0lGSUZXX05BTUUpOw0KPiA+ICsg
ICAgICAgc3RyY3B5KGFkYXB0ZXItPmZ3X25hbWUsIGNhcmQtPnBjaWUud2lmaV9md19uYW1lKTsN
Cj4gPg0KPiA+ICAgICAgICAgLyogdHhfYnVmX3NpemUgbWlnaHQgYmUgY2hhbmdlZCB0byAzNTg0
IGJ5IGZpcm13YXJlIGR1cmluZw0KPiA+ICAgICAgICAgICogZGF0YSB0cmFuc2Zlciwgd2Ugc2hv
dWxkIHJlc2V0IGl0IHRvIGRlZmF1bHQgc2l6ZS4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u
ZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3BjaWUuaA0KPiA+IGIvZHJpdmVycy9uZXQvd2ly
ZWxlc3MvbWFydmVsbC9td2lmaWV4L3BjaWUuaA0KPiA+IGluZGV4IDAwZThlZTUuLmQ2Yzg1MjYg
MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L3Bj
aWUuaA0KPiA+ICsrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9wY2ll
LmgNCj4gPiBAQCAtMjg1LDYgKzI4NSw4IEBAIHN0cnVjdCBtd2lmaWV4X3BjaWVfZGV2aWNlIHsN
Cj4gPiAgICAgICAgIHN0cnVjdCBtZW1vcnlfdHlwZV9tYXBwaW5nICptZW1fdHlwZV9tYXBwaW5n
X3RibDsNCj4gPiAgICAgICAgIHU4IG51bV9tZW1fdHlwZXM7DQo+ID4gICAgICAgICBib29sIGNh
bl9leHRfc2NhbjsNCj4gPiArICAgICAgIHU4IGZscl9zdXBwb3J0Ow0KPiANCj4gVGhpcyBzb3Vu
ZHMgbGlrZSBhIGJvb2xlYW4sIGJ1dCBnaXZlbiB0aGF0IHlvdSBjYW4ga2V5IG9mZiB3aWZpX2Z3
X25hbWUgYmVpbmcNCj4gTlVMTCBJIGFtIG5vdCBzdXJlIGl0IGlzIG5lZWRlZC4NCj4gDQo+ID4g
KyAgICAgICBjaGFyICp3aWZpX2Z3X25hbWU7DQo+IA0KPiBjb25zdCBjaGFyICouDQo+IA0KPiBU
aGF0IHNhaWQsIEkgY29uc2lkZXIgdGhlIHdob2xlIHdpZmktb25seSBmaXJtd2FyZSBidXNpbmVz
cyBpcyBxdWl0ZSBmcmFnaWxlLiBDYW4NCj4gd2UgaGF2ZSB1bmlmaWVkIGZpcm13YXJlIGFuZCBo
YXZlIGRyaXZlciBmaWd1cmUgb3V0IHdoYXQgcGFydCBzaG91ZGwgYmUNCj4gW3JlXWxvYWRlZD8N
Cj4gDQoNClRoYW5rcyBmb3IgdGhlIHJldmlldywgd2UgaGF2ZSB0cmllZCB0byBleHRyYWN0IHdp
Zmktb25seSBwYXJ0IGZyb20gY29tYm8gZmlybXdhcmUuDQpUaGUgbmV3IHNvbHV0aW9uIHdpbGwg
YmUgc2VuZCBpbiBWMiwgaW4gdGhpcyB3YXksIHdlIGRvIG5vdCBuZWVkIHNlcGFyYXRlIHdpZmlf
ZndfbmFtZSBhbnkgbW9yZS4NCg0KVGhhbmtzDQpTaW1vbg0KDQo+ID4gIH07DQo+ID4NCj4gPiAg
c3RhdGljIGNvbnN0IHN0cnVjdCBtd2lmaWV4X3BjaWVfZGV2aWNlIG13aWZpZXhfcGNpZTg3NjYg
PSB7IEBADQo+ID4gLTI5Myw2ICsyOTUsNyBAQCBzdHJ1Y3QgbXdpZmlleF9wY2llX2RldmljZSB7
DQo+ID4gICAgICAgICAudHhfYnVmX3NpemUgPSBNV0lGSUVYX1RYX0RBVEFfQlVGX1NJWkVfMkss
DQo+ID4gICAgICAgICAuY2FuX2R1bXBfZncgPSBmYWxzZSwNCj4gPiAgICAgICAgIC5jYW5fZXh0
X3NjYW4gPSB0cnVlLA0KPiA+ICsgICAgICAgLmZscl9zdXBwb3J0ID0gMCwNCj4gPiAgfTsNCj4g
Pg0KPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IG13aWZpZXhfcGNpZV9kZXZpY2UgbXdpZmlleF9w
Y2llODg5NyA9IHsgQEANCj4gPiAtMzAzLDYgKzMwNiw3IEBAIHN0cnVjdCBtd2lmaWV4X3BjaWVf
ZGV2aWNlIHsNCj4gPiAgICAgICAgIC5tZW1fdHlwZV9tYXBwaW5nX3RibCA9IG1lbV90eXBlX21h
cHBpbmdfdGJsX3c4ODk3LA0KPiA+ICAgICAgICAgLm51bV9tZW1fdHlwZXMgPSBBUlJBWV9TSVpF
KG1lbV90eXBlX21hcHBpbmdfdGJsX3c4ODk3KSwNCj4gPiAgICAgICAgIC5jYW5fZXh0X3NjYW4g
PSB0cnVlLA0KPiA+ICsgICAgICAgLmZscl9zdXBwb3J0ID0gMCwNCj4gPiAgfTsNCj4gPg0KPiA+
ICBzdGF0aWMgY29uc3Qgc3RydWN0IG13aWZpZXhfcGNpZV9kZXZpY2UgbXdpZmlleF9wY2llODk5
NyA9IHsgQEANCj4gPiAtMzEzLDYgKzMxNyw4IEBAIHN0cnVjdCBtd2lmaWV4X3BjaWVfZGV2aWNl
IHsNCj4gPiAgICAgICAgIC5tZW1fdHlwZV9tYXBwaW5nX3RibCA9IG1lbV90eXBlX21hcHBpbmdf
dGJsX3c4OTk3LA0KPiA+ICAgICAgICAgLm51bV9tZW1fdHlwZXMgPSBBUlJBWV9TSVpFKG1lbV90
eXBlX21hcHBpbmdfdGJsX3c4OTk3KSwNCj4gPiAgICAgICAgIC5jYW5fZXh0X3NjYW4gPSB0cnVl
LA0KPiA+ICsgICAgICAgLmZscl9zdXBwb3J0ID0gMSwNCj4gPiArICAgICAgIC53aWZpX2Z3X25h
bWUgPSAibXJ2bC9wY2llODk5N193bGFuX3Y0LmJpbiIsDQo+ID4gIH07DQo+ID4NCj4gPiAgc3Ry
dWN0IG13aWZpZXhfZXZ0X2J1Zl9kZXNjIHsNCj4gPiAtLQ0KPiA+IDEuOC4xLjQNCj4gPg0KPiAN
Cj4gVGhhbmtzLg0KPiANCj4gLS0NCj4gRG1pdHJ5DQo=

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

* RE: [EXT] Re: [PATCH 3/3] mwifiex: pcie: avoid hardcode wifi-only firmware name
  2017-04-03 18:48     ` Brian Norris
@ 2017-04-06  8:08       ` Xinming Hu
  0 siblings, 0 replies; 16+ messages in thread
From: Xinming Hu @ 2017-04-06  8:08 UTC (permalink / raw)
  To: Brian Norris, Dmitry Torokhov
  Cc: Xinming Hu, Linux Wireless, Kalle Valo, Rajat Jain,
	Amitkumar Karwar, Cathy Luo

SGkgQnJhaW4sDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQnJpYW4g
Tm9ycmlzIFttYWlsdG86YnJpYW5ub3JyaXNAY2hyb21pdW0ub3JnXQ0KPiBTZW50OiAyMDE3xOo0
1MI0yNUgMjo0OQ0KPiBUbzogRG1pdHJ5IFRvcm9raG92DQo+IENjOiBYaW5taW5nIEh1OyBMaW51
eCBXaXJlbGVzczsgS2FsbGUgVmFsbzsgUmFqYXQgSmFpbjsgQW1pdGt1bWFyIEthcndhcjsgQ2F0
aHkNCj4gTHVvOyBYaW5taW5nIEh1DQo+IFN1YmplY3Q6IFtFWFRdIFJlOiBbUEFUQ0ggMy8zXSBt
d2lmaWV4OiBwY2llOiBhdm9pZCBoYXJkY29kZSB3aWZpLW9ubHkNCj4gZmlybXdhcmUgbmFtZQ0K
PiANCj4gRXh0ZXJuYWwgRW1haWwNCj4gDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gT24gRnJpLCBNYXIg
MzEsIDIwMTcgYXQgMDM6NTA6MjdQTSAtMDcwMCwgRG1pdHJ5IFRvcm9raG92IHdyb3RlOg0KPiA+
IFRoYXQgc2FpZCwgSSBjb25zaWRlciB0aGUgd2hvbGUgd2lmaS1vbmx5IGZpcm13YXJlIGJ1c2lu
ZXNzIGlzIHF1aXRlDQo+ID4gZnJhZ2lsZS4gQ2FuIHdlIGhhdmUgdW5pZmllZCBmaXJtd2FyZSBh
bmQgaGF2ZSBkcml2ZXIgZmlndXJlIG91dCB3aGF0DQo+ID4gcGFydCBzaG91ZGwgYmUgW3JlXWxv
YWRlZD8NCj4gDQo+ICsxLiBJIHRoaW5rIHdlIHNob3VsZCByZWFsbHkgZ2l2ZSBhIHN0YWIgYXQg
dGhpcyBmaXJzdCwgYW5kICp0aGVuKiBzZWUNCj4gaG93IHdlIHdhbnQgdG8gcGF0Y2ggdXAgdGhl
IGZsYWdnaW5nIG9mIHN1cHBvcnQgb24gYSBwZXItY2hpcHNldCBiYXNpcy4NCj4gQXMtaXMsIHlv
dSdyZSB3YXN0aW5nIGZpbGVzeXN0ZW0gc3BhY2Ugb24gYSBkdXBsaWNhdGUgZmlybXdhcmUgYmxv
YiwgdGhhdCB3ZQ0KPiBoYXZlIHRvIG1ha2Ugc3VyZSBnZXRzIHVwZGF0ZWQgaW4gc3luYyB3aXRo
IHRoZSBjb21iaW5lZCBmaXJtd2FyZSBldmVyeQ0KPiB0aW1lIHRoZXJlJ3MgYW4gdXBkYXRlLg0K
PiANCj4gUHJvb2Ygb2YgdGhlIGR1cGxpY2F0ZSBibG9iIC0tIHRoZSBsYXR0ZXIgcG9ydGlvbiBv
ZiB0aGUgY29tYmluZWQgRlcgaXMgaWRlbnRpY2FsDQo+IHRvIHRoZSBXTEFOLW9ubHk6DQo+IA0K
PiAgICQgY21wIG1ydmwvcGNpZXt1c2I4OTk3X2NvbWJvLDg5OTdfd2xhbn1fdjQuYmluICQoKDB4
MjkxOWMpKTsgZWNobyAkPw0KPiAgIDANCg0KVGhhbmtzIGZvciB0aGUgcmV2aWV3LCB3ZSBoYXZl
IGEgbmV3IHNvbHV0aW9uIGZvciBleHRyYWN0aW5nIHdpZmktb25seSBwYXJ0IGZyb20gY29tYm8g
ZmlybXdhcmUsIHdpbGwgc2VuZCBpdCBpbiB2Mi4NCg0KVGhhbmtzDQpTaW1vbg0KPiANCj4gQnJp
YW4NCg==

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

* RE:] Re: [3/3] mwifiex: pcie: avoid hardcode wifi-only firmware name
       [not found]   ` <20170405104711.1092260DC7@smtp.codeaurora.org>
@ 2017-04-06  8:14     ` Xinming Hu
  0 siblings, 0 replies; 16+ messages in thread
From: Xinming Hu @ 2017-04-06  8:14 UTC (permalink / raw)
  To: Kalle Valo, Xinming Hu
  Cc: Linux Wireless, Kalle Valo, Brian Norris, Dmitry Torokhov,
	rajatja, Amitkumar Karwar, Cathy Luo

SGkgS2FsbGUsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS2FsbGUg
VmFsbyBbbWFpbHRvOmt2YWxvQGNvZGVhdXJvcmEub3JnXQ0KPiBTZW50OiAyMDE35bm0NOaciDXm
l6UgMTg6NDcNCj4gVG86IFhpbm1pbmcgSHUNCj4gQ2M6IExpbnV4IFdpcmVsZXNzOyBLYWxsZSBW
YWxvOyBCcmlhbiBOb3JyaXM7IERtaXRyeSBUb3Jva2hvdjsNCj4gcmFqYXRqYUBnb29nbGUuY29t
OyBBbWl0a3VtYXIgS2Fyd2FyOyBDYXRoeSBMdW87IFhpbm1pbmcgSHUNCj4gU3ViamVjdDogW0VY
VF0gUmU6IFszLzNdIG13aWZpZXg6IHBjaWU6IGF2b2lkIGhhcmRjb2RlIHdpZmktb25seSBmaXJt
d2FyZSBuYW1lDQo+IA0KPiBFeHRlcm5hbCBFbWFpbA0KPiANCj4gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiBY
aW5taW5nIEh1IDxodXhpbm1pbmc4MjBAZ21haWwuY29tPiB3cm90ZToNCj4gPiBGcm9tOiBYaW5t
aW5nIEh1IDxodXhtQG1hcnZlbGwuY29tPg0KPiA+DQo+ID4gV2lmaS1vbmx5IGZpcm13YXJlIG5h
bWUgc2hvdWxkIGJlIGNoaXBzZXQgc3BlY2lmaWMuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBY
aW5taW5nIEh1IDxodXhtQG1hcnZlbGwuY29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IEFtaXRrdW1h
ciBLYXJ3YXIgPGFrYXJ3YXJAbWFydmVsbC5jb20+DQo+IA0KPiBUaGUgY29tbWl0IGxvZyBpcyBu
b3QgdGVsbGluZyBhbnl0aGluZy4gV2h5IGFyZSB5b3UgY2hhbmdpbmcgdGhpcz8gQW5kIGhvdw0K
PiBkb2VzIHRoZSBmdW5jdGlvbmFsaXR5IGNoYW5nZSBmcm9tIHVzZXIgc3BhY2UgcG9pbnQgb2Yg
dmlldz8NCj4gDQoNClRoYW5rcyBmb3IgdGhlIHJldmlldywgd2UgaGF2ZSBpbXBsZW1lbnRlZCBh
IG5ldyB3YXkgdG8gZXh0cmFjdCB3aWZpLW9ubHkgcGFydCBmcm9tIGNvbWJvIGZpcm13YXJlLCB3
aWxsIGFkZCBtb3JlIGRlc2NyaXB0aW9uIGluIHYyDQoNClRoYW5rcywNClNpbW9uDQo+IC0tDQo+
IGh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5lbC5vcmcvcGF0Y2gvOTY1MzM4Ny8NCj4gDQo+IGh0dHBz
Oi8vd2lyZWxlc3Mud2lraS5rZXJuZWwub3JnL2VuL2RldmVsb3BlcnMvZG9jdW1lbnRhdGlvbi9z
dWJtaXR0aW5ncGF0DQo+IGNoZXMNCg0K

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

end of thread, other threads:[~2017-04-06  8:14 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-30  9:19 [PATCH 1/3] mwifiex: remove unnecessary wakeup interrupt number sanity check Xinming Hu
2017-03-30  9:19 ` [PATCH 2/3] mwifiex: using general print function during device intialization Xinming Hu
2017-03-31 22:46   ` Dmitry Torokhov
2017-04-03 18:42     ` Brian Norris
2017-04-05  6:41       ` Xinming Hu
2017-03-30  9:19 ` [PATCH 3/3] mwifiex: pcie: avoid hardcode wifi-only firmware name Xinming Hu
2017-03-31 22:50   ` Dmitry Torokhov
2017-04-03 18:48     ` Brian Norris
2017-04-06  8:08       ` [EXT] " Xinming Hu
2017-04-06  8:05     ` Xinming Hu
2017-04-05 10:47   ` [3/3] " Kalle Valo
     [not found]   ` <20170405104711.1092260DC7@smtp.codeaurora.org>
2017-04-06  8:14     ` RE:] " Xinming Hu
2017-03-31 22:37 ` [PATCH 1/3] mwifiex: remove unnecessary wakeup interrupt number sanity check Dmitry Torokhov
2017-04-03 18:33   ` Brian Norris
2017-04-05  5:23     ` Xinming Hu
2017-04-05  5:16   ` [EXT] " 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.