aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJimmy Rubin <jimmy.rubin@stericsson.com>2011-04-26 09:52:53 +0200
committerJonas ABERG <jonas.aberg@stericsson.com>2011-05-02 11:11:38 +0200
commitdd1ef071f4644db133318e780849c241261f77f2 (patch)
tree2ea4757b00a075742e0f91ba9379f2f72bd7f7ef /drivers
parentb66a99c66f76dea0b83301cb4de1007625a71965 (diff)
video: av8100: Add HDMI support for U5500
This patch adds support for HDMI on S5500 devices. Trig method I2SDAT3 is used. ST-Ericsson ID: 254484 ST-Ericsson Linux next: Not tested, ER 282779 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Iddda36e2c03bf09641800e652040aae104f27e27 Signed-off-by: Jimmy Rubin <jimmy.rubin@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/21580 Reviewed-by: QATOOLS Reviewed-by: QATEST Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/av8100/av8100.c12
-rw-r--r--drivers/video/mcde/mcde_hw.c13
2 files changed, 12 insertions, 13 deletions
diff --git a/drivers/video/av8100/av8100.c b/drivers/video/av8100/av8100.c
index b2920f277ac..8cce4b23035 100644
--- a/drivers/video/av8100/av8100.c
+++ b/drivers/video/av8100/av8100.c
@@ -118,11 +118,6 @@
#define MCLK_RNG_76_93 13
#define MCLK_RNG_85_104 14
#define MCLK_RNG_94_115 15
-/*
- * Until there is an API for obtaining the input master clock
- * frequency, the register value is hard coded.
- */
-#define MCLK_FREQ MCLK_RNG_31_38
DEFINE_MUTEX(av8100_hw_mutex);
#define LOCK_AV8100_HW mutex_lock(&av8100_hw_mutex)
@@ -1831,7 +1826,7 @@ static int av8100_powerup1(void)
udelay(AV8100_WATTIME_100US);
retval = av8100_reg_stby_w(AV8100_STANDBY_CPD_LOW,
- AV8100_STANDBY_STBY_HIGH, MCLK_FREQ);
+ AV8100_STANDBY_STBY_HIGH, pdata->mclk_freq);
if (retval) {
dev_err(av8100dev, "%s reg_wr err 3\n", __func__);
goto av8100_powerup1_err;
@@ -1840,7 +1835,7 @@ static int av8100_powerup1(void)
msleep(AV8100_WAITTIME_1MS);
retval = av8100_reg_stby_w(AV8100_STANDBY_CPD_LOW,
- AV8100_STANDBY_STBY_LOW, MCLK_FREQ);
+ AV8100_STANDBY_STBY_LOW, pdata->mclk_freq);
if (retval) {
dev_err(av8100dev, "%s reg_wr err 4\n", __func__);
goto av8100_powerup1_err;
@@ -1894,10 +1889,11 @@ av8100_powerup1_err:
static int av8100_powerup2(void)
{
int retval;
+ struct av8100_platform_data *pdata = av8100dev->platform_data;
/* Master clock timing, running, search for plug */
retval = av8100_reg_stby_w(AV8100_STANDBY_CPD_HIGH,
- AV8100_STANDBY_STBY_HIGH, MCLK_FREQ);
+ AV8100_STANDBY_STBY_HIGH, pdata->mclk_freq);
if (retval) {
dev_err(av8100dev,
"Failed to write the value to av8100 register\n");
diff --git a/drivers/video/mcde/mcde_hw.c b/drivers/video/mcde/mcde_hw.c
index ab0138e67d9..596fe759fc9 100644
--- a/drivers/video/mcde/mcde_hw.c
+++ b/drivers/video/mcde/mcde_hw.c
@@ -2329,13 +2329,16 @@ static void chnl_update_continous(struct mcde_chnl_state *chnl)
if (!chnl->continous_running) {
if (chnl->transactionid_regs < chnl->transactionid)
chnl_update_registers(chnl);
- if (chnl->port.sync_src == MCDE_SYNCSRC_TE0)
+ if (chnl->port.sync_src == MCDE_SYNCSRC_TE0) {
mcde_wfld(MCDE_CRC, SYCEN0, true);
- else if (chnl->port.sync_src == MCDE_SYNCSRC_TE1) {
- if (hardware_version == MCDE_CHIP_VERSION_3_0_8)
+ } else if (chnl->port.sync_src == MCDE_SYNCSRC_TE1) {
+ if (hardware_version == MCDE_CHIP_VERSION_3_0_8) {
mcde_wfld(MCDE_VSCRC1, VSSEL, 1);
-
- mcde_wfld(MCDE_CRC, SYCEN1, true);
+ mcde_wfld(MCDE_CRC, SYCEN1, true);
+ } else {
+ mcde_wfld(MCDE_VSCRC1, VSSEL, 0);
+ mcde_wfld(MCDE_CRC, SYCEN0, true);
+ }
}
chnl->continous_running = true;