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/hdmi4.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/drivers/video/fbdev/omap2/dss/hdmi4.c b/drivers/video/fbdev/omap2/dss/hdmi4.c index 626aad2..62ad1d9 100644 --- a/drivers/video/fbdev/omap2/dss/hdmi4.c +++ b/drivers/video/fbdev/omap2/dss/hdmi4.c @@ -52,6 +52,9 @@ static struct { struct clk *sys_clk; struct regulator *vdda_hdmi_dac_reg;
+#if defined(CONFIG_OMAP4_DSS_HDMI_AUDIO) + struct hdmi_audio_data audio; +#endif bool core_enabled;
struct omap_dss_device output; @@ -736,6 +739,15 @@ static int omapdss_hdmihw_probe(struct platform_device *pdev)
hdmi_init_output(pdev);
+#if defined(CONFIG_OMAP4_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; @@ -743,6 +755,9 @@ static int omapdss_hdmihw_probe(struct platform_device *pdev)
static int __exit omapdss_hdmihw_remove(struct platform_device *pdev) { +#if defined(CONFIG_OMAP4_DSS_HDMI_AUDIO) + hdmi_audio_unregister(&hdmi.audio); +#endif hdmi_uninit_output(pdev);
pm_runtime_disable(&pdev->dev);