diff mbox

[3/3] mwifiex: selectively choose ext_scan support

Message ID 1421858531-4536-3-git-send-email-patila@marvell.com (mailing list archive)
State Superseded
Delegated to: Kalle Valo
Headers show

Commit Message

Avinash Patil Jan. 21, 2015, 4:42 p.m. UTC
Some devices do not support extended scan.
This patch adds support to enable ext_scan selectively.
For SD/PCIe interfaces, deefine ext_scan_support as part of
card structure and use it to initialize ext_scan in adapter
during registering device. For USB interfaces, we initialize
ext_scan during register_dev handler.

Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
---
 drivers/net/wireless/mwifiex/init.c | 2 +-
 drivers/net/wireless/mwifiex/pcie.c | 2 ++
 drivers/net/wireless/mwifiex/pcie.h | 3 +++
 drivers/net/wireless/mwifiex/sdio.c | 2 ++
 drivers/net/wireless/mwifiex/sdio.h | 8 ++++++++
 drivers/net/wireless/mwifiex/usb.c  | 3 +++
 6 files changed, 19 insertions(+), 1 deletion(-)

Comments

Johannes Berg Jan. 21, 2015, 4:35 p.m. UTC | #1
On Wed, 2015-01-21 at 22:12 +0530, Avinash Patil wrote:

> +	u8 ext_scan_support;

bool.

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Johannes Berg Jan. 21, 2015, 4:36 p.m. UTC | #2
On Wed, 2015-01-21 at 17:35 +0100, Johannes Berg wrote:
> On Wed, 2015-01-21 at 22:12 +0530, Avinash Patil wrote:
> 
> > +	u8 ext_scan_support;
> 
> bool.

Oh, there are also two more places it seems :)

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
James Cameron Jan. 21, 2015, 8:11 p.m. UTC | #3
On Wed, Jan 21, 2015 at 10:12:11PM +0530, Avinash Patil wrote:
> @@ -256,6 +256,7 @@ struct sdio_mmc_card {
>  
>  	u8 *mp_regs;
>  	u8 auto_tdls;
> +	u8 ext_scan;

Why not same name as below?

> @@ -273,6 +274,7 @@ struct mwifiex_sdio_device {
>  	u32 mp_tx_agg_buf_size;
>  	u32 mp_rx_agg_buf_size;
>  	u8 auto_tdls;
> +	u8 ext_scan_support;

> @@ -206,6 +206,7 @@ struct mwifiex_pcie_device {
>  	u16 blksz_fw_dl;
>  	u16 tx_buf_size;
>  	bool supports_fw_dump;
> +	u8 ext_scan_support;

Not consistent name style with other support variable above.  Perhaps
should be support_ext_scan.

Long variable names for all support variables, perhaps should use:

- supports_sdio_new_mode
+ can_sdio_new

- supports_fw_dump
+ can_dump

- supports_ext_scan
+ can_ext_scan
Avinash Patil Jan. 23, 2015, 10:21 a.m. UTC | #4
Hi James/Johannes,
On Wed, 2015-01-21 at 12:11 -0800, James Cameron wrote:
> On Wed, Jan 21, 2015 at 10:12:11PM +0530, Avinash Patil wrote:
> > @@ -256,6 +256,7 @@ struct sdio_mmc_card {
> >  
> >  	u8 *mp_regs;
> >  	u8 auto_tdls;
> > +	u8 ext_scan;
> 
> Why not same name as below?
> 
> > @@ -273,6 +274,7 @@ struct mwifiex_sdio_device {
> >  	u32 mp_tx_agg_buf_size;
> >  	u32 mp_rx_agg_buf_size;
> >  	u8 auto_tdls;
> > +	u8 ext_scan_support;
> 
> > @@ -206,6 +206,7 @@ struct mwifiex_pcie_device {
> >  	u16 blksz_fw_dl;
> >  	u16 tx_buf_size;
> >  	bool supports_fw_dump;
> > +	u8 ext_scan_support;
> 
> Not consistent name style with other support variable above.  Perhaps
> should be support_ext_scan.
> 
> Long variable names for all support variables, perhaps should use:
> 
> - supports_sdio_new_mode
> + can_sdio_new
> 
> - supports_fw_dump
> + can_dump
> 
> - supports_ext_scan
> + can_ext_scan
> 

Thanks for reviewing patches. I will send v2 with naming convention and
data types fixes.

Thanks,
Avinash

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Avinash Patil Jan. 23, 2015, 10:41 a.m. UTC | #5
On Wed, 2015-01-21 at 08:36 -0800, Johannes Berg wrote:
> On Wed, 2015-01-21 at 17:35 +0100, Johannes Berg wrote:
> > On Wed, 2015-01-21 at 22:12 +0530, Avinash Patil wrote:
> > 
> > > +	u8 ext_scan_support;
> > 
> > bool.
> 
> Oh, there are also two more places it seems :)
> 
> johannes
> 
Hmm..:)
I will send another follow-up patch to fix this later.

Thanks,
Avinash

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/wireless/mwifiex/init.c b/drivers/net/wireless/mwifiex/init.c
index b115e0f..8004d14 100644
--- a/drivers/net/wireless/mwifiex/init.c
+++ b/drivers/net/wireless/mwifiex/init.c
@@ -294,7 +294,7 @@  static void mwifiex_init_adapter(struct mwifiex_adapter *adapter)
 	memset(&adapter->arp_filter, 0, sizeof(adapter->arp_filter));
 	adapter->arp_filter_size = 0;
 	adapter->max_mgmt_ie_index = MAX_MGMT_IE_INDEX;
-	adapter->ext_scan = true;
+	adapter->ext_scan = false;
 	adapter->key_api_major_ver = 0;
 	adapter->key_api_minor_ver = 0;
 
diff --git a/drivers/net/wireless/mwifiex/pcie.c b/drivers/net/wireless/mwifiex/pcie.c
index a460b0e..824a78b 100644
--- a/drivers/net/wireless/mwifiex/pcie.c
+++ b/drivers/net/wireless/mwifiex/pcie.c
@@ -204,6 +204,7 @@  static int mwifiex_pcie_probe(struct pci_dev *pdev,
 		card->pcie.blksz_fw_dl = data->blksz_fw_dl;
 		card->pcie.tx_buf_size = data->tx_buf_size;
 		card->pcie.supports_fw_dump = data->supports_fw_dump;
+		card->pcie.ext_scan_support = data->ext_scan_support;
 	}
 
 	if (mwifiex_add_card(card, &add_remove_card_sem, &pcie_ops,
@@ -2563,6 +2564,7 @@  static int mwifiex_register_dev(struct mwifiex_adapter *adapter)
 	adapter->mem_type_mapping_tbl = mem_type_mapping_tbl;
 	adapter->num_mem_types = ARRAY_SIZE(mem_type_mapping_tbl);
 	strcpy(adapter->fw_name, card->pcie.firmware);
+	adapter->ext_scan = card->pcie.ext_scan_support;
 
 	return 0;
 }
diff --git a/drivers/net/wireless/mwifiex/pcie.h b/drivers/net/wireless/mwifiex/pcie.h
index 200e8b0..295e66b 100644
--- a/drivers/net/wireless/mwifiex/pcie.h
+++ b/drivers/net/wireless/mwifiex/pcie.h
@@ -206,6 +206,7 @@  struct mwifiex_pcie_device {
 	u16 blksz_fw_dl;
 	u16 tx_buf_size;
 	bool supports_fw_dump;
+	u8 ext_scan_support;
 };
 
 static const struct mwifiex_pcie_device mwifiex_pcie8766 = {
@@ -214,6 +215,7 @@  static const struct mwifiex_pcie_device mwifiex_pcie8766 = {
 	.blksz_fw_dl = MWIFIEX_PCIE_BLOCK_SIZE_FW_DNLD,
 	.tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_2K,
 	.supports_fw_dump = false,
+	.ext_scan_support = true,
 };
 
 static const struct mwifiex_pcie_device mwifiex_pcie8897 = {
@@ -222,6 +224,7 @@  static const struct mwifiex_pcie_device mwifiex_pcie8897 = {
 	.blksz_fw_dl = MWIFIEX_PCIE_BLOCK_SIZE_FW_DNLD,
 	.tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_4K,
 	.supports_fw_dump = true,
+	.ext_scan_support = true,
 };
 
 struct mwifiex_evt_buf_desc {
diff --git a/drivers/net/wireless/mwifiex/sdio.c b/drivers/net/wireless/mwifiex/sdio.c
index cee107f..01c157d 100644
--- a/drivers/net/wireless/mwifiex/sdio.c
+++ b/drivers/net/wireless/mwifiex/sdio.c
@@ -107,6 +107,7 @@  mwifiex_sdio_probe(struct sdio_func *func, const struct sdio_device_id *id)
 		card->mp_rx_agg_buf_size = data->mp_rx_agg_buf_size;
 		card->supports_fw_dump = data->supports_fw_dump;
 		card->auto_tdls = data->auto_tdls;
+		card->ext_scan = data->ext_scan_support;
 	}
 
 	sdio_claim_host(func);
@@ -1887,6 +1888,7 @@  static int mwifiex_init_sdio(struct mwifiex_adapter *adapter)
 	}
 
 	adapter->auto_tdls = card->auto_tdls;
+	adapter->ext_scan = card->ext_scan;
 	return ret;
 }
 
diff --git a/drivers/net/wireless/mwifiex/sdio.h b/drivers/net/wireless/mwifiex/sdio.h
index a4bb0db..1d58f25 100644
--- a/drivers/net/wireless/mwifiex/sdio.h
+++ b/drivers/net/wireless/mwifiex/sdio.h
@@ -256,6 +256,7 @@  struct sdio_mmc_card {
 
 	u8 *mp_regs;
 	u8 auto_tdls;
+	u8 ext_scan;
 
 	struct mwifiex_sdio_mpa_tx mpa_tx;
 	struct mwifiex_sdio_mpa_rx mpa_rx;
@@ -273,6 +274,7 @@  struct mwifiex_sdio_device {
 	u32 mp_tx_agg_buf_size;
 	u32 mp_rx_agg_buf_size;
 	u8 auto_tdls;
+	u8 ext_scan_support;
 };
 
 static const struct mwifiex_sdio_card_reg mwifiex_reg_sd87xx = {
@@ -417,6 +419,7 @@  static const struct mwifiex_sdio_device mwifiex_sdio_sd8786 = {
 	.mp_rx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_16K,
 	.supports_fw_dump = false,
 	.auto_tdls = false,
+	.ext_scan_support = false,
 };
 
 static const struct mwifiex_sdio_device mwifiex_sdio_sd8787 = {
@@ -431,6 +434,7 @@  static const struct mwifiex_sdio_device mwifiex_sdio_sd8787 = {
 	.mp_rx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_16K,
 	.supports_fw_dump = false,
 	.auto_tdls = false,
+	.ext_scan_support = true,
 };
 
 static const struct mwifiex_sdio_device mwifiex_sdio_sd8797 = {
@@ -445,6 +449,7 @@  static const struct mwifiex_sdio_device mwifiex_sdio_sd8797 = {
 	.mp_rx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_16K,
 	.supports_fw_dump = false,
 	.auto_tdls = false,
+	.ext_scan_support = true,
 };
 
 static const struct mwifiex_sdio_device mwifiex_sdio_sd8897 = {
@@ -459,6 +464,7 @@  static const struct mwifiex_sdio_device mwifiex_sdio_sd8897 = {
 	.mp_rx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_32K,
 	.supports_fw_dump = true,
 	.auto_tdls = false,
+	.ext_scan_support = true,
 };
 
 static const struct mwifiex_sdio_device mwifiex_sdio_sd8887 = {
@@ -473,6 +479,7 @@  static const struct mwifiex_sdio_device mwifiex_sdio_sd8887 = {
 	.mp_rx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_32K,
 	.supports_fw_dump = false,
 	.auto_tdls = true,
+	.ext_scan_support = true,
 };
 
 static const struct mwifiex_sdio_device mwifiex_sdio_sd8801 = {
@@ -487,6 +494,7 @@  static const struct mwifiex_sdio_device mwifiex_sdio_sd8801 = {
 	.mp_rx_agg_buf_size = MWIFIEX_MP_AGGR_BUF_SIZE_16K,
 	.supports_fw_dump = false,
 	.auto_tdls = false,
+	.ext_scan_support = true,
 };
 
 /*
diff --git a/drivers/net/wireless/mwifiex/usb.c b/drivers/net/wireless/mwifiex/usb.c
index 50517b7..2238730 100644
--- a/drivers/net/wireless/mwifiex/usb.c
+++ b/drivers/net/wireless/mwifiex/usb.c
@@ -799,16 +799,19 @@  static int mwifiex_register_dev(struct mwifiex_adapter *adapter)
 	case USB8897_PID_2:
 		adapter->tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_4K;
 		strcpy(adapter->fw_name, USB8897_DEFAULT_FW_NAME);
+		adapter->ext_scan = true;
 		break;
 	case USB8766_PID_1:
 	case USB8766_PID_2:
 		adapter->tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_2K;
 		strcpy(adapter->fw_name, USB8766_DEFAULT_FW_NAME);
+		adapter->ext_scan = true;
 		break;
 	case USB8801_PID_1:
 	case USB8801_PID_2:
 		adapter->tx_buf_size = MWIFIEX_TX_DATA_BUF_SIZE_2K;
 		strcpy(adapter->fw_name, USB8801_DEFAULT_FW_NAME);
+		adapter->ext_scan = false;
 		break;
 	case USB8797_PID_1:
 	case USB8797_PID_2: