The registering is best done here to share the resources owned by OMAPDSS HDMI driver with ASoC DAI and platform drivers.
Signed-off-by: Jyri Sarha jsarha@ti.com --- drivers/video/fbdev/omap2/dss/hdmi5.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/drivers/video/fbdev/omap2/dss/hdmi5.c b/drivers/video/fbdev/omap2/dss/hdmi5.c index c468b9e..1ba387b 100644 --- a/drivers/video/fbdev/omap2/dss/hdmi5.c +++ b/drivers/video/fbdev/omap2/dss/hdmi5.c @@ -57,6 +57,9 @@ static struct { struct clk *sys_clk; struct regulator *vdda_reg;
+#if defined(CONFIG_OMAP5_DSS_HDMI_AUDIO) + struct hdmi_audio_data audio; +#endif bool core_enabled;
struct omap_dss_device output; @@ -761,6 +764,15 @@ static int omapdss_hdmihw_probe(struct platform_device *pdev)
hdmi_init_output(pdev);
+#if defined(CONFIG_OMAP5_DSS_HDMI_AUDIO) + r = hdmi_audio_register(pdev, &hdmi.audio, &hdmi.output, &hdmi.wp); + if (r) { + DSSERR("Registering HDMI audio failed\n"); + hdmi_uninit_output(pdev); + pm_runtime_disable(&pdev->dev); + return r; + } +#endif dss_debugfs_create_file("hdmi", hdmi_dump_regs);
return 0; @@ -768,6 +780,9 @@ static int omapdss_hdmihw_probe(struct platform_device *pdev)
static int __exit omapdss_hdmihw_remove(struct platform_device *pdev) { +#if defined(CONFIG_OMAP5_DSS_HDMI_AUDIO) + hdmi_audio_unregister(&hdmi.audio); +#endif hdmi_uninit_output(pdev);
pm_runtime_disable(&pdev->dev);