summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/video/omapdss.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/video/omapdss.h b/include/video/omapdss.h
index 1217df40cb7e..bb30242eeea1 100644
--- a/include/video/omapdss.h
+++ b/include/video/omapdss.h
@@ -51,6 +51,8 @@
51 51
52struct omap_dss_device; 52struct omap_dss_device;
53struct omap_overlay_manager; 53struct omap_overlay_manager;
54struct snd_aes_iec958;
55struct snd_cea_861_aud_if;
54 56
55enum omap_display_type { 57enum omap_display_type {
56 OMAP_DISPLAY_TYPE_NONE = 0, 58 OMAP_DISPLAY_TYPE_NONE = 0,
@@ -158,6 +160,13 @@ enum omap_dss_display_state {
158 OMAP_DSS_DISPLAY_SUSPENDED, 160 OMAP_DSS_DISPLAY_SUSPENDED,
159}; 161};
160 162
163enum omap_dss_audio_state {
164 OMAP_DSS_AUDIO_DISABLED = 0,
165 OMAP_DSS_AUDIO_ENABLED,
166 OMAP_DSS_AUDIO_CONFIGURED,
167 OMAP_DSS_AUDIO_PLAYING,
168};
169
161/* XXX perhaps this should be removed */ 170/* XXX perhaps this should be removed */
162enum omap_dss_overlay_managers { 171enum omap_dss_overlay_managers {
163 OMAP_DSS_OVL_MGR_LCD, 172 OMAP_DSS_OVL_MGR_LCD,
@@ -583,6 +592,8 @@ struct omap_dss_device {
583 592
584 enum omap_dss_display_state state; 593 enum omap_dss_display_state state;
585 594
595 enum omap_dss_audio_state audio_state;
596
586 /* platform specific */ 597 /* platform specific */
587 int (*platform_enable)(struct omap_dss_device *dssdev); 598 int (*platform_enable)(struct omap_dss_device *dssdev);
588 void (*platform_disable)(struct omap_dss_device *dssdev); 599 void (*platform_disable)(struct omap_dss_device *dssdev);
@@ -595,6 +606,11 @@ struct omap_dss_hdmi_data
595 int hpd_gpio; 606 int hpd_gpio;
596}; 607};
597 608
609struct omap_dss_audio {
610 struct snd_aes_iec958 *iec;
611 struct snd_cea_861_aud_if *cea;
612};
613
598struct omap_dss_driver { 614struct omap_dss_driver {
599 struct device_driver driver; 615 struct device_driver driver;
600 616
@@ -642,6 +658,24 @@ struct omap_dss_driver {
642 658
643 int (*read_edid)(struct omap_dss_device *dssdev, u8 *buf, int len); 659 int (*read_edid)(struct omap_dss_device *dssdev, u8 *buf, int len);
644 bool (*detect)(struct omap_dss_device *dssdev); 660 bool (*detect)(struct omap_dss_device *dssdev);
661
662 /*
663 * For display drivers that support audio. This encompasses
664 * HDMI and DisplayPort at the moment.
665 */
666 /*
667 * Note: These functions might sleep. Do not call while
668 * holding a spinlock/readlock.
669 */
670 int (*audio_enable)(struct omap_dss_device *dssdev);
671 void (*audio_disable)(struct omap_dss_device *dssdev);
672 bool (*audio_supported)(struct omap_dss_device *dssdev);
673 int (*audio_config)(struct omap_dss_device *dssdev,
674 struct omap_dss_audio *audio);
675 /* Note: These functions may not sleep */
676 int (*audio_start)(struct omap_dss_device *dssdev);
677 void (*audio_stop)(struct omap_dss_device *dssdev);
678
645}; 679};
646 680
647int omap_dss_register_driver(struct omap_dss_driver *); 681int omap_dss_register_driver(struct omap_dss_driver *);