diff options
Diffstat (limited to 'drivers/video/omap2/dss/hdmi.c')
-rw-r--r-- | drivers/video/omap2/dss/hdmi.c | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/drivers/video/omap2/dss/hdmi.c b/drivers/video/omap2/dss/hdmi.c index f7e2ac6861b6..0e9ecd691c5c 100644 --- a/drivers/video/omap2/dss/hdmi.c +++ b/drivers/video/omap2/dss/hdmi.c | |||
@@ -37,12 +37,10 @@ | |||
37 | #include <video/omapdss.h> | 37 | #include <video/omapdss.h> |
38 | 38 | ||
39 | #include "ti_hdmi.h" | 39 | #include "ti_hdmi.h" |
40 | #include "ti_hdmi_4xxx_ip.h" | ||
40 | #include "dss.h" | 41 | #include "dss.h" |
41 | #include "dss_features.h" | 42 | #include "dss_features.h" |
42 | 43 | ||
43 | #define HDMI_CORE_SYS 0x400 | ||
44 | #define HDMI_CORE_AV 0x900 | ||
45 | |||
46 | /* HDMI EDID Length move this */ | 44 | /* HDMI EDID Length move this */ |
47 | #define HDMI_EDID_MAX_LENGTH 256 | 45 | #define HDMI_EDID_MAX_LENGTH 256 |
48 | #define EDID_TIMING_DESCRIPTOR_SIZE 0x12 | 46 | #define EDID_TIMING_DESCRIPTOR_SIZE 0x12 |
@@ -493,7 +491,8 @@ static int hdmi_power_on_full(struct omap_dss_device *dssdev) | |||
493 | goto err_phy_enable; | 491 | goto err_phy_enable; |
494 | } | 492 | } |
495 | 493 | ||
496 | hdmi.ip_data.ops->video_configure(&hdmi.ip_data); | 494 | hdmi4_configure(&hdmi.ip_data.core, &hdmi.ip_data.wp, |
495 | &hdmi.ip_data.cfg); | ||
497 | 496 | ||
498 | /* bypass TV gamma table */ | 497 | /* bypass TV gamma table */ |
499 | dispc_enable_gamma_table(0); | 498 | dispc_enable_gamma_table(0); |
@@ -594,7 +593,7 @@ static void hdmi_dump_regs(struct seq_file *s) | |||
594 | hdmi_wp_dump(&hdmi.ip_data.wp, s); | 593 | hdmi_wp_dump(&hdmi.ip_data.wp, s); |
595 | hdmi_pll_dump(&hdmi.ip_data.pll, s); | 594 | hdmi_pll_dump(&hdmi.ip_data.pll, s); |
596 | hdmi_phy_dump(&hdmi.ip_data.phy, s); | 595 | hdmi_phy_dump(&hdmi.ip_data.phy, s); |
597 | hdmi.ip_data.ops->dump_core(&hdmi.ip_data, s); | 596 | hdmi4_core_dump(&hdmi.ip_data.core, s); |
598 | 597 | ||
599 | hdmi_runtime_put(); | 598 | hdmi_runtime_put(); |
600 | mutex_unlock(&hdmi.lock); | 599 | mutex_unlock(&hdmi.lock); |
@@ -609,7 +608,7 @@ static int read_edid(u8 *buf, int len) | |||
609 | r = hdmi_runtime_get(); | 608 | r = hdmi_runtime_get(); |
610 | BUG_ON(r); | 609 | BUG_ON(r); |
611 | 610 | ||
612 | r = hdmi.ip_data.ops->read_edid(&hdmi.ip_data, buf, len); | 611 | r = hdmi4_read_edid(&hdmi.ip_data.core, buf, len); |
613 | 612 | ||
614 | hdmi_runtime_put(); | 613 | hdmi_runtime_put(); |
615 | mutex_unlock(&hdmi.lock); | 614 | mutex_unlock(&hdmi.lock); |
@@ -813,7 +812,6 @@ static bool hdmi_mode_has_audio(void) | |||
813 | else | 812 | else |
814 | return false; | 813 | return false; |
815 | } | 814 | } |
816 | |||
817 | #endif | 815 | #endif |
818 | 816 | ||
819 | static int hdmi_connect(struct omap_dss_device *dssdev, | 817 | static int hdmi_connect(struct omap_dss_device *dssdev, |
@@ -822,8 +820,6 @@ static int hdmi_connect(struct omap_dss_device *dssdev, | |||
822 | struct omap_overlay_manager *mgr; | 820 | struct omap_overlay_manager *mgr; |
823 | int r; | 821 | int r; |
824 | 822 | ||
825 | dss_init_hdmi_ip_ops(&hdmi.ip_data, omapdss_get_version()); | ||
826 | |||
827 | r = hdmi_init_regulator(); | 823 | r = hdmi_init_regulator(); |
828 | if (r) | 824 | if (r) |
829 | return r; | 825 | return r; |
@@ -914,12 +910,12 @@ static void hdmi_audio_disable(struct omap_dss_device *dssdev) | |||
914 | 910 | ||
915 | static int hdmi_audio_start(struct omap_dss_device *dssdev) | 911 | static int hdmi_audio_start(struct omap_dss_device *dssdev) |
916 | { | 912 | { |
917 | return hdmi.ip_data.ops->audio_start(&hdmi.ip_data); | 913 | return hdmi4_audio_start(&hdmi.ip_data.core, &hdmi.ip_data.wp); |
918 | } | 914 | } |
919 | 915 | ||
920 | static void hdmi_audio_stop(struct omap_dss_device *dssdev) | 916 | static void hdmi_audio_stop(struct omap_dss_device *dssdev) |
921 | { | 917 | { |
922 | hdmi.ip_data.ops->audio_stop(&hdmi.ip_data); | 918 | hdmi4_audio_stop(&hdmi.ip_data.core, &hdmi.ip_data.wp); |
923 | } | 919 | } |
924 | 920 | ||
925 | static bool hdmi_audio_supported(struct omap_dss_device *dssdev) | 921 | static bool hdmi_audio_supported(struct omap_dss_device *dssdev) |
@@ -946,7 +942,7 @@ static int hdmi_audio_config(struct omap_dss_device *dssdev, | |||
946 | goto err; | 942 | goto err; |
947 | } | 943 | } |
948 | 944 | ||
949 | r = hdmi.ip_data.ops->audio_config(&hdmi.ip_data, audio); | 945 | r = hdmi4_audio_config(&hdmi.ip_data.core, &hdmi.ip_data.wp, audio); |
950 | if (r) | 946 | if (r) |
951 | goto err; | 947 | goto err; |
952 | 948 | ||
@@ -1053,6 +1049,10 @@ static int omapdss_hdmihw_probe(struct platform_device *pdev) | |||
1053 | if (r) | 1049 | if (r) |
1054 | return r; | 1050 | return r; |
1055 | 1051 | ||
1052 | r = hdmi4_core_init(pdev, &hdmi.ip_data.core); | ||
1053 | if (r) | ||
1054 | return r; | ||
1055 | |||
1056 | r = hdmi_get_clocks(pdev); | 1056 | r = hdmi_get_clocks(pdev); |
1057 | if (r) { | 1057 | if (r) { |
1058 | DSSERR("can't get clocks\n"); | 1058 | DSSERR("can't get clocks\n"); |
@@ -1061,9 +1061,6 @@ static int omapdss_hdmihw_probe(struct platform_device *pdev) | |||
1061 | 1061 | ||
1062 | pm_runtime_enable(&pdev->dev); | 1062 | pm_runtime_enable(&pdev->dev); |
1063 | 1063 | ||
1064 | hdmi.ip_data.core_sys_offset = HDMI_CORE_SYS; | ||
1065 | hdmi.ip_data.core_av_offset = HDMI_CORE_AV; | ||
1066 | |||
1067 | hdmi_init_output(pdev); | 1064 | hdmi_init_output(pdev); |
1068 | 1065 | ||
1069 | dss_debugfs_create_file("hdmi", hdmi_dump_regs); | 1066 | dss_debugfs_create_file("hdmi", hdmi_dump_regs); |