diff options
author | Alan Tull <alan.tull@freescale.com> | 2011-10-25 15:41:55 -0500 |
---|---|---|
committer | Jason Liu <r64343@freescale.com> | 2012-01-09 21:03:17 +0800 |
commit | 809c22138d11d04398c3a34887828217d0495791 (patch) | |
tree | 60efa64045c8dfe0f1558304d038eff82f512041 /drivers/video | |
parent | 495116168d8cbd4312c0902391e6d09c3c2eb681 (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.c | 10 |
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)) { |