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

Commit dad5a2e9 authored by Yuanyuan Liu's avatar Yuanyuan Liu
Browse files

icnss: Remove msm_bus bandwidth vote



Remove msm_bus bandwidth vote as WLAN FW will take care of it.

CRs-Fixed: 1075319
Change-Id: I618cc3603df6af18409613209e0373d7e36202fd
Signed-off-by: default avatarYuanyuan Liu <yuanliu@codeaurora.org>
parent c30ea8b0
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -2881,11 +2881,6 @@
		vdd-3.3-ch0-supply = <&pmcobalt_l25_pin_ctrl>;
		qcom,vdd-0.8-cx-mx-config = <800000 800000>;
		qcom,vdd-3.3-ch0-config = <3104000 3312000>;
		qcom,msm-bus,name = "msm-icnss";
		qcom,msm-bus,num-cases = <2>;
		qcom,msm-bus,num-paths = <1>;
		qcom,msm-bus,vectors-KBps = <81 10065 0 0>,
					    <81 10065 0 16000>;
		qcom,icnss-vadc = <&pmcobalt_vadc>;
		qcom,icnss-adc_tm = <&pmcobalt_adc_tm>;
	};
+1 −68
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@
#include <linux/dma-mapping.h>
#include <linux/qmi_encdec.h>
#include <linux/ipc_logging.h>
#include <linux/msm-bus.h>
#include <linux/thread_info.h>
#include <linux/uaccess.h>
#include <linux/qpnp/qpnp-adc.h>
@@ -411,8 +410,6 @@ static struct icnss_priv {
	size_t smmu_iova_len;
	dma_addr_t smmu_iova_ipa_start;
	size_t smmu_iova_ipa_len;
	struct msm_bus_scale_pdata *bus_scale_table;
	uint32_t bus_client;
	struct qmi_handle *wlfw_clnt;
	struct list_head event_list;
	spinlock_t event_lock;
@@ -3410,62 +3407,6 @@ unsigned int icnss_socinfo_get_serial_number(struct device *dev)
}
EXPORT_SYMBOL(icnss_socinfo_get_serial_number);

static int icnss_bw_vote(struct icnss_priv *priv, int index)
{
	int ret = 0;

	icnss_pr_dbg("Vote %d for msm_bus, state 0x%lx\n",
		     index, priv->state);
	ret = msm_bus_scale_client_update_request(priv->bus_client, index);
	if (ret)
		icnss_pr_err("Fail to vote %d: ret %d, state 0x%lx\n",
			     index, ret, priv->state);

	return ret;
}

static int icnss_bw_init(struct icnss_priv *priv)
{
	int ret = 0;

	priv->bus_scale_table = msm_bus_cl_get_pdata(priv->pdev);
	if (!priv->bus_scale_table) {
		icnss_pr_err("Missing entry for msm_bus scale table\n");
		return -EINVAL;
	}

	priv->bus_client = msm_bus_scale_register_client(priv->bus_scale_table);
	if (!priv->bus_client) {
		icnss_pr_err("Fail to register with bus_scale client\n");
		ret = -EINVAL;
		goto out;
	}

	ret = icnss_bw_vote(priv, 1);
	if (ret)
		goto out;

	return 0;

out:
	msm_bus_cl_clear_pdata(priv->bus_scale_table);
	return ret;
}

static void icnss_bw_deinit(struct icnss_priv *priv)
{
	if (!priv)
		return;

	if (priv->bus_client) {
		icnss_bw_vote(priv, 0);
		msm_bus_scale_unregister_client(priv->bus_client);
	}

	if (priv->bus_scale_table)
		msm_bus_cl_clear_pdata(priv->bus_scale_table);
}

static int icnss_smmu_init(struct icnss_priv *priv)
{
	struct dma_iommu_mapping *mapping;
@@ -4419,10 +4360,6 @@ static int icnss_probe(struct platform_device *pdev)
				     priv->smmu_iova_len);
			goto out;
		}

		ret = icnss_bw_init(priv);
		if (ret)
			goto out_smmu_deinit;
	}

	spin_lock_init(&priv->event_lock);
@@ -4432,7 +4369,7 @@ static int icnss_probe(struct platform_device *pdev)
	if (!priv->event_wq) {
		icnss_pr_err("Workqueue creation failed\n");
		ret = -EFAULT;
		goto out_bw_deinit;
		goto out_smmu_deinit;
	}

	INIT_WORK(&priv->event_work, icnss_driver_event_work);
@@ -4460,8 +4397,6 @@ static int icnss_probe(struct platform_device *pdev)

out_destroy_wq:
	destroy_workqueue(priv->event_wq);
out_bw_deinit:
	icnss_bw_deinit(priv);
out_smmu_deinit:
	icnss_smmu_deinit(priv);
out:
@@ -4487,8 +4422,6 @@ static int icnss_remove(struct platform_device *pdev)
	if (penv->event_wq)
		destroy_workqueue(penv->event_wq);

	icnss_bw_deinit(penv);

	icnss_hw_power_off(penv);

	dev_set_drvdata(&pdev->dev, NULL);