diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/video/omapdss.h | 34 |
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 | ||
52 | struct omap_dss_device; | 52 | struct omap_dss_device; |
53 | struct omap_overlay_manager; | 53 | struct omap_overlay_manager; |
54 | struct snd_aes_iec958; | ||
55 | struct snd_cea_861_aud_if; | ||
54 | 56 | ||
55 | enum omap_display_type { | 57 | enum 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 | ||
163 | enum 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 */ |
162 | enum omap_dss_overlay_managers { | 171 | enum 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 | ||
609 | struct omap_dss_audio { | ||
610 | struct snd_aes_iec958 *iec; | ||
611 | struct snd_cea_861_aud_if *cea; | ||
612 | }; | ||
613 | |||
598 | struct omap_dss_driver { | 614 | struct 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 | ||
647 | int omap_dss_register_driver(struct omap_dss_driver *); | 681 | int omap_dss_register_driver(struct omap_dss_driver *); |