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: Ricardo Neri <ricardo.neri@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
parent
7888839e25
commit
66a06b0c59
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue