|
@@ -457,112 +457,6 @@ static int hdmi_read_edid(struct omap_dss_device *dssdev,
|
|
|
return r;
|
|
|
}
|
|
|
|
|
|
-#if defined(CONFIG_OMAP4_DSS_HDMI_AUDIO)
|
|
|
-static int hdmi_audio_enable(struct omap_dss_device *dssdev)
|
|
|
-{
|
|
|
- int r;
|
|
|
-
|
|
|
- mutex_lock(&hdmi.lock);
|
|
|
-
|
|
|
- if (!hdmi_mode_has_audio(hdmi.cfg.hdmi_dvi_mode)) {
|
|
|
- r = -EPERM;
|
|
|
- goto err;
|
|
|
- }
|
|
|
-
|
|
|
- r = hdmi_wp_audio_enable(&hdmi.wp, true);
|
|
|
- if (r)
|
|
|
- goto err;
|
|
|
-
|
|
|
- mutex_unlock(&hdmi.lock);
|
|
|
- return 0;
|
|
|
-
|
|
|
-err:
|
|
|
- mutex_unlock(&hdmi.lock);
|
|
|
- return r;
|
|
|
-}
|
|
|
-
|
|
|
-static void hdmi_audio_disable(struct omap_dss_device *dssdev)
|
|
|
-{
|
|
|
- hdmi_wp_audio_enable(&hdmi.wp, false);
|
|
|
-}
|
|
|
-
|
|
|
-static int hdmi_audio_start(struct omap_dss_device *dssdev)
|
|
|
-{
|
|
|
- return hdmi4_audio_start(&hdmi.core, &hdmi.wp);
|
|
|
-}
|
|
|
-
|
|
|
-static void hdmi_audio_stop(struct omap_dss_device *dssdev)
|
|
|
-{
|
|
|
- hdmi4_audio_stop(&hdmi.core, &hdmi.wp);
|
|
|
-}
|
|
|
-
|
|
|
-static bool hdmi_audio_supported(struct omap_dss_device *dssdev)
|
|
|
-{
|
|
|
- bool r;
|
|
|
-
|
|
|
- mutex_lock(&hdmi.lock);
|
|
|
-
|
|
|
- r = hdmi_mode_has_audio(hdmi.cfg.hdmi_dvi_mode);
|
|
|
-
|
|
|
- mutex_unlock(&hdmi.lock);
|
|
|
- return r;
|
|
|
-}
|
|
|
-
|
|
|
-static int hdmi_audio_config(struct omap_dss_device *dssdev,
|
|
|
- struct omap_dss_audio *audio)
|
|
|
-{
|
|
|
- int r;
|
|
|
- u32 pclk = hdmi.cfg.timings.pixelclock;
|
|
|
-
|
|
|
- mutex_lock(&hdmi.lock);
|
|
|
-
|
|
|
- if (!hdmi_mode_has_audio(hdmi.cfg.hdmi_dvi_mode)) {
|
|
|
- r = -EPERM;
|
|
|
- goto err;
|
|
|
- }
|
|
|
-
|
|
|
- r = hdmi4_audio_config(&hdmi.core, &hdmi.wp, audio, pclk);
|
|
|
- if (r)
|
|
|
- goto err;
|
|
|
-
|
|
|
- mutex_unlock(&hdmi.lock);
|
|
|
- return 0;
|
|
|
-
|
|
|
-err:
|
|
|
- mutex_unlock(&hdmi.lock);
|
|
|
- return r;
|
|
|
-}
|
|
|
-#else
|
|
|
-static int hdmi_audio_enable(struct omap_dss_device *dssdev)
|
|
|
-{
|
|
|
- return -EPERM;
|
|
|
-}
|
|
|
-
|
|
|
-static void hdmi_audio_disable(struct omap_dss_device *dssdev)
|
|
|
-{
|
|
|
-}
|
|
|
-
|
|
|
-static int hdmi_audio_start(struct omap_dss_device *dssdev)
|
|
|
-{
|
|
|
- return -EPERM;
|
|
|
-}
|
|
|
-
|
|
|
-static void hdmi_audio_stop(struct omap_dss_device *dssdev)
|
|
|
-{
|
|
|
-}
|
|
|
-
|
|
|
-static bool hdmi_audio_supported(struct omap_dss_device *dssdev)
|
|
|
-{
|
|
|
- return false;
|
|
|
-}
|
|
|
-
|
|
|
-static int hdmi_audio_config(struct omap_dss_device *dssdev,
|
|
|
- struct omap_dss_audio *audio)
|
|
|
-{
|
|
|
- return -EPERM;
|
|
|
-}
|
|
|
-#endif
|
|
|
-
|
|
|
static int hdmi_set_infoframe(struct omap_dss_device *dssdev,
|
|
|
const struct hdmi_avi_infoframe *avi)
|
|
|
{
|
|
@@ -591,13 +485,6 @@ static const struct omapdss_hdmi_ops hdmi_ops = {
|
|
|
.read_edid = hdmi_read_edid,
|
|
|
.set_infoframe = hdmi_set_infoframe,
|
|
|
.set_hdmi_mode = hdmi_set_hdmi_mode,
|
|
|
-
|
|
|
- .audio_enable = hdmi_audio_enable,
|
|
|
- .audio_disable = hdmi_audio_disable,
|
|
|
- .audio_start = hdmi_audio_start,
|
|
|
- .audio_stop = hdmi_audio_stop,
|
|
|
- .audio_supported = hdmi_audio_supported,
|
|
|
- .audio_config = hdmi_audio_config,
|
|
|
};
|
|
|
|
|
|
static void hdmi_init_output(struct platform_device *pdev)
|