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

Commit a141a296 authored by Hans Verkuil's avatar Hans Verkuil Committed by Tomi Valkeinen
Browse files

omapdrm: hdmi4: refcount hdmi_power_on/off_core



The hdmi_power_on/off_core functions can be called multiple times:
when the HPD changes and when the HDMI CEC support needs to power
the HDMI core.

So use a counter to know when to really power on or off the HDMI core.

Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 1d54ecf2
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -124,9 +124,12 @@ static int hdmi_power_on_core(struct omap_dss_device *dssdev)
{
	int r;

	if (hdmi.core.core_pwr_cnt++)
		return 0;

	r = regulator_enable(hdmi.vdda_reg);
	if (r)
		return r;
		goto err_reg_enable;

	r = hdmi_runtime_get();
	if (r)
@@ -143,12 +146,17 @@ static int hdmi_power_on_core(struct omap_dss_device *dssdev)

err_runtime_get:
	regulator_disable(hdmi.vdda_reg);
err_reg_enable:
	hdmi.core.core_pwr_cnt--;

	return r;
}

static void hdmi_power_off_core(struct omap_dss_device *dssdev)
{
	if (--hdmi.core.core_pwr_cnt)
		return;

	hdmi.core_enabled = false;

	hdmi_runtime_put();