Skip to content

Commit

Permalink
OMAPDSS: HDMI: Handle panel init error at probe
Browse files Browse the repository at this point in the history
Do not blindly assume that the panel could be initialized.

While there, group mutex initialization at a single place.

Signed-off-by: Ricardo Neri <ricardo.neri@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
  • Loading branch information
Ricardo Neri authored and Tomi Valkeinen committed Nov 6, 2012
1 parent 7888839 commit 66a06b0
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions drivers/video/omap2/dss/hdmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
static struct {
struct mutex lock;
struct platform_device *pdev;

struct hdmi_ip_data ip_data;

struct clk *sys_clk;
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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);

Expand All @@ -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)
Expand Down

0 comments on commit 66a06b0

Please sign in to comment.