summaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorAlan Tull <alan.tull@freescale.com>2011-10-25 15:41:55 -0500
committerJason Liu <r64343@freescale.com>2012-01-09 21:03:17 +0800
commit809c22138d11d04398c3a34887828217d0495791 (patch)
tree60efa64045c8dfe0f1558304d038eff82f512041 /drivers/video
parent495116168d8cbd4312c0902391e6d09c3c2eb681 (diff)
ENGR00160860-2 hdmi audio driver
Audio driver for i.Mx built-in HDMI Transmitter. * Uses HDMI Transmitter's built-in DMA. * Adds IEC958-style digital audio header info to the raw audio. * Gets pixel clock from the IPU driver and calculates clock regenerator values (cts and N). * Move ipu_id, and disp_id from the HDMI's platform data to the HDMI mfd's platform data. Saves them in the hdmi mfd. * Add mfd functionality to update the clock regenerator values when the hdmi changes the pixel clock rate or when requested from the audio driver with a new audio sample rate. Signed-off-by: Alan Tull <alan.tull@freescale.com>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/mxc_hdmi.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/video/mxc_hdmi.c b/drivers/video/mxc_hdmi.c
index d48170dab4ea..95083f2ebd3a 100644
--- a/drivers/video/mxc_hdmi.c
+++ b/drivers/video/mxc_hdmi.c
@@ -1137,9 +1137,6 @@ void hdmi_av_composer(struct mxc_hdmi *hdmi)
fb_mode.upper_margin + fb_mode.lower_margin +
fb_mode.vsync_len) * fb_mode.refresh;
- /* Expose pixel clock for audio driver */
- mxc_hdmi_pixel_clk = vmode->mPixelClock;
-
dev_dbg(&hdmi->pdev->dev, "final pixclk = %d\n", vmode->mPixelClock);
/* Set up HDMI_FC_INVIDCONF */
@@ -1553,6 +1550,7 @@ static int mxc_hdmi_setup(struct mxc_hdmi *hdmi)
hdmi_tx_hdcp_config(hdmi);
hdmi_phy_init(hdmi, TRUE);
hdmi_video_force_output(hdmi, FALSE);
+ hdmi_set_clk_regenerator();
return 0;
}
@@ -1599,8 +1597,8 @@ static int mxc_hdmi_disp_init(struct mxc_dispdrv_entry *disp)
if (!plat || irq < 0)
return -ENODEV;
- setting->dev_id = plat->ipu_id;
- setting->disp_id = plat->disp_id;
+ setting->dev_id = mxc_hdmi_ipu_id;
+ setting->disp_id = mxc_hdmi_disp_id;
setting->if_fmt = IPU_PIX_FMT_RGB24;
hdmi->fbi = setting->fbi;
@@ -1614,7 +1612,7 @@ static int mxc_hdmi_disp_init(struct mxc_dispdrv_entry *disp)
/* Initialize HDMI */
if (plat->init)
- plat->init(plat->ipu_id, plat->disp_id);
+ plat->init(mxc_hdmi_ipu_id, mxc_hdmi_disp_id);
hdmi->hdmi_isfr_clk = clk_get(&hdmi->pdev->dev, "hdmi_isfr_clk");
if (IS_ERR(hdmi->hdmi_isfr_clk)) {