summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev/omap2/dss/hdmi_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/fbdev/omap2/dss/hdmi_common.c')
-rw-r--r--drivers/video/fbdev/omap2/dss/hdmi_common.c148
1 files changed, 0 insertions, 148 deletions
diff --git a/drivers/video/fbdev/omap2/dss/hdmi_common.c b/drivers/video/fbdev/omap2/dss/hdmi_common.c
deleted file mode 100644
index 1b8fcc6c4..000000000
--- a/drivers/video/fbdev/omap2/dss/hdmi_common.c
+++ /dev/null
@@ -1,148 +0,0 @@
-
-#define DSS_SUBSYS_NAME "HDMI"
-
-#include <linux/kernel.h>
-#include <linux/err.h>
-#include <linux/of.h>
-#include <video/omapdss.h>
-
-#include "hdmi.h"
-
-int hdmi_parse_lanes_of(struct platform_device *pdev, struct device_node *ep,
- struct hdmi_phy_data *phy)
-{
- struct property *prop;
- int r, len;
-
- prop = of_find_property(ep, "lanes", &len);
- if (prop) {
- u32 lanes[8];
-
- if (len / sizeof(u32) != ARRAY_SIZE(lanes)) {
- dev_err(&pdev->dev, "bad number of lanes\n");
- return -EINVAL;
- }
-
- r = of_property_read_u32_array(ep, "lanes", lanes,
- ARRAY_SIZE(lanes));
- if (r) {
- dev_err(&pdev->dev, "failed to read lane data\n");
- return r;
- }
-
- r = hdmi_phy_parse_lanes(phy, lanes);
- if (r) {
- dev_err(&pdev->dev, "failed to parse lane data\n");
- return r;
- }
- } else {
- static const u32 default_lanes[] = { 0, 1, 2, 3, 4, 5, 6, 7 };
-
- r = hdmi_phy_parse_lanes(phy, default_lanes);
- if (WARN_ON(r)) {
- dev_err(&pdev->dev, "failed to parse lane data\n");
- return r;
- }
- }
-
- return 0;
-}
-
-int hdmi_compute_acr(u32 pclk, u32 sample_freq, u32 *n, u32 *cts)
-{
- u32 deep_color;
- bool deep_color_correct = false;
-
- if (n == NULL || cts == NULL)
- return -EINVAL;
-
- /* TODO: When implemented, query deep color mode here. */
- deep_color = 100;
-
- /*
- * When using deep color, the default N value (as in the HDMI
- * specification) yields to an non-integer CTS. Hence, we
- * modify it while keeping the restrictions described in
- * section 7.2.1 of the HDMI 1.4a specification.
- */
- switch (sample_freq) {
- case 32000:
- case 48000:
- case 96000:
- case 192000:
- if (deep_color == 125)
- if (pclk == 27027000 || pclk == 74250000)
- deep_color_correct = true;
- if (deep_color == 150)
- if (pclk == 27027000)
- deep_color_correct = true;
- break;
- case 44100:
- case 88200:
- case 176400:
- if (deep_color == 125)
- if (pclk == 27027000)
- deep_color_correct = true;
- break;
- default:
- return -EINVAL;
- }
-
- if (deep_color_correct) {
- switch (sample_freq) {
- case 32000:
- *n = 8192;
- break;
- case 44100:
- *n = 12544;
- break;
- case 48000:
- *n = 8192;
- break;
- case 88200:
- *n = 25088;
- break;
- case 96000:
- *n = 16384;
- break;
- case 176400:
- *n = 50176;
- break;
- case 192000:
- *n = 32768;
- break;
- default:
- return -EINVAL;
- }
- } else {
- switch (sample_freq) {
- case 32000:
- *n = 4096;
- break;
- case 44100:
- *n = 6272;
- break;
- case 48000:
- *n = 6144;
- break;
- case 88200:
- *n = 12544;
- break;
- case 96000:
- *n = 12288;
- break;
- case 176400:
- *n = 25088;
- break;
- case 192000:
- *n = 24576;
- break;
- default:
- return -EINVAL;
- }
- }
- /* Calculate CTS. See HDMI 1.3a or 1.4a specifications */
- *cts = (pclk/1000) * (*n / 128) * deep_color / (sample_freq / 10);
-
- return 0;
-}