static int pil_shutdown_trusted(struct pil_desc *pil)
{
	struct pil_tz_data *d = desc_to_data(pil);
	int rc;

	rc = enable_regulators(pil->dev, d->proxy_regs, d->proxy_reg_count);
	if (rc)
		return rc;

	rc = prepare_enable_clocks(pil->dev, d->proxy_clks,
						d->proxy_clk_count);
	if (rc)
		goto err_clks;

	rc = pas_shutdown(d->pas_id);

	disable_unprepare_clocks(d->proxy_clks, d->proxy_clk_count);

	disable_regulators(d->proxy_regs, d->proxy_reg_count);

	if (rc)
		return rc;

	disable_unprepare_clocks(d->clks, d->clk_count);
	disable_regulators(d->regs, d->reg_count);

	return rc;
err_clks:
	disable_regulators(d->proxy_regs, d->proxy_reg_count);
	return rc;
}
static int pil_lpass_shutdown_trusted(struct pil_desc *pil)
{
	struct q6v5_data *drv = container_of(pil, struct q6v5_data, desc);
	int ret;

	ret = pas_shutdown(PAS_Q6);
	if (ret)
		return ret;
	clk_disable_unprepare(drv->axi_clk);
	return 0;
}
Exemplo n.º 3
0
static int shutdown_modem_trusted(struct pil_desc *pil)
{
	int ret;

	ret = pas_shutdown(PAS_MODEM);
	if (ret)
		return ret;

	remove_modem_proxy_votes_now();

	return 0;
}
Exemplo n.º 4
0
static int modem_shutdown_trusted(struct pil_desc *pil)
{
	int ret;
	struct modem_data *drv = dev_get_drvdata(pil->dev);

	ret = pas_shutdown(PAS_MODEM);
	if (ret)
		return ret;

	remove_modem_proxy_votes_now(drv);
	return 0;
}
Exemplo n.º 5
0
static int shutdown_q6_trusted(struct pil_device *pil)
{
	int ret;

	ret = pas_shutdown(PAS_Q6);
	if (ret)
		return ret;

	remove_q6_proxy_votes_now();

	return 0;
}
Exemplo n.º 6
0
static int pil_q6v3_shutdown_trusted(struct pil_desc *pil)
{
	int ret;
	struct q6v3_data *drv = dev_get_drvdata(pil->dev);

	ret = pas_shutdown(PAS_Q6);
	if (ret)
		return ret;

	q6v3_remove_proxy_votes_now(drv);

	return 0;
}
static int pil_riva_shutdown_trusted(struct pil_desc *pil)
{
	int ret;
	struct riva_data *drv = dev_get_drvdata(pil->dev);

	ret = clk_prepare_enable(drv->xo);
	if (ret)
		return ret;
	ret = pas_shutdown(PAS_RIVA);
	pil_riva_remove_proxy_votes_now(pil->dev);
	clk_disable_unprepare(drv->xo);

	return ret;
}
Exemplo n.º 8
0
static int pil_q6v4_shutdown_trusted(struct pil_desc *pil)
{
	int ret;
	struct q6v4_data *drv = dev_get_drvdata(pil->dev);
	struct pil_q6v4_pdata *pdata = pil->dev->platform_data;

	/* Make sure bus port is halted */
	msm_bus_axi_porthalt(pdata->bus_port);

	ret = pas_shutdown(pdata->pas_id);
	if (ret)
		return ret;

	if (drv->vreg_enabled) {
		regulator_disable(drv->vreg);
		drv->vreg_enabled = false;
	}

	return ret;
}
Exemplo n.º 9
0
static int shutdown_playready(struct pil_desc *pil)
{
	return pas_shutdown(PAS_PLAYREADY);
}
Exemplo n.º 10
0
static int shutdown_dsps_trusted(struct pil_desc *pil)
{
	return pas_shutdown(PAS_DSPS);
}
Exemplo n.º 11
0
static int modem_shutdown_trusted(struct pil_desc *pil)
{
	return pas_shutdown(PAS_MODEM);
}
Exemplo n.º 12
0
static int pil_vidc_shutdown(struct pil_desc *pil)
{
	return pas_shutdown(PAS_VIDC);
}
Exemplo n.º 13
0
static int pil_lpass_shutdown_trusted(struct pil_desc *pil)
{
	return pas_shutdown(PAS_Q6);
}
Exemplo n.º 14
0
static int pil_bcss_shutdown(struct pil_desc *pil)
{
	return pas_shutdown(PAS_BCSS);
}
Exemplo n.º 15
0
static int pil_tzapps_shutdown(struct pil_desc *pil)
{
	return pas_shutdown(PAS_TZAPPS);
}
Exemplo n.º 16
0
static int pil_riva_shutdown_trusted(struct pil_desc *pil)
{
	return pas_shutdown(PAS_WCNSS);
}
Exemplo n.º 17
0
static int shutdown_riva_trusted(struct pil_desc *pil)
{
	return pas_shutdown(PAS_RIVA);
}