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

Commit 2d040f89 authored by Govind Singh's avatar Govind Singh
Browse files

wcnss: Export wcnss smd tx method



Export wcnss smd tx wrapper for wlan driver
uses.

Change-Id: I5fcdf2eeb86e7735c12743483f9bef39022c15a6
Signed-off-by: default avatarGovind Singh <govinds@codeaurora.org>
parent 133f4b97
Loading
Loading
Loading
Loading
+17 −12
Original line number Diff line number Diff line
@@ -1963,15 +1963,16 @@ int wcnss_get_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 buffer_size,
}
EXPORT_SYMBOL(wcnss_get_wlan_unsafe_channel);

static int wcnss_smd_tx(void *data, int len)
int wcnss_smd_tx(struct rpmsg_endpoint *channel, void *data, int len)
{
	int ret = 0;
	ret = rpmsg_send(penv->channel, data, len);
	ret = rpmsg_send(channel, data, len);
	if (ret < 0)
		return ret;

	return 0;
}
EXPORT_SYMBOL(wcnss_smd_tx);

static int wcnss_get_battery_volt(u32 *result_uv)
{
@@ -2088,7 +2089,7 @@ static void wcnss_send_vbatt_indication(struct work_struct *work)
	wcnss_log(DBG, "send curr_volt: %d to FW\n",
		 vbatt_msg.vbatt.curr_volt);

	ret = wcnss_smd_tx(&vbatt_msg, vbatt_msg.hdr.msg_len);
	ret = wcnss_smd_tx(penv->channel, &vbatt_msg, vbatt_msg.hdr.msg_len);
	if (ret < 0)
		wcnss_log(ERR, "smd tx failed\n");
}
@@ -2120,7 +2121,7 @@ static void wcnss_update_vbatt(struct work_struct *work)
		return;
	}
	mutex_unlock(&penv->vbat_monitor_mutex);
	ret = wcnss_smd_tx(&vbatt_msg, vbatt_msg.hdr.msg_len);
	ret = wcnss_smd_tx(penv->channel, &vbatt_msg, vbatt_msg.hdr.msg_len);
	if (ret < 0)
		wcnss_log(ERR, "smd tx failed\n");
}
@@ -2140,7 +2141,7 @@ static void wcnss_send_cal_rsp(unsigned char fw_status)
	rsphdr->msg_len = sizeof(struct smd_msg_hdr) + 1;
	memcpy(msg + sizeof(struct smd_msg_hdr), &fw_status, 1);

	rc = wcnss_smd_tx(msg, rsphdr->msg_len);
	rc = wcnss_smd_tx(penv->channel, msg, rsphdr->msg_len);
	if (rc < 0)
		wcnss_log(ERR, "smd tx failed\n");

@@ -2270,7 +2271,8 @@ static void wcnss_process_smd_msg(void *buf, int len)
		case WCNSS_PRONTO_HW:
			smd_msg.msg_type = WCNSS_BUILD_VER_REQ;
			smd_msg.msg_len = sizeof(smd_msg);
			rc = wcnss_smd_tx(&smd_msg, smd_msg.msg_len);
			rc = wcnss_smd_tx(penv->channel, &smd_msg,
					  smd_msg.msg_len);
			if (rc < 0)
				wcnss_log(ERR, "smd tx failed: %s\n", __func__);

@@ -2357,7 +2359,7 @@ static void wcnss_send_version_req(struct work_struct *worker)

	smd_msg.msg_type = WCNSS_VERSION_REQ;
	smd_msg.msg_len = sizeof(smd_msg);
	ret = wcnss_smd_tx(&smd_msg, smd_msg.msg_len);
	ret = wcnss_smd_tx(penv->channel, &smd_msg, smd_msg.msg_len);
	if (ret < 0)
		wcnss_log(ERR, "smd tx failed\n");
}
@@ -2397,7 +2399,7 @@ static void wcnss_send_pm_config(struct work_struct *worker)
	hdr->msg_type = WCNSS_PM_CONFIG_REQ;
	hdr->msg_len = sizeof(struct smd_msg_hdr) + (prop_len * sizeof(int));

	rc = wcnss_smd_tx(msg, hdr->msg_len);
	rc = wcnss_smd_tx(penv->channel, msg, hdr->msg_len);
	if (rc < 0)
		wcnss_log(ERR, "smd tx failed\n");

@@ -2488,7 +2490,8 @@ static void wcnss_nvbin_dnld(void)
		       (nv_blob_addr + count * NV_FRAGMENT_SIZE),
		       cur_frag_size);

		ret = wcnss_smd_tx(outbuffer, dnld_req_msg->hdr.msg_len);
		ret = wcnss_smd_tx(penv->channel, outbuffer,
				   dnld_req_msg->hdr.msg_len);

		retry_count = 0;
		while ((ret == -ENOSPC) && (retry_count <= 3)) {
@@ -2502,7 +2505,7 @@ static void wcnss_nvbin_dnld(void)
			/* wait and try again */
			msleep(20);
			retry_count++;
			ret = wcnss_smd_tx(outbuffer,
			ret = wcnss_smd_tx(penv->channel, outbuffer,
					   dnld_req_msg->hdr.msg_len);
		}

@@ -2581,7 +2584,9 @@ static void wcnss_caldata_dnld(const void *cal_data,
		       (cal_data + count * NV_FRAGMENT_SIZE),
		       cur_frag_size);

		ret = wcnss_smd_tx(outbuffer, cal_msg->hdr.msg_len);
		ret = wcnss_smd_tx(penv->channel, outbuffer,
				   cal_msg->hdr.msg_len);


		retry_count = 0;
		while ((ret == -ENOSPC) && (retry_count <= 3)) {
@@ -2595,7 +2600,7 @@ static void wcnss_caldata_dnld(const void *cal_data,
			/* wait and try again */
			msleep(20);
			retry_count++;
			ret = wcnss_smd_tx(outbuffer,
			ret = wcnss_smd_tx(penv->channel, outbuffer,
					   cal_msg->hdr.msg_len);
		}

+1 −0
Original line number Diff line number Diff line
@@ -169,6 +169,7 @@ int wcnss_get_wlan_unsafe_channel(
				u16 *ch_count);
struct rpmsg_endpoint *wcnss_open_channel(const char *name,
					  rpmsg_rx_cb_t cb, void *priv);
int wcnss_smd_tx(struct rpmsg_endpoint *channel, void *data, int len);
#define wcnss_wlan_get_drvdata(dev) dev_get_drvdata(dev)
#define wcnss_wlan_set_drvdata(dev, data) dev_set_drvdata((dev), (data))
/* WLAN driver uses these names */