From: Li Zeng <[email protected]>

Add support for updated msvdx firmware to FW1.00.10.1163_SS.fw

Signed-off-by: Li Zeng <[email protected]>
Signed-off-by: Hitesh K. Patel <[email protected]>
---
 drivers/staging/mrst/imgv/psb_msvdx.h     |    3 +++
 drivers/staging/mrst/imgv/psb_msvdxinit.c |    6 +++++-
 2 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/drivers/staging/mrst/imgv/psb_msvdx.h 
b/drivers/staging/mrst/imgv/psb_msvdx.h
index a702b36..8522d51 100644
--- a/drivers/staging/mrst/imgv/psb_msvdx.h
+++ b/drivers/staging/mrst/imgv/psb_msvdx.h
@@ -276,6 +276,8 @@ 
MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_MTX_MAN_CLK_ENABLE_MASK)
 #define MSVDX_CORE_CR_MMU_BANK_INDEX_OFFSET             (0x0688)
 #define MSVDX_CORE_CR_MMU_DIR_LIST_BASE_OFFSET          (0x0694)
 #define MSVDX_CORE_CR_MMU_CONTROL0_OFFSET               MSVDX_MMU_CONTROL0
+#define MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH                (0x66c)
+#define MSVDX_CORE_CR_BE_MSVDX_WDT_COMPAREMATCH                (0x678)
 
 /* RENDEC registers */
 #define MSVDX_RENDEC_CONTROL0          (0x0868)
@@ -333,6 +335,7 @@ 
MSVDX_CORE_CR_MSVDX_MAN_CLK_ENABLE_CR_MTX_MAN_CLK_ENABLE_MASK)
 
 #define MSVDX_COMMS_CORE_WTD                   (MSVDX_COMMS_AREA_ADDR - 0x08)
 #define MSVDX_COMMS_ERROR_TRIG                 (MSVDX_COMMS_AREA_ADDR - 0x08)
+#define MSVDX_COMMS_FIRMWARE_ID                        (MSVDX_COMMS_AREA_ADDR 
- 0x0C)
 #define MSVDX_COMMS_OFFSET_FLAGS               (MSVDX_COMMS_AREA_ADDR + 0x18)
 #define        MSVDX_COMMS_MSG_COUNTER                 (MSVDX_COMMS_AREA_ADDR 
- 0x04)
 #define MSVDX_COMMS_FW_STATUS                  (MSVDX_COMMS_AREA_ADDR - 0x10)
diff --git a/drivers/staging/mrst/imgv/psb_msvdxinit.c 
b/drivers/staging/mrst/imgv/psb_msvdxinit.c
index f6bb173..6e3beb8 100644
--- a/drivers/staging/mrst/imgv/psb_msvdxinit.c
+++ b/drivers/staging/mrst/imgv/psb_msvdxinit.c
@@ -521,6 +521,7 @@ int psb_setup_fw(struct drm_device *dev)
        if(IS_MDFLD(dev)) {
                PSB_WMSVDX32(0, MSVDX_COMMS_ERROR_TRIG);
                PSB_WMSVDX32(199, 0x208); /* MTX_SYSC_TIMERDIV */
+               PSB_WMSVDX32(0x014d42ab, MSVDX_COMMS_FIRMWARE_ID);
        }
        PSB_WMSVDX32(0, MSVDX_COMMS_MSG_COUNTER);
        PSB_WMSVDX32(0, MSVDX_COMMS_SIGNATURE);
@@ -917,7 +918,7 @@ int psb_msvdx_init(struct drm_device *dev)
                if( (core_rev&0xffffff ) < 0x020000 )
                        msvdx_priv->mtx_mem_size = 16*1024;
                else
-                       msvdx_priv->mtx_mem_size = 32*1024;
+                       msvdx_priv->mtx_mem_size = 40*1024;
 
                PSB_DEBUG_INIT("MSVDX: MTX mem size is 0x%08xbytes  allocate 
firmware BO size 0x%08x\n", msvdx_priv->mtx_mem_size, 
                                msvdx_priv->mtx_mem_size + 4096);
@@ -977,6 +978,9 @@ int psb_msvdx_init(struct drm_device *dev)
 
        msvdx_priv->msvdx_fw_loaded = 0; /* need to load firware */
 
+       PSB_WMSVDX32(820, MSVDX_CORE_CR_FE_MSVDX_WDT_COMPAREMATCH);
+       PSB_WMSVDX32(8200, MSVDX_CORE_CR_BE_MSVDX_WDT_COMPAREMATCH);
+
        psb_msvdx_clearirq(dev);
        psb_msvdx_enableirq(dev);
 
-- 
1.7.1

_______________________________________________
MeeGo-kernel mailing list
[email protected]
http://lists.meego.com/listinfo/meego-kernel

Reply via email to