aboutsummaryrefslogtreecommitdiffstats
path: root/include/video/omapdss.h
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2013-05-24 06:20:17 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2013-06-17 07:01:00 -0400
commit0b450c31317914feb39616cb553b67c170aaf3d0 (patch)
tree098f3b4ff07fedb60392a562e9a73a25588069c7 /include/video/omapdss.h
parentfb8efa49660ea450ad632c9d8b70f12e4a43a495 (diff)
OMAPDSS: HDMI: Add ops
Add "ops" style method for using HDMI functionality. Ops style calls will allow us to have arbitrarily long display pipelines, where each entity can call ops in the previous display entity. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'include/video/omapdss.h')
-rw-r--r--include/video/omapdss.h44
1 files changed, 39 insertions, 5 deletions
diff --git a/include/video/omapdss.h b/include/video/omapdss.h
index adb103633bd1..709e8015f324 100644
--- a/include/video/omapdss.h
+++ b/include/video/omapdss.h
@@ -172,6 +172,11 @@ enum omap_dss_audio_state {
172 OMAP_DSS_AUDIO_PLAYING, 172 OMAP_DSS_AUDIO_PLAYING,
173}; 173};
174 174
175struct omap_dss_audio {
176 struct snd_aes_iec958 *iec;
177 struct snd_cea_861_aud_if *cea;
178};
179
175enum omap_dss_rotation_type { 180enum omap_dss_rotation_type {
176 OMAP_DSS_ROT_DMA = 1 << 0, 181 OMAP_DSS_ROT_DMA = 1 << 0,
177 OMAP_DSS_ROT_VRFB = 1 << 1, 182 OMAP_DSS_ROT_VRFB = 1 << 1,
@@ -653,6 +658,39 @@ struct omapdss_atv_ops {
653 u32 (*get_wss)(struct omap_dss_device *dssdev); 658 u32 (*get_wss)(struct omap_dss_device *dssdev);
654}; 659};
655 660
661struct omapdss_hdmi_ops {
662 int (*connect)(struct omap_dss_device *dssdev,
663 struct omap_dss_device *dst);
664 void (*disconnect)(struct omap_dss_device *dssdev,
665 struct omap_dss_device *dst);
666
667 int (*enable)(struct omap_dss_device *dssdev);
668 void (*disable)(struct omap_dss_device *dssdev);
669
670 int (*check_timings)(struct omap_dss_device *dssdev,
671 struct omap_video_timings *timings);
672 void (*set_timings)(struct omap_dss_device *dssdev,
673 struct omap_video_timings *timings);
674 void (*get_timings)(struct omap_dss_device *dssdev,
675 struct omap_video_timings *timings);
676
677 int (*read_edid)(struct omap_dss_device *dssdev, u8 *buf, int len);
678 bool (*detect)(struct omap_dss_device *dssdev);
679
680 /*
681 * Note: These functions might sleep. Do not call while
682 * holding a spinlock/readlock.
683 */
684 int (*audio_enable)(struct omap_dss_device *dssdev);
685 void (*audio_disable)(struct omap_dss_device *dssdev);
686 bool (*audio_supported)(struct omap_dss_device *dssdev);
687 int (*audio_config)(struct omap_dss_device *dssdev,
688 struct omap_dss_audio *audio);
689 /* Note: These functions may not sleep */
690 int (*audio_start)(struct omap_dss_device *dssdev);
691 void (*audio_stop)(struct omap_dss_device *dssdev);
692};
693
656struct omap_dss_device { 694struct omap_dss_device {
657 /* old device, to be removed */ 695 /* old device, to be removed */
658 struct device old_dev; 696 struct device old_dev;
@@ -722,6 +760,7 @@ struct omap_dss_device {
722 const struct omapdss_dpi_ops *dpi; 760 const struct omapdss_dpi_ops *dpi;
723 const struct omapdss_sdi_ops *sdi; 761 const struct omapdss_sdi_ops *sdi;
724 const struct omapdss_dvi_ops *dvi; 762 const struct omapdss_dvi_ops *dvi;
763 const struct omapdss_hdmi_ops *hdmi;
725 const struct omapdss_atv_ops *atv; 764 const struct omapdss_atv_ops *atv;
726 } ops; 765 } ops;
727 766
@@ -759,11 +798,6 @@ struct omap_dss_hdmi_data
759 int hpd_gpio; 798 int hpd_gpio;
760}; 799};
761 800
762struct omap_dss_audio {
763 struct snd_aes_iec958 *iec;
764 struct snd_cea_861_aud_if *cea;
765};
766
767struct omap_dss_driver { 801struct omap_dss_driver {
768 struct device_driver driver; 802 struct device_driver driver;
769 803