Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d27121fc authored by Xinming Hu's avatar Xinming Hu Committed by Kalle Valo
Browse files

mwifiex: get rid of drv_info* adapter variables



We can avoid drv_info_dump and drv_info_size adapter variables.
This info can be passed to mwifiex_upload_device_dump() as parameters

Signed-off-by: default avatarXinming Hu <huxm@marvell.com>
Signed-off-by: default avatarAmitkumar Karwar <akarwar@marvell.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent fb45bd0c
Loading
Loading
Loading
Loading
+17 −25
Original line number Diff line number Diff line
@@ -1026,7 +1026,7 @@ void mwifiex_multi_chan_resync(struct mwifiex_adapter *adapter)
}
EXPORT_SYMBOL_GPL(mwifiex_multi_chan_resync);

void mwifiex_drv_info_dump(struct mwifiex_adapter *adapter)
int mwifiex_drv_info_dump(struct mwifiex_adapter *adapter, void **drv_info)
{
	void *p;
	char drv_version[64];
@@ -1036,21 +1036,17 @@ void mwifiex_drv_info_dump(struct mwifiex_adapter *adapter)
	int i, idx;
	struct netdev_queue *txq;
	struct mwifiex_debug_info *debug_info;

	if (adapter->drv_info_dump) {
		vfree(adapter->drv_info_dump);
		adapter->drv_info_dump = NULL;
		adapter->drv_info_size = 0;
	}
	void *drv_info_dump;

	mwifiex_dbg(adapter, MSG, "===mwifiex driverinfo dump start===\n");

	adapter->drv_info_dump = vzalloc(MWIFIEX_DRV_INFO_SIZE_MAX);
	/* memory allocate here should be free in mwifiex_upload_device_dump*/
	drv_info_dump = vzalloc(MWIFIEX_DRV_INFO_SIZE_MAX);

	if (!adapter->drv_info_dump)
		return;
	if (!drv_info_dump)
		return 0;

	p = (char *)(adapter->drv_info_dump);
	p = (char *)(drv_info_dump);
	p += sprintf(p, "driver_name = " "\"mwifiex\"\n");

	mwifiex_drv_get_driver_version(adapter, drv_version,
@@ -1134,18 +1130,20 @@ void mwifiex_drv_info_dump(struct mwifiex_adapter *adapter)
		kfree(debug_info);
	}

	adapter->drv_info_size = p - adapter->drv_info_dump;
	mwifiex_dbg(adapter, MSG, "===mwifiex driverinfo dump end===\n");
	*drv_info = drv_info_dump;
	return p - drv_info_dump;
}
EXPORT_SYMBOL_GPL(mwifiex_drv_info_dump);

void mwifiex_upload_device_dump(struct mwifiex_adapter *adapter)
void mwifiex_upload_device_dump(struct mwifiex_adapter *adapter, void *drv_info,
				int drv_info_size)
{
	u8 idx, *dump_data, *fw_dump_ptr;
	u32 dump_len;

	dump_len = (strlen("========Start dump driverinfo========\n") +
		       adapter->drv_info_size +
		       drv_info_size +
		       strlen("\n========End dump========\n"));

	for (idx = 0; idx < adapter->num_mem_types; idx++) {
@@ -1175,8 +1173,8 @@ void mwifiex_upload_device_dump(struct mwifiex_adapter *adapter)

	strcpy(fw_dump_ptr, "========Start dump driverinfo========\n");
	fw_dump_ptr += strlen("========Start dump driverinfo========\n");
	memcpy(fw_dump_ptr, adapter->drv_info_dump, adapter->drv_info_size);
	fw_dump_ptr += adapter->drv_info_size;
	memcpy(fw_dump_ptr, drv_info, drv_info_size);
	fw_dump_ptr += drv_info_size;
	strcpy(fw_dump_ptr, "\n========End dump========\n");
	fw_dump_ptr += strlen("\n========End dump========\n");

@@ -1214,18 +1212,12 @@ void mwifiex_upload_device_dump(struct mwifiex_adapter *adapter)
		struct memory_type_mapping *entry =
			&adapter->mem_type_mapping_tbl[idx];

		if (entry->mem_ptr) {
		vfree(entry->mem_ptr);
		entry->mem_ptr = NULL;
		}
		entry->mem_size = 0;
	}

	if (adapter->drv_info_dump) {
		vfree(adapter->drv_info_dump);
		adapter->drv_info_dump = NULL;
		adapter->drv_info_size = 0;
	}
	vfree(drv_info);
}
EXPORT_SYMBOL_GPL(mwifiex_upload_device_dump);

+3 −4
Original line number Diff line number Diff line
@@ -994,8 +994,6 @@ struct mwifiex_adapter {
	u8 key_api_major_ver, key_api_minor_ver;
	struct memory_type_mapping *mem_type_mapping_tbl;
	u8 num_mem_types;
	void *drv_info_dump;
	u32 drv_info_size;
	bool scan_chan_gap_enabled;
	struct sk_buff_head rx_data_q;
	bool mfg_mode;
@@ -1641,8 +1639,9 @@ void mwifiex_hist_data_add(struct mwifiex_private *priv,
u8 mwifiex_adjust_data_rate(struct mwifiex_private *priv,
			    u8 rx_rate, u8 ht_info);

void mwifiex_drv_info_dump(struct mwifiex_adapter *adapter);
void mwifiex_upload_device_dump(struct mwifiex_adapter *adapter);
int mwifiex_drv_info_dump(struct mwifiex_adapter *adapter, void **drv_info);
void mwifiex_upload_device_dump(struct mwifiex_adapter *adapter, void *drv_info,
				int drv_info_size);
void *mwifiex_alloc_dma_align_buf(int rx_len, gfp_t flags);
void mwifiex_queue_main_work(struct mwifiex_adapter *adapter);
int mwifiex_get_wakeup_reason(struct mwifiex_private *priv, u16 action,
+5 −2
Original line number Diff line number Diff line
@@ -2715,9 +2715,12 @@ static void mwifiex_pcie_fw_dump(struct mwifiex_adapter *adapter)

static void mwifiex_pcie_device_dump_work(struct mwifiex_adapter *adapter)
{
	mwifiex_drv_info_dump(adapter);
	int drv_info_size;
	void *drv_info;

	drv_info_size = mwifiex_drv_info_dump(adapter, &drv_info);
	mwifiex_pcie_fw_dump(adapter);
	mwifiex_upload_device_dump(adapter);
	mwifiex_upload_device_dump(adapter, drv_info, drv_info_size);
}

static unsigned long iface_work_flags;
+4 −2
Original line number Diff line number Diff line
@@ -2548,13 +2548,15 @@ static void mwifiex_sdio_generic_fw_dump(struct mwifiex_adapter *adapter)
static void mwifiex_sdio_device_dump_work(struct mwifiex_adapter *adapter)
{
	struct sdio_mmc_card *card = adapter->card;
	int drv_info_size;
	void *drv_info;

	mwifiex_drv_info_dump(adapter);
	drv_info_size = mwifiex_drv_info_dump(adapter, &drv_info);
	if (card->fw_dump_enh)
		mwifiex_sdio_generic_fw_dump(adapter);
	else
		mwifiex_sdio_fw_dump(adapter);
	mwifiex_upload_device_dump(adapter);
	mwifiex_upload_device_dump(adapter, drv_info, drv_info_size);
}

static void mwifiex_sdio_work(struct work_struct *work)