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

Commit 27260999 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Tomi Valkeinen
Browse files

drm: omapdrm: dss: Pass PLL pointer to dss_ctrl_pll_enable()



This will allow accessing the PLL data to get the DSS device pointer,
removing the need to access the global DSS private data.

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarSebastian Reichel <sebastian.reichel@collabora.co.uk>
parent 7b295257
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -152,17 +152,17 @@ static void dss_restore_context(void)
#undef SR
#undef RR

void dss_ctrl_pll_enable(enum dss_pll_id pll_id, bool enable)
void dss_ctrl_pll_enable(struct dss_pll *pll, bool enable)
{
	unsigned int shift;
	unsigned int val;

	if (!dss.syscon_pll_ctrl)
	if (!pll->dss->syscon_pll_ctrl)
		return;

	val = !enable;

	switch (pll_id) {
	switch (pll->id) {
	case DSS_PLL_VIDEO1:
		shift = 0;
		break;
@@ -173,11 +173,12 @@ void dss_ctrl_pll_enable(enum dss_pll_id pll_id, bool enable)
		shift = 2;
		break;
	default:
		DSSERR("illegal DSS PLL ID %d\n", pll_id);
		DSSERR("illegal DSS PLL ID %d\n", pll->id);
		return;
	}

	regmap_update_bits(dss.syscon_pll_ctrl, dss.syscon_pll_ctrl_offset,
	regmap_update_bits(pll->dss->syscon_pll_ctrl,
			   pll->dss->syscon_pll_ctrl_offset,
			   1 << shift, val << shift);
}

+1 −1
Original line number Diff line number Diff line
@@ -310,7 +310,7 @@ struct dss_pll *dss_video_pll_init(struct dss_device *dss,
				   struct regulator *regulator);
void dss_video_pll_uninit(struct dss_pll *pll);

void dss_ctrl_pll_enable(enum dss_pll_id pll_id, bool enable);
void dss_ctrl_pll_enable(struct dss_pll *pll, bool enable);

void dss_sdi_init(int datapairs);
int dss_sdi_enable(void);
+2 −2
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@ static int hdmi_pll_enable(struct dss_pll *dsspll)
	r = pm_runtime_get_sync(&pll->pdev->dev);
	WARN_ON(r < 0);

	dss_ctrl_pll_enable(DSS_PLL_HDMI, true);
	dss_ctrl_pll_enable(dsspll, true);

	r = hdmi_wp_set_pll_pwr(wp, HDMI_PLLPWRCMD_BOTHON_ALLCLKS);
	if (r)
@@ -65,7 +65,7 @@ static void hdmi_pll_disable(struct dss_pll *dsspll)

	hdmi_wp_set_pll_pwr(wp, HDMI_PLLPWRCMD_ALLOFF);

	dss_ctrl_pll_enable(DSS_PLL_HDMI, false);
	dss_ctrl_pll_enable(dsspll, false);

	r = pm_runtime_put_sync(&pll->pdev->dev);
	WARN_ON(r < 0 && r != -ENOSYS);
+3 −3
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@ static int dss_video_pll_enable(struct dss_pll *pll)
	if (r)
		return r;

	dss_ctrl_pll_enable(pll->id, true);
	dss_ctrl_pll_enable(pll, true);

	dss_dpll_enable_scp_clk(vpll);

@@ -82,7 +82,7 @@ static int dss_video_pll_enable(struct dss_pll *pll)

err_reset:
	dss_dpll_disable_scp_clk(vpll);
	dss_ctrl_pll_enable(pll->id, false);
	dss_ctrl_pll_enable(pll, false);
	dss_runtime_put(pll->dss);

	return r;
@@ -96,7 +96,7 @@ static void dss_video_pll_disable(struct dss_pll *pll)

	dss_dpll_disable_scp_clk(vpll);

	dss_ctrl_pll_enable(pll->id, false);
	dss_ctrl_pll_enable(pll, false);

	dss_runtime_put(pll->dss);
}