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

Commit 66a06b0c authored by Ricardo Neri's avatar Ricardo Neri Committed by Tomi Valkeinen
Browse files

OMAPDSS: HDMI: Handle panel init error at probe



Do not blindly assume that the panel could be initialized.

While there, group mutex initialization at a single place.

Signed-off-by: default avatarRicardo Neri <ricardo.neri@ti.com>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 7888839e
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@
static struct {
	struct mutex lock;
	struct platform_device *pdev;

	struct hdmi_ip_data ip_data;

	struct clk *sys_clk;
@@ -1056,6 +1057,7 @@ static int __init omapdss_hdmihw_probe(struct platform_device *pdev)
	hdmi.pdev = pdev;

	mutex_init(&hdmi.lock);
	mutex_init(&hdmi.ip_data.lock);

	res = platform_get_resource(hdmi.pdev, IORESOURCE_MEM, 0);
	if (!res) {
@@ -1083,9 +1085,11 @@ static int __init omapdss_hdmihw_probe(struct platform_device *pdev)
	hdmi.ip_data.pll_offset = HDMI_PLLCTRL;
	hdmi.ip_data.phy_offset = HDMI_PHY;

	mutex_init(&hdmi.ip_data.lock);

	hdmi_panel_init();
	r = hdmi_panel_init();
	if (r) {
		DSSERR("can't init panel\n");
		goto err_panel_init;
	}

	dss_debugfs_create_file("hdmi", hdmi_dump_regs);

@@ -1094,6 +1098,10 @@ static int __init omapdss_hdmihw_probe(struct platform_device *pdev)
	hdmi_probe_pdata(pdev);

	return 0;

err_panel_init:
	hdmi_put_clocks();
	return r;
}

static int __exit hdmi_remove_child(struct device *dev, void *data)