diff options
author | Quinn Jensen <quinn.jensen@freescale.com> | 2007-10-24 21:21:18 -0600 |
---|---|---|
committer | Quinn Jensen <quinn.jensen@freescale.com> | 2007-10-24 21:21:18 -0600 |
commit | 9c18a985cdae71bdcb58d8a606a63f08122d1eae (patch) | |
tree | 7841efb63873c344cda1a76c30255319bf7fc277 /drivers/mxc/vpu/mxc_vpu.c | |
parent | f04a23eb983a5994005a7aa2c09ef7d7fb9158dc (diff) |
CR ENGR00038129: Add vpu latency-hiding control. Fixes an mpeg4 pending
Patch for CR ENGR00038129: Add vpu latency-hiding control. Fixes an
mpeg4 pending issue on MX27 TO2. Applies to the linux 2.6.22 kernel
for MX platforms.
http://www.bitshrine.org/gpp/linux-2.6.22-mx-CR-ENGR00038129-Add-vpu-latency-hiding-con.patch
Diffstat (limited to 'drivers/mxc/vpu/mxc_vpu.c')
-rw-r--r-- | drivers/mxc/vpu/mxc_vpu.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/mxc/vpu/mxc_vpu.c b/drivers/mxc/vpu/mxc_vpu.c index d78b4700f531..48ffe3659f63 100644 --- a/drivers/mxc/vpu/mxc_vpu.c +++ b/drivers/mxc/vpu/mxc_vpu.c @@ -271,6 +271,31 @@ static int vpu_ioctl(struct inode *inode, struct file *filp, u_int cmd, codec_done = 0; break; } + /* set/clear LHD (Latency Hiding Disable) bit in ESDCFG0 reg. + Tends to fix MPEG4 issue on MX27 TO2 */ + case VPU_IOC_LHD: + { + u_int disable = (u_int) arg; + u_int reg; + u_int reg_addr; + + reg_addr = IO_ADDRESS(SDRAMC_BASE_ADDR + 0x10); + reg = __raw_readl(reg_addr); + pr_debug("ESDCFG0: [ 0x%08x ]\n", reg); + + if (disable == 0) { + __raw_writel(reg & ~0x00000020, reg_addr); + pr_debug("Latency Hiding Disable\n"); + } else { + __raw_writel(reg | 0x00000020, reg_addr); + pr_debug("Latency Hiding Enable\n"); + } + + pr_debug("ESDCFG0: [ 0x%08x ]\n", + __raw_readl(reg_addr)); + + break; + } case VPU_IOC_VL2CC_FLUSH: if (cpu_is_mx32()) { vl2cc_flush(); |