summaryrefslogtreecommitdiff
path: root/drivers/media
diff options
context:
space:
mode:
authorDavid Sin <davidsin@ti.com>2010-06-29 11:09:05 -0500
committerRicardo Perez Olivares <x0081762@ti.com>2010-09-14 19:26:28 -0500
commit777ee13a1951ffb62aec1aae5d652b886cd3cfdf (patch)
treec9e1ed0262b1445b70fe2eeefacbf9afd56ed0de /drivers/media
parent12163971f239f1d5cf6f3e8ff492d6cfef20866a (diff)
TILER: Replace dsb calls with wmb for es2.0
This patch will resolve the data inconsistency problems seen in omap 4 es2.0. For es1.0, we were creating a memory barrier using dsb() around the PAT reg accesses. Additionally, we have added wmb() calls before the call to the PAT refill function to ensure that the data reaches the main memory beforehand. Signed-off-by: David Sin <davidsin@ti.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/dmm/dmm.c10
-rw-r--r--drivers/media/video/tiler/tiler.c8
2 files changed, 9 insertions, 9 deletions
diff --git a/drivers/media/video/dmm/dmm.c b/drivers/media/video/dmm/dmm.c
index 463cc9953f9b..8663b36a5e72 100644
--- a/drivers/media/video/dmm/dmm.c
+++ b/drivers/media/video/dmm/dmm.c
@@ -104,7 +104,7 @@ s32 dmm_pat_refill(struct dmm *dmm, struct pat *pd, enum pat_mode mode)
v = __raw_readl(r);
w = (v & (~(BF(7, 0)))) | ((((s8)pd->area.x0) << 0) & BF(7, 0));
__raw_writel(w, r);
- dsb();
+ wmb();
#ifdef __DEBUG__
printk(KERN_NOTICE "\nx0=(%d),y0=(%d),x1=(%d),y1=(%d)\n",
@@ -117,7 +117,7 @@ s32 dmm_pat_refill(struct dmm *dmm, struct pat *pd, enum pat_mode mode)
/* First, clear the DMM_PAT_IRQSTATUS register */
r = (void __iomem *)((u32)dmm->base | (u32)DMM_PAT_IRQSTATUS);
__raw_writel(0xFFFFFFFF, r);
- dsb();
+ wmb();
r = (void __iomem *)((u32)dmm->base | (u32)DMM_PAT_IRQSTATUS_RAW);
v = 0xFFFFFFFF;
@@ -134,7 +134,7 @@ s32 dmm_pat_refill(struct dmm *dmm, struct pat *pd, enum pat_mode mode)
/* Apply 4 bit left shft to counter the 4 bit right shift */
w = (v & (~(BF(31, 4)))) | ((((u32)(pd->data >> 4)) << 4) & BF(31, 4));
__raw_writel(w, r);
- dsb();
+ wmb();
/* Read back PAT_DATA__0 to see if write was successful */
v = 0x0;
@@ -164,7 +164,7 @@ s32 dmm_pat_refill(struct dmm *dmm, struct pat *pd, enum pat_mode mode)
v = __raw_readl(r);
w = (v & (~(BF(0, 0)))) | ((((u32)pd->ctrl.start) << 0) & BF(0, 0));
__raw_writel(w, r);
- dsb();
+ wmb();
/*
* Now, check if PAT_IRQSTATUS_RAW has been
@@ -180,7 +180,7 @@ s32 dmm_pat_refill(struct dmm *dmm, struct pat *pd, enum pat_mode mode)
/* Again, clear the DMM_PAT_IRQSTATUS register */
r = (void __iomem *)((u32)dmm->base | (u32)DMM_PAT_IRQSTATUS);
__raw_writel(0xFFFFFFFF, r);
- dsb();
+ wmb();
r = (void __iomem *)((u32)dmm->base | (u32)DMM_PAT_IRQSTATUS_RAW);
v = 0xFFFFFFFF;
diff --git a/drivers/media/video/tiler/tiler.c b/drivers/media/video/tiler/tiler.c
index fdf281cf0418..3b6cef37ac65 100644
--- a/drivers/media/video/tiler/tiler.c
+++ b/drivers/media/video/tiler/tiler.c
@@ -69,7 +69,7 @@ struct process_info {
struct gid_info {
struct list_head by_pid; /* other groups */
struct list_head areas; /* all areas in this pid/gid */
- struct list_head reserved; /* areas pre-reserved */
+ struct list_head reserved; /* areas pre-reserved */
struct list_head onedim; /* all 1D areas in this pid/gid */
u32 gid; /* group ID */
struct process_info *pi; /* parent */
@@ -278,11 +278,11 @@ static s32 __analize_area(enum tiler_fmt fmt, u32 width, u32 height,
* @param offs Offset of the block (within alignment)
* @param ai Pointer to area info
* @param next Pointer to the variable where the next block
- * will be stored. The block should be inserted
- * before this block.
+ * will be stored. The block should be inserted
+ * before this block.
*
* @return the end coordinate (x1 + 1) where a block would fit,
- * or 0 if it does not fit.
+ * or 0 if it does not fit.
*
* (must have mutex)
*/