summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorQuinn Jensen <quinn.jensen@freescale.com>2007-10-24 21:21:18 -0600
committerQuinn Jensen <quinn.jensen@freescale.com>2007-10-24 21:21:18 -0600
commit9c18a985cdae71bdcb58d8a606a63f08122d1eae (patch)
tree7841efb63873c344cda1a76c30255319bf7fc277 /drivers
parentf04a23eb983a5994005a7aa2c09ef7d7fb9158dc (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')
-rw-r--r--drivers/mxc/vpu/mxc_vpu.c25
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();