* [PATCH 0/5] OMAP: DSS2: Video3 pipeline support for OMAP4
@ 2010-07-19 11:55 Archit Taneja
2010-07-19 11:55 ` [PATCH 1/5] OMAP: DSS2: Add Video3 pipeline in display.h Archit Taneja
0 siblings, 1 reply; 14+ messages in thread
From: Archit Taneja @ 2010-07-19 11:55 UTC (permalink / raw)
To: tomi.valkeinen; +Cc: linux-omap, Sumit Semwal
From: Sumit Semwal <sumit.semwal@ti.com>
This patch incorporates the Video3 pipeline of OMAP4 in the exisiting
DSS2 framework. It introduces the Video3 pipeline registers and adds
a new overlay object to support this pipeline.
Apart from this, bit field changes have been introduced for all
video pipeline registers on OMAP4. In particular, changes for
VID_ACCUi, VID_BUF_THRESHOLD and VID_BUF_SIZE_STATUS have been
introduced.
Sumit Semwal (4):
OMAP: DSS2: Add Video3 pipeline in display.h
OMAP: DSS2: Add Video3 pipeline functionality in DISPC
OMAP: DSS2: Add new overlay object for Video3 pipeline
OMAP: DSS2: Video3 pipeline IRQs
Mayuresh Janorkar (1):
OMAP: DSS2: Context Save and Restore of Video3 pipeline registers
---
arch/arm/plat-omap/include/plat/display.h | 7 +-
drivers/video/omap2/dss/dispc.c | 299 ++++++++++++++++++++++++++---
drivers/video/omap2/dss/manager.c | 13 +-
drivers/video/omap2/dss/overlay.c | 18 ++-
4 files changed, 302 insertions(+), 35 deletions(-)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/5] OMAP: DSS2: Add Video3 pipeline in display.h
2010-07-19 11:55 [PATCH 0/5] OMAP: DSS2: Video3 pipeline support for OMAP4 Archit Taneja
@ 2010-07-19 11:55 ` Archit Taneja
2010-07-19 11:55 ` [PATCH 2/5] OMAP: DSS2: Add Video 3 pipeline functionality in DISPC Archit Taneja
0 siblings, 1 reply; 14+ messages in thread
From: Archit Taneja @ 2010-07-19 11:55 UTC (permalink / raw)
To: tomi.valkeinen; +Cc: linux-omap, Sumit Semwal, Mukund Mittal, Archit Taneja
From: Sumit Semwal <sumit.semwal@ti.com>
Changes in display.h for enabling Video3 pipeline in DSS2 for OMAP4.
Signed-off-by: Sumit Semwal <sumit.semwal@ti.com>
Signed-off-by: Mukund Mittal <mmittal@ti.com>
Signed-off-by: Archit Taneja <archit@ti.com>
---
arch/arm/plat-omap/include/plat/display.h | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/arch/arm/plat-omap/include/plat/display.h b/arch/arm/plat-omap/include/plat/display.h
index 56e7045..d1da317
--- a/arch/arm/plat-omap/include/plat/display.h
+++ b/arch/arm/plat-omap/include/plat/display.h
@@ -62,7 +62,8 @@ enum omap_display_type {
enum omap_plane {
OMAP_DSS_GFX = 0,
OMAP_DSS_VIDEO1 = 1,
- OMAP_DSS_VIDEO2 = 2
+ OMAP_DSS_VIDEO2 = 2,
+ OMAP_DSS_VIDEO3 = 3,
};
enum omap_channel {
@@ -117,6 +118,8 @@ enum omap_color_mode {
OMAP_DSS_COLOR_RGB24P | OMAP_DSS_COLOR_YUV2 |
OMAP_DSS_COLOR_UYVY | OMAP_DSS_COLOR_ARGB32 |
OMAP_DSS_COLOR_RGBA32 | OMAP_DSS_COLOR_RGBX32,
+
+ OMAP_DSS_COLOR_VID3_OMAP3 = OMAP_DSS_COLOR_VID2_OMAP3,
};
enum omap_lcd_display_type {
--
1.6.3.3
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 2/5] OMAP: DSS2: Add Video 3 pipeline functionality in DISPC
2010-07-19 11:55 ` [PATCH 1/5] OMAP: DSS2: Add Video3 pipeline in display.h Archit Taneja
@ 2010-07-19 11:55 ` Archit Taneja
2010-07-19 11:55 ` [PATCH 3/5] OMAP: DSS2: Add new overlay object for Video3 pipeline Archit Taneja
0 siblings, 1 reply; 14+ messages in thread
From: Archit Taneja @ 2010-07-19 11:55 UTC (permalink / raw)
To: tomi.valkeinen; +Cc: linux-omap, Sumit Semwal, Mukund Mittal, Archit Taneja
From: Sumit Semwal <sumit.semwal@ti.com>
VID3 and Writeback pipeline registers have a linear relation, this patch
introduces these registers and adds Video3 pipeline support for the dispc
functions.
Signed-off-by: Sumit Semwal <sumit.semwal@ti.com>
Signed-off-by: Mukund Mittal <mmittal@ti.com>
Signed-off-by: Archit Taneja <archit@ti.com>
---
drivers/video/omap2/dss/dispc.c | 172 +++++++++++++++++++++++++++++++++-----
1 files changed, 149 insertions(+), 23 deletions(-)
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index 48167a2..00aad04
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -138,6 +138,33 @@ struct dispc_reg { u16 idx; };
#define DISPC_VID_PRELOAD(n) DISPC_REG(0x230 + (n)*0x04)
+/* DISPC Video plane, n = 0 for VID3, n = 1 for WB */
+#define DISPC_VID3_WB_REG(n, idx) DISPC_REG(0x0300 + (n)*0x200 + idx)
+
+#define DISPC_VID3_WB_ACCU0(n) DISPC_VID3_WB_REG(n, 0x0000)
+#define DISPC_VID3_WB_ACCU1(n) DISPC_VID3_WB_REG(n, 0x0004)
+#define DISPC_VID3_WB_BA0(n) DISPC_VID3_WB_REG(n, 0x0008)
+#define DISPC_VID3_WB_BA1(n) DISPC_VID3_WB_REG(n, 0x000C)
+#define DISPC_VID3_WB_ATTRIBUTES(n) DISPC_VID3_WB_REG(n, 0x0070)
+#define DISPC_VID3_WB_BUF_SIZE_STATUS(n) DISPC_VID3_WB_REG(n, 0x0088)
+#define DISPC_VID3_WB_BUF_THRESHOLD(n) DISPC_VID3_WB_REG(n, 0x008C)
+#define DISPC_VID3_WB_FIR(n) DISPC_VID3_WB_REG(n, 0x0090)
+#define DISPC_VID3_WB_PICTURE_SIZE(n) DISPC_VID3_WB_REG(n, 0x0094)
+#define DISPC_VID3_WB_PIXEL_INC(n) DISPC_VID3_WB_REG(n, 0x0098)
+#define DISPC_VID3_WB_ROW_INC(n) DISPC_VID3_WB_REG(n, 0x00A4)
+#define DISPC_VID3_WB_SIZE(n) DISPC_VID3_WB_REG(n, 0x00A8)
+
+/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
+#define DISPC_VID3_WB_FIR_COEF_H(n, i) DISPC_REG(0x0310 + (n)*0x200 + (i)*0x8)
+/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
+#define DISPC_VID3_WB_FIR_COEF_HV(n, i) DISPC_REG(0x0314 + (n)*0x200 + (i)*0x8)
+/* coef index i = {0, 1, 2, 3, 4, 5, 6, 7} */
+#define DISPC_VID3_WB_FIR_COEF_V(n, i) DISPC_REG(0x0350 + (n)*0x200 + (i)*0x4)
+/* coef index i = {0, 1, 2, 3, 4} */
+#define DISPC_VID3_WB_CONV_COEF(n, i) DISPC_REG(0x0374 + (n)*0x200 + (i)*0x4)
+
+#define DISPC_VID3_POSITION DISPC_REG(0x039C)
+#define DISPC_VID3_PRELOAD DISPC_REG(0x03A0)
#define DISPC_IRQ_MASK_ERROR (DISPC_IRQ_GFX_FIFO_UNDERFLOW | \
DISPC_IRQ_OCP_ERR | \
@@ -164,7 +191,8 @@ struct omap_dispc_isr_data {
static const struct dispc_reg dispc_reg_att[] = { DISPC_GFX_ATTRIBUTES,
DISPC_VID_ATTRIBUTES(0),
- DISPC_VID_ATTRIBUTES(1) };
+ DISPC_VID_ATTRIBUTES(1),
+ DISPC_VID3_WB_ATTRIBUTES(0) }; /* VID 3 pipeline */
struct dispc_irq_stats {
unsigned long last_reset;
@@ -603,21 +631,30 @@ static void _dispc_write_firh_reg(enum omap_plane plane, int reg, u32 value)
{
BUG_ON(plane == OMAP_DSS_GFX);
- dispc_write_reg(DISPC_VID_FIR_COEF_H(plane-1, reg), value);
+ if ((OMAP_DSS_VIDEO1 == plane) || (OMAP_DSS_VIDEO2 == plane))
+ dispc_write_reg(DISPC_VID_FIR_COEF_H(plane-1, reg), value);
+ else if (OMAP_DSS_VIDEO3 == plane)
+ dispc_write_reg(DISPC_VID3_WB_FIR_COEF_H(0, reg), value);
}
static void _dispc_write_firhv_reg(enum omap_plane plane, int reg, u32 value)
{
BUG_ON(plane == OMAP_DSS_GFX);
- dispc_write_reg(DISPC_VID_FIR_COEF_HV(plane-1, reg), value);
+ if ((OMAP_DSS_VIDEO1 == plane) || (OMAP_DSS_VIDEO2 == plane))
+ dispc_write_reg(DISPC_VID_FIR_COEF_HV(plane-1, reg), value);
+ else if (OMAP_DSS_VIDEO3 == plane)
+ dispc_write_reg(DISPC_VID3_WB_FIR_COEF_HV(0, reg), value);
}
static void _dispc_write_firv_reg(enum omap_plane plane, int reg, u32 value)
{
BUG_ON(plane == OMAP_DSS_GFX);
- dispc_write_reg(DISPC_VID_FIR_COEF_V(plane-1, reg), value);
+ if ((OMAP_DSS_VIDEO1 == plane) || (OMAP_DSS_VIDEO2 == plane))
+ dispc_write_reg(DISPC_VID_FIR_COEF_V(plane-1, reg), value);
+ else if (OMAP_DSS_VIDEO3 == plane)
+ dispc_write_reg(DISPC_VID3_WB_FIR_COEF_V(0, reg), value);
}
static void _dispc_set_scale_coef(enum omap_plane plane, int hscaleup,
@@ -801,11 +838,25 @@ static void _dispc_setup_color_conv_coef(void)
dispc_write_reg(DISPC_VID_CONV_COEF(1, 2), CVAL(ct->gcb, ct->gcr));
dispc_write_reg(DISPC_VID_CONV_COEF(1, 3), CVAL(ct->bcr, ct->by));
dispc_write_reg(DISPC_VID_CONV_COEF(1, 4), CVAL(0, ct->bcb));
-
+ if (cpu_is_omap44xx()) {
+ dispc_write_reg(DISPC_VID3_WB_CONV_COEF(0, 0),
+ CVAL(ct->rcr, ct->ry));
+ dispc_write_reg(DISPC_VID3_WB_CONV_COEF(0, 1),
+ CVAL(ct->gy, ct->rcb));
+ dispc_write_reg(DISPC_VID3_WB_CONV_COEF(0, 2),
+ CVAL(ct->gcb, ct->gcr));
+ dispc_write_reg(DISPC_VID3_WB_CONV_COEF(0, 3),
+ CVAL(ct->bcr, ct->by));
+ dispc_write_reg(DISPC_VID3_WB_CONV_COEF(0, 4),
+ CVAL(0, ct->bcb));
+ }
#undef CVAL
REG_FLD_MOD(DISPC_VID_ATTRIBUTES(0), ct->full_range, 11, 11);
REG_FLD_MOD(DISPC_VID_ATTRIBUTES(1), ct->full_range, 11, 11);
+ if (cpu_is_omap44xx())
+ REG_FLD_MOD(DISPC_VID3_WB_ATTRIBUTES(0),
+ ct->full_range, 11, 11);
}
@@ -813,7 +864,8 @@ static void _dispc_set_plane_ba0(enum omap_plane plane, u32 paddr)
{
const struct dispc_reg ba0_reg[] = { DISPC_GFX_BA0,
DISPC_VID_BA0(0),
- DISPC_VID_BA0(1) };
+ DISPC_VID_BA0(1),
+ DISPC_VID3_WB_BA0(0) };
dispc_write_reg(ba0_reg[plane], paddr);
}
@@ -821,8 +873,9 @@ static void _dispc_set_plane_ba0(enum omap_plane plane, u32 paddr)
static void _dispc_set_plane_ba1(enum omap_plane plane, u32 paddr)
{
const struct dispc_reg ba1_reg[] = { DISPC_GFX_BA1,
- DISPC_VID_BA1(0),
- DISPC_VID_BA1(1) };
+ DISPC_VID_BA1(0),
+ DISPC_VID_BA1(1),
+ DISPC_VID3_WB_BA1(0) };
dispc_write_reg(ba1_reg[plane], paddr);
}
@@ -831,7 +884,8 @@ static void _dispc_set_plane_pos(enum omap_plane plane, int x, int y)
{
const struct dispc_reg pos_reg[] = { DISPC_GFX_POSITION,
DISPC_VID_POSITION(0),
- DISPC_VID_POSITION(1) };
+ DISPC_VID_POSITION(1),
+ DISPC_VID3_POSITION };
u32 val = FLD_VAL(y, 26, 16) | FLD_VAL(x, 10, 0);
dispc_write_reg(pos_reg[plane], val);
@@ -841,7 +895,9 @@ static void _dispc_set_pic_size(enum omap_plane plane, int width, int height)
{
const struct dispc_reg siz_reg[] = { DISPC_GFX_SIZE,
DISPC_VID_PICTURE_SIZE(0),
- DISPC_VID_PICTURE_SIZE(1) };
+ DISPC_VID_PICTURE_SIZE(1),
+ DISPC_VID3_WB_PICTURE_SIZE(0) };
+
u32 val = FLD_VAL(height - 1, 26, 16) | FLD_VAL(width - 1, 10, 0);
dispc_write_reg(siz_reg[plane], val);
}
@@ -849,9 +905,9 @@ static void _dispc_set_pic_size(enum omap_plane plane, int width, int height)
static void _dispc_set_vid_size(enum omap_plane plane, int width, int height)
{
u32 val;
- const struct dispc_reg vsi_reg[] = { DISPC_VID_SIZE(0),
- DISPC_VID_SIZE(1) };
-
+ struct dispc_reg vsi_reg[] = { DISPC_VID_SIZE(0),
+ DISPC_VID_SIZE(1),
+ DISPC_VID3_WB_SIZE(0) };
BUG_ON(plane == OMAP_DSS_GFX);
val = FLD_VAL(height - 1, 26, 16) | FLD_VAL(width - 1, 10, 0);
@@ -870,13 +926,16 @@ static void _dispc_setup_global_alpha(enum omap_plane plane, u8 global_alpha)
REG_FLD_MOD(DISPC_GLOBAL_ALPHA, global_alpha, 7, 0);
else if (plane == OMAP_DSS_VIDEO2)
REG_FLD_MOD(DISPC_GLOBAL_ALPHA, global_alpha, 23, 16);
+ else if (plane == OMAP_DSS_VIDEO3)
+ REG_FLD_MOD(DISPC_GLOBAL_ALPHA, global_alpha, 31, 24);
}
static void _dispc_set_pix_inc(enum omap_plane plane, s32 inc)
{
const struct dispc_reg ri_reg[] = { DISPC_GFX_PIXEL_INC,
DISPC_VID_PIXEL_INC(0),
- DISPC_VID_PIXEL_INC(1) };
+ DISPC_VID_PIXEL_INC(1),
+ DISPC_VID3_WB_PIXEL_INC(0) };
dispc_write_reg(ri_reg[plane], inc);
}
@@ -885,7 +944,8 @@ static void _dispc_set_row_inc(enum omap_plane plane, s32 inc)
{
const struct dispc_reg ri_reg[] = { DISPC_GFX_ROW_INC,
DISPC_VID_ROW_INC(0),
- DISPC_VID_ROW_INC(1) };
+ DISPC_VID_ROW_INC(1),
+ DISPC_VID3_WB_ROW_INC(0) };
dispc_write_reg(ri_reg[plane], inc);
}
@@ -944,6 +1004,7 @@ static void _dispc_set_channel_out(enum omap_plane plane,
break;
case OMAP_DSS_VIDEO1:
case OMAP_DSS_VIDEO2:
+ case OMAP_DSS_VIDEO3:
shift = 16;
break;
default:
@@ -993,6 +1054,7 @@ void dispc_set_burst_size(enum omap_plane plane,
break;
case OMAP_DSS_VIDEO1:
case OMAP_DSS_VIDEO2:
+ case OMAP_DSS_VIDEO3:
shift = 14;
break;
default:
@@ -1056,7 +1118,8 @@ static void dispc_read_plane_fifo_sizes(void)
{
const struct dispc_reg fsz_reg[] = { DISPC_GFX_FIFO_SIZE_STATUS,
DISPC_VID_FIFO_SIZE_STATUS(0),
- DISPC_VID_FIFO_SIZE_STATUS(1) };
+ DISPC_VID_FIFO_SIZE_STATUS(1),
+ DISPC_VID3_WB_BUF_SIZE_STATUS(0) };
u32 size;
int plane;
@@ -1067,6 +1130,8 @@ static void dispc_read_plane_fifo_sizes(void)
size = FLD_GET(dispc_read_reg(fsz_reg[plane]), 8, 0);
else if (cpu_is_omap34xx())
size = FLD_GET(dispc_read_reg(fsz_reg[plane]), 10, 0);
+ else if (cpu_is_omap44xx())
+ size = FLD_GET(dispc_read_reg(fsz_reg[plane]), 15, 0);
else
BUG();
@@ -1085,7 +1150,8 @@ void dispc_setup_plane_fifo(enum omap_plane plane, u32 low, u32 high)
{
const struct dispc_reg ftrs_reg[] = { DISPC_GFX_FIFO_THRESHOLD,
DISPC_VID_FIFO_THRESHOLD(0),
- DISPC_VID_FIFO_THRESHOLD(1) };
+ DISPC_VID_FIFO_THRESHOLD(1),
+ DISPC_VID3_WB_BUF_THRESHOLD(0) };
enable_clocks(1);
DSSDBG("fifo(%d) low/high old %u/%u, new %u/%u\n",
@@ -1097,9 +1163,12 @@ void dispc_setup_plane_fifo(enum omap_plane plane, u32 low, u32 high)
if (cpu_is_omap24xx())
dispc_write_reg(ftrs_reg[plane],
FLD_VAL(high, 24, 16) | FLD_VAL(low, 8, 0));
- else
+ else if (cpu_is_omap34xx())
dispc_write_reg(ftrs_reg[plane],
FLD_VAL(high, 27, 16) | FLD_VAL(low, 11, 0));
+ else if (cpu_is_omap44xx())
+ dispc_write_reg(ftrs_reg[plane],
+ FLD_VAL(high, 31, 16) | FLD_VAL(low, 15, 0));
enable_clocks(0);
}
@@ -1118,7 +1187,8 @@ static void _dispc_set_fir(enum omap_plane plane, int hinc, int vinc)
{
u32 val;
const struct dispc_reg fir_reg[] = { DISPC_VID_FIR(0),
- DISPC_VID_FIR(1) };
+ DISPC_VID_FIR(1),
+ DISPC_VID3_WB_FIR(0) };
BUG_ON(plane == OMAP_DSS_GFX);
@@ -1133,11 +1203,15 @@ static void _dispc_set_vid_accu0(enum omap_plane plane, int haccu, int vaccu)
{
u32 val;
const struct dispc_reg ac0_reg[] = { DISPC_VID_ACCU0(0),
- DISPC_VID_ACCU0(1) };
+ DISPC_VID_ACCU0(1),
+ DISPC_VID3_WB_ACCU0(0) };
BUG_ON(plane == OMAP_DSS_GFX);
- val = FLD_VAL(vaccu, 25, 16) | FLD_VAL(haccu, 9, 0);
+ if (cpu_is_omap44xx())
+ val = FLD_VAL(vaccu, 26, 16) | FLD_VAL(haccu, 10, 0);
+ else
+ val = FLD_VAL(vaccu, 25, 16) | FLD_VAL(haccu, 9, 0);
dispc_write_reg(ac0_reg[plane-1], val);
}
@@ -1145,11 +1219,15 @@ static void _dispc_set_vid_accu1(enum omap_plane plane, int haccu, int vaccu)
{
u32 val;
const struct dispc_reg ac1_reg[] = { DISPC_VID_ACCU1(0),
- DISPC_VID_ACCU1(1) };
+ DISPC_VID_ACCU1(1),
+ DISPC_VID3_WB_ACCU1(0) };
BUG_ON(plane == OMAP_DSS_GFX);
- val = FLD_VAL(vaccu, 25, 16) | FLD_VAL(haccu, 9, 0);
+ if (cpu_is_omap44xx())
+ val = FLD_VAL(vaccu, 26, 16) | FLD_VAL(haccu, 10, 0);
+ else
+ val = FLD_VAL(vaccu, 25, 16) | FLD_VAL(haccu, 9, 0);
dispc_write_reg(ac1_reg[plane-1], val);
}
@@ -2563,6 +2641,21 @@ void dispc_dump_regs(struct seq_file *s)
DUMPREG(DISPC_VID_ACCU0(1));
DUMPREG(DISPC_VID_ACCU1(1));
+ if (cpu_is_omap44xx()) {
+ DUMPREG(DISPC_VID3_WB_BA0(0));
+ DUMPREG(DISPC_VID3_WB_BA1(0));
+ DUMPREG(DISPC_VID3_POSITION);
+ DUMPREG(DISPC_VID3_WB_SIZE(0));
+ DUMPREG(DISPC_VID3_WB_ATTRIBUTES(0));
+ DUMPREG(DISPC_VID3_WB_BUF_THRESHOLD(0));
+ DUMPREG(DISPC_VID3_WB_BUF_SIZE_STATUS(0));
+ DUMPREG(DISPC_VID3_WB_ROW_INC(0));
+ DUMPREG(DISPC_VID3_WB_PIXEL_INC(0));
+ DUMPREG(DISPC_VID3_WB_FIR(0));
+ DUMPREG(DISPC_VID3_WB_PICTURE_SIZE(0));
+ DUMPREG(DISPC_VID3_WB_ACCU0(0));
+ DUMPREG(DISPC_VID3_WB_ACCU1(0));
+ }
DUMPREG(DISPC_VID_FIR_COEF_H(0, 0));
DUMPREG(DISPC_VID_FIR_COEF_H(0, 1));
DUMPREG(DISPC_VID_FIR_COEF_H(0, 2));
@@ -2623,8 +2716,41 @@ void dispc_dump_regs(struct seq_file *s)
DUMPREG(DISPC_VID_FIR_COEF_V(1, 6));
DUMPREG(DISPC_VID_FIR_COEF_V(1, 7));
+ if (cpu_is_omap44xx()) {
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_H(0, 0));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_H(0, 1));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_H(0, 2));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_H(0, 3));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_H(0, 4));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_H(0, 5));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_H(0, 6));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_H(0, 7));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_HV(0, 0));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_HV(0, 1));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_HV(0, 2));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_HV(0, 3));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_HV(0, 4));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_HV(0, 5));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_HV(0, 6));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_HV(0, 7));
+ DUMPREG(DISPC_VID3_WB_CONV_COEF(0, 0));
+ DUMPREG(DISPC_VID3_WB_CONV_COEF(0, 1));
+ DUMPREG(DISPC_VID3_WB_CONV_COEF(0, 2));
+ DUMPREG(DISPC_VID3_WB_CONV_COEF(0, 3));
+ DUMPREG(DISPC_VID3_WB_CONV_COEF(0, 4));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_V(0, 0));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_V(0, 1));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_V(0, 2));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_V(0, 3));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_V(0, 4));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_V(0, 5));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_V(0, 6));
+ DUMPREG(DISPC_VID3_WB_FIR_COEF_V(0, 7));
+ }
DUMPREG(DISPC_VID_PRELOAD(0));
DUMPREG(DISPC_VID_PRELOAD(1));
+ if (cpu_is_omap44xx())
+ DUMPREG(DISPC_VID3_PRELOAD);
dss_clk_disable(DSS_CLK_ICK | DSS_CLK_FCK1);
#undef DUMPREG
--
1.5.4.7
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 3/5] OMAP: DSS2: Add new overlay object for Video3 pipeline
2010-07-19 11:55 ` [PATCH 2/5] OMAP: DSS2: Add Video 3 pipeline functionality in DISPC Archit Taneja
@ 2010-07-19 11:55 ` Archit Taneja
2010-07-19 11:55 ` [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs Archit Taneja
2010-07-23 5:24 ` [PATCH 3/5] OMAP: DSS2: Add new overlay object for Video3 pipeline Hiremath, Vaibhav
0 siblings, 2 replies; 14+ messages in thread
From: Archit Taneja @ 2010-07-19 11:55 UTC (permalink / raw)
To: tomi.valkeinen; +Cc: linux-omap, Sumit Semwal, Mukund Mittal, Archit Taneja
From: Sumit Semwal <sumit.semwal@ti.com>
Add new overlay object for the Video3 pipeline in overlay.c.
Signed-off-by: Sumit Semwal <sumit.semwal@ti.com>
Signed-off-by: Mukund Mittal <mmittal@ti.com>
Signed-off-by: Archit Taneja <archit@ti.com>
---
drivers/video/omap2/dss/manager.c | 13 +++++++------
drivers/video/omap2/dss/overlay.c | 18 ++++++++++++++----
2 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/drivers/video/omap2/dss/manager.c b/drivers/video/omap2/dss/manager.c
index 96073f5..bccb7b6
--- a/drivers/video/omap2/dss/manager.c
+++ b/drivers/video/omap2/dss/manager.c
@@ -35,6 +35,7 @@
#include "dss.h"
#define MAX_DSS_MANAGERS (cpu_is_omap44xx() ? 3 : 2)
+#define MAX_DSS_OVERLAYS (cpu_is_omap44xx() ? 4 : 3)
static int num_managers;
static struct list_head manager_list;
@@ -450,7 +451,7 @@ struct manager_cache_data {
static struct {
spinlock_t lock;
- struct overlay_cache_data overlay_cache[3];
+ struct overlay_cache_data overlay_cache[4];
struct manager_cache_data manager_cache[3];
bool irq_enabled;
@@ -893,7 +894,7 @@ static int configure_dispc(void)
{
struct overlay_cache_data *oc;
struct manager_cache_data *mc;
- const int num_ovls = ARRAY_SIZE(dss_cache.overlay_cache);
+ const int num_ovls = MAX_DSS_OVERLAYS;
const int num_mgrs = MAX_DSS_MANAGERS;
int i;
int r;
@@ -1000,7 +1001,7 @@ void dss_setup_partial_planes(struct omap_dss_device *dssdev,
{
struct overlay_cache_data *oc;
struct manager_cache_data *mc;
- const int num_ovls = ARRAY_SIZE(dss_cache.overlay_cache);
+ const int num_ovls = MAX_DSS_OVERLAYS;
struct omap_overlay_manager *mgr;
int i;
u16 x, y, w, h;
@@ -1132,7 +1133,7 @@ void dss_start_update(struct omap_dss_device *dssdev)
{
struct manager_cache_data *mc;
struct overlay_cache_data *oc;
- const int num_ovls = ARRAY_SIZE(dss_cache.overlay_cache);
+ const int num_ovls = MAX_DSS_OVERLAYS;
const int num_mgrs = MAX_DSS_MANAGERS;
struct omap_overlay_manager *mgr;
int i;
@@ -1162,8 +1163,8 @@ static void dss_apply_irq_handler(void *data, u32 mask)
{
struct manager_cache_data *mc;
struct overlay_cache_data *oc;
- const int num_ovls = ARRAY_SIZE(dss_cache.overlay_cache);
- const int num_mgrs = ARRAY_SIZE(dss_cache.manager_cache);
+ const int num_ovls = MAX_DSS_OVERLAYS;
+ const int num_mgrs = MAX_DSS_MANAGERS;
int i, r;
bool mgr_busy[MAX_DSS_MANAGERS];
diff --git a/drivers/video/omap2/dss/overlay.c b/drivers/video/omap2/dss/overlay.c
index 29aa157..2f8f89c
--- a/drivers/video/omap2/dss/overlay.c
+++ b/drivers/video/omap2/dss/overlay.c
@@ -36,6 +36,8 @@
#include "dss.h"
+#define MAX_DSS_OVERLAYS (cpu_is_omap44xx() ? 4 : 3)
+
static int num_overlays;
static struct list_head overlay_list;
@@ -510,11 +512,11 @@ static void omap_dss_add_overlay(struct omap_overlay *overlay)
list_add_tail(&overlay->list, &overlay_list);
}
-static struct omap_overlay *dispc_overlays[3];
+static struct omap_overlay *dispc_overlays[4];
void dss_overlay_setup_dispc_manager(struct omap_overlay_manager *mgr)
{
- mgr->num_overlays = 3;
+ mgr->num_overlays = MAX_DSS_OVERLAYS;
mgr->overlays = dispc_overlays;
}
@@ -535,7 +537,7 @@ void dss_init_overlays(struct platform_device *pdev)
num_overlays = 0;
- for (i = 0; i < 3; ++i) {
+ for (i = 0; i < MAX_DSS_OVERLAYS; ++i) {
struct omap_overlay *ovl;
ovl = kzalloc(sizeof(*ovl), GFP_KERNEL);
@@ -571,6 +573,14 @@ void dss_init_overlays(struct platform_device *pdev)
OMAP_DSS_OVL_CAP_DISPC;
ovl->info.global_alpha = 255;
break;
+ case 3:
+ ovl->name = "vid3";
+ ovl->id = OMAP_DSS_VIDEO3;
+ ovl->supported_modes = OMAP_DSS_COLOR_VID3_OMAP3;
+ ovl->caps = OMAP_DSS_OVL_CAP_SCALE |
+ OMAP_DSS_OVL_CAP_DISPC;
+ ovl->info.global_alpha = 255;
+ break;
}
ovl->set_manager = &omap_dss_set_manager;
@@ -661,7 +671,7 @@ void dss_recheck_connections(struct omap_dss_device *dssdev, bool force)
}
if (mgr) {
- for (i = 0; i < 3; i++) {
+ for (i = 0; i < MAX_DSS_OVERLAYS; i++) {
struct omap_overlay *ovl;
ovl = omap_dss_get_overlay(i);
if (!ovl->manager || force) {
--
1.5.4.7
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs
2010-07-19 11:55 ` [PATCH 3/5] OMAP: DSS2: Add new overlay object for Video3 pipeline Archit Taneja
@ 2010-07-19 11:55 ` Archit Taneja
2010-07-19 11:55 ` [PATCH 5/5] OMAP: DSS2: Context Save and Restore of Video3 pipeline registers Archit Taneja
2010-07-23 5:40 ` [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs Hiremath, Vaibhav
2010-07-23 5:24 ` [PATCH 3/5] OMAP: DSS2: Add new overlay object for Video3 pipeline Hiremath, Vaibhav
1 sibling, 2 replies; 14+ messages in thread
From: Archit Taneja @ 2010-07-19 11:55 UTC (permalink / raw)
To: tomi.valkeinen; +Cc: linux-omap, Sumit Semwal, Mukund Mittal, Archit Taneja
From: Sumit Semwal <sumit.semwal@ti.com>
Introduce Video3 pipeline IRQS for dumps and error handling
Signed-off-by: Sumit Semwal <sumit.semwal@ti.com>
Signed-off-by: Mukund Mittal <mmittal@ti.com>
Signed-off-by: Archit Taneja <archit@ti.com>
---
arch/arm/plat-omap/include/plat/display.h | 2 ++
drivers/video/omap2/dss/dispc.c | 23 ++++++++++++++++++++++-
2 files changed, 24 insertions(+), 1 deletions(-)
diff --git a/arch/arm/plat-omap/include/plat/display.h b/arch/arm/plat-omap/include/plat/display.h
index be83766..91796b6
--- a/arch/arm/plat-omap/include/plat/display.h
+++ b/arch/arm/plat-omap/include/plat/display.h
@@ -44,6 +44,8 @@
#define DISPC_IRQ_WAKEUP (1 << 16)
#define DISPC_IRQ_SYNC_LOST_2 (1 << 17)
#define DISPC_IRQ_VSYNC2 (1 << 18)
+#define DISPC_IRQ_VID3_END_WIN (1 << 19)
+#define DISPC_IRQ_VID3_FIFO_UNDERFLOW (1 << 20)
#define DISPC_IRQ_ACBIAS_COUNT_STAT2 (1 << 21)
#define DISPC_IRQ_FRAMEDONE2 (1 << 22)
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index 00aad04..8345ed7
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -173,7 +173,8 @@ struct dispc_reg { u16 idx; };
DISPC_IRQ_SYNC_LOST | \
DISPC_IRQ_SYNC_LOST_DIGIT | \
(cpu_is_omap44xx() ? \
- DISPC_IRQ_SYNC_LOST_2 : 0))
+ (DISPC_IRQ_VID3_FIFO_UNDERFLOW | \
+ DISPC_IRQ_SYNC_LOST_2) : 0))
#define DISPC_MAX_NR_ISRS 8
@@ -2540,6 +2541,8 @@ void dispc_dump_irqs(struct seq_file *s)
PIS(VSYNC2);
PIS(ACBIAS_COUNT_STAT2);
PIS(SYNC_LOST_2);
+ PIS(VID3_FIFO_UNDERFLOW);
+ PIS(VID3_END_WIN);
}
#undef PIS
}
@@ -3151,6 +3154,24 @@ static void dispc_error_worker(struct work_struct *work)
}
}
+ if (errors & DISPC_IRQ_VID3_FIFO_UNDERFLOW) {
+ DSSERR("VID3_FIFO_UNDERFLOW, disabling VID2\n");
+ for (i = 0; i < omap_dss_get_num_overlays(); ++i) {
+ struct omap_overlay *ovl;
+ ovl = omap_dss_get_overlay(i);
+
+ if (!(ovl->caps & OMAP_DSS_OVL_CAP_DISPC))
+ continue;
+
+ if (ovl->id == 3) {
+ dispc_enable_plane(ovl->id, 0);
+ dispc_go(ovl->manager->id);
+ mdelay(50);
+ break;
+ }
+ }
+ }
+
if (errors & DISPC_IRQ_SYNC_LOST) {
struct omap_overlay_manager *manager = NULL;
bool enable = false;
--
1.5.4.7
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 5/5] OMAP: DSS2: Context Save and Restore of Video3 pipeline registers
2010-07-19 11:55 ` [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs Archit Taneja
@ 2010-07-19 11:55 ` Archit Taneja
2010-07-23 5:45 ` Hiremath, Vaibhav
2010-07-23 5:40 ` [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs Hiremath, Vaibhav
1 sibling, 1 reply; 14+ messages in thread
From: Archit Taneja @ 2010-07-19 11:55 UTC (permalink / raw)
To: tomi.valkeinen
Cc: linux-omap, Mayuresh Janorkar, Mukund Mittal, Archit Taneja
From: Mayuresh Janorkar <mayur@ti.com>
Context Save and Restore of Video3 pipeline registers.
Signed-off-by: Mayuresh Janorkar <mayur@ti.com>
Signed-off-by: Mukund Mittal <mmittal@ti.com>
Signed-off-by: Archit Taneja <archit@ti.com>
---
drivers/video/omap2/dss/dispc.c | 104 +++++++++++++++++++++++++++++++++++++++
1 files changed, 104 insertions(+), 0 deletions(-)
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index 8cda961..5a6c10e
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -397,6 +397,58 @@ void dispc_save_context(void)
SR(VID_FIR_COEF_V(1, 7));
SR(VID_PRELOAD(1));
+
+ /* VID3 */
+ if (cpu_is_omap44xx()) {
+ SR(VID3_WB_BA0(0));
+ SR(VID3_WB_BA1(0));
+ SR(VID3_POSITION);
+ SR(VID3_WB_SIZE(0));
+ SR(VID3_WB_ATTRIBUTES(0));
+ SR(VID3_WB_BUF_THRESHOLD(0));
+ SR(VID3_WB_BUF_SIZE_STATUS(0));
+ SR(VID3_WB_ROW_INC(0));
+ SR(VID3_WB_PIXEL_INC(0));
+ SR(VID3_WB_FIR(0));
+ SR(VID3_WB_PICTURE_SIZE(0));
+ SR(VID3_WB_ACCU0(0));
+ SR(VID3_WB_ACCU1(0));
+
+ SR(VID3_WB_FIR_COEF_H(0, 0));
+ SR(VID3_WB_FIR_COEF_H(0, 1));
+ SR(VID3_WB_FIR_COEF_H(0, 2));
+ SR(VID3_WB_FIR_COEF_H(0, 3));
+ SR(VID3_WB_FIR_COEF_H(0, 4));
+ SR(VID3_WB_FIR_COEF_H(0, 5));
+ SR(VID3_WB_FIR_COEF_H(0, 6));
+ SR(VID3_WB_FIR_COEF_H(0, 7));
+
+ SR(VID3_WB_FIR_COEF_HV(0, 0));
+ SR(VID3_WB_FIR_COEF_HV(0, 1));
+ SR(VID3_WB_FIR_COEF_HV(0, 2));
+ SR(VID3_WB_FIR_COEF_HV(0, 3));
+ SR(VID3_WB_FIR_COEF_HV(0, 4));
+ SR(VID3_WB_FIR_COEF_HV(0, 5));
+ SR(VID3_WB_FIR_COEF_HV(0, 6));
+ SR(VID3_WB_FIR_COEF_HV(0, 7));
+
+ SR(VID3_WB_CONV_COEF(0, 0));
+ SR(VID3_WB_CONV_COEF(0, 1));
+ SR(VID3_WB_CONV_COEF(0, 2));
+ SR(VID3_WB_CONV_COEF(0, 3));
+ SR(VID3_WB_CONV_COEF(0, 4));
+
+ SR(VID3_WB_FIR_COEF_V(0, 0));
+ SR(VID3_WB_FIR_COEF_V(0, 1));
+ SR(VID3_WB_FIR_COEF_V(0, 2));
+ SR(VID3_WB_FIR_COEF_V(0, 3));
+ SR(VID3_WB_FIR_COEF_V(0, 4));
+ SR(VID3_WB_FIR_COEF_V(0, 5));
+ SR(VID3_WB_FIR_COEF_V(0, 6));
+ SR(VID3_WB_FIR_COEF_V(0, 7));
+
+ SR(VID3_PRELOAD);
+ }
}
void dispc_restore_context(void)
@@ -553,6 +605,58 @@ void dispc_restore_context(void)
RR(VID_PRELOAD(1));
+ /* VID3 */
+ if (cpu_is_omap44xx()) {
+ SR(VID3_WB_BA0(0));
+ SR(VID3_WB_BA1(0));
+ SR(VID3_POSITION);
+ SR(VID3_WB_SIZE(0));
+ SR(VID3_WB_ATTRIBUTES(0));
+ SR(VID3_WB_BUF_THRESHOLD(0));
+ SR(VID3_WB_BUF_SIZE_STATUS(0));
+ SR(VID3_WB_ROW_INC(0));
+ SR(VID3_WB_PIXEL_INC(0));
+ SR(VID3_WB_FIR(0));
+ SR(VID3_WB_PICTURE_SIZE(0));
+ SR(VID3_WB_ACCU0(0));
+ SR(VID3_WB_ACCU1(0));
+
+ SR(VID3_WB_FIR_COEF_H(0, 0));
+ SR(VID3_WB_FIR_COEF_H(0, 1));
+ SR(VID3_WB_FIR_COEF_H(0, 2));
+ SR(VID3_WB_FIR_COEF_H(0, 3));
+ SR(VID3_WB_FIR_COEF_H(0, 4));
+ SR(VID3_WB_FIR_COEF_H(0, 5));
+ SR(VID3_WB_FIR_COEF_H(0, 6));
+ SR(VID3_WB_FIR_COEF_H(0, 7));
+
+ SR(VID3_WB_FIR_COEF_HV(0, 0));
+ SR(VID3_WB_FIR_COEF_HV(0, 1));
+ SR(VID3_WB_FIR_COEF_HV(0, 2));
+ SR(VID3_WB_FIR_COEF_HV(0, 3));
+ SR(VID3_WB_FIR_COEF_HV(0, 4));
+ SR(VID3_WB_FIR_COEF_HV(0, 5));
+ SR(VID3_WB_FIR_COEF_HV(0, 6));
+ SR(VID3_WB_FIR_COEF_HV(0, 7));
+
+ SR(VID3_WB_CONV_COEF(0, 0));
+ SR(VID3_WB_CONV_COEF(0, 1));
+ SR(VID3_WB_CONV_COEF(0, 2));
+ SR(VID3_WB_CONV_COEF(0, 3));
+ SR(VID3_WB_CONV_COEF(0, 4));
+
+ SR(VID3_WB_FIR_COEF_V(0, 0));
+ SR(VID3_WB_FIR_COEF_V(0, 1));
+ SR(VID3_WB_FIR_COEF_V(0, 2));
+ SR(VID3_WB_FIR_COEF_V(0, 3));
+ SR(VID3_WB_FIR_COEF_V(0, 4));
+ SR(VID3_WB_FIR_COEF_V(0, 5));
+ SR(VID3_WB_FIR_COEF_V(0, 6));
+ SR(VID3_WB_FIR_COEF_V(0, 7));
+
+ SR(VID3_PRELOAD);
+ }
+
/* enable last, because LCD & DIGIT enable are here */
RR(CONTROL(0));
if (cpu_is_omap44xx())
--
1.5.4.7
^ permalink raw reply related [flat|nested] 14+ messages in thread
* RE: [PATCH 3/5] OMAP: DSS2: Add new overlay object for Video3 pipeline
2010-07-19 11:55 ` [PATCH 3/5] OMAP: DSS2: Add new overlay object for Video3 pipeline Archit Taneja
2010-07-19 11:55 ` [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs Archit Taneja
@ 2010-07-23 5:24 ` Hiremath, Vaibhav
2010-07-23 5:38 ` Taneja, Archit
1 sibling, 1 reply; 14+ messages in thread
From: Hiremath, Vaibhav @ 2010-07-23 5:24 UTC (permalink / raw)
To: Taneja, Archit, tomi.valkeinen@nokia.com
Cc: linux-omap@vger.kernel.org, Semwal, Sumit, Mittal, Mukund
> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Taneja, Archit
> Sent: Monday, July 19, 2010 5:26 PM
> To: tomi.valkeinen@nokia.com
> Cc: linux-omap@vger.kernel.org; Semwal, Sumit; Mittal, Mukund; Taneja,
> Archit
> Subject: [PATCH 3/5] OMAP: DSS2: Add new overlay object for Video3 pipeline
>
> From: Sumit Semwal <sumit.semwal@ti.com>
>
> Add new overlay object for the Video3 pipeline in overlay.c.
>
> Signed-off-by: Sumit Semwal <sumit.semwal@ti.com>
> Signed-off-by: Mukund Mittal <mmittal@ti.com>
> Signed-off-by: Archit Taneja <archit@ti.com>
> ---
> drivers/video/omap2/dss/manager.c | 13 +++++++------
> drivers/video/omap2/dss/overlay.c | 18 ++++++++++++++----
> 2 files changed, 21 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/video/omap2/dss/manager.c
> b/drivers/video/omap2/dss/manager.c
> index 96073f5..bccb7b6
> --- a/drivers/video/omap2/dss/manager.c
> +++ b/drivers/video/omap2/dss/manager.c
> @@ -35,6 +35,7 @@
> #include "dss.h"
>
> #define MAX_DSS_MANAGERS (cpu_is_omap44xx() ? 3 : 2)
> +#define MAX_DSS_OVERLAYS (cpu_is_omap44xx() ? 4 : 3)
>
> static int num_managers;
> static struct list_head manager_list;
> @@ -450,7 +451,7 @@ struct manager_cache_data {
>
> static struct {
> spinlock_t lock;
> - struct overlay_cache_data overlay_cache[3];
> + struct overlay_cache_data overlay_cache[4];
> struct manager_cache_data manager_cache[3];
>
> bool irq_enabled;
> @@ -893,7 +894,7 @@ static int configure_dispc(void)
> {
> struct overlay_cache_data *oc;
> struct manager_cache_data *mc;
> - const int num_ovls = ARRAY_SIZE(dss_cache.overlay_cache);
> + const int num_ovls = MAX_DSS_OVERLAYS;
[Hiremath, Vaibhav] You may want to clean this up, since now you have global definition MAX_DSS_OVERLAYS.
Applies to everywhere its being used.
> const int num_mgrs = MAX_DSS_MANAGERS;
> int i;
> int r;
> @@ -1000,7 +1001,7 @@ void dss_setup_partial_planes(struct omap_dss_device
> *dssdev,
> {
> struct overlay_cache_data *oc;
> struct manager_cache_data *mc;
> - const int num_ovls = ARRAY_SIZE(dss_cache.overlay_cache);
> + const int num_ovls = MAX_DSS_OVERLAYS;
[Hiremath, Vaibhav] Ditto.
> struct omap_overlay_manager *mgr;
> int i;
> u16 x, y, w, h;
> @@ -1132,7 +1133,7 @@ void dss_start_update(struct omap_dss_device *dssdev)
> {
> struct manager_cache_data *mc;
> struct overlay_cache_data *oc;
> - const int num_ovls = ARRAY_SIZE(dss_cache.overlay_cache);
> + const int num_ovls = MAX_DSS_OVERLAYS;
[Hiremath, Vaibhav] Ditto.
> const int num_mgrs = MAX_DSS_MANAGERS;
> struct omap_overlay_manager *mgr;
> int i;
> @@ -1162,8 +1163,8 @@ static void dss_apply_irq_handler(void *data, u32
> mask)
> {
> struct manager_cache_data *mc;
> struct overlay_cache_data *oc;
> - const int num_ovls = ARRAY_SIZE(dss_cache.overlay_cache);
> - const int num_mgrs = ARRAY_SIZE(dss_cache.manager_cache);
> + const int num_ovls = MAX_DSS_OVERLAYS;
> + const int num_mgrs = MAX_DSS_MANAGERS;
> int i, r;
> bool mgr_busy[MAX_DSS_MANAGERS];
>
> diff --git a/drivers/video/omap2/dss/overlay.c
> b/drivers/video/omap2/dss/overlay.c
> index 29aa157..2f8f89c
> --- a/drivers/video/omap2/dss/overlay.c
> +++ b/drivers/video/omap2/dss/overlay.c
> @@ -36,6 +36,8 @@
>
> #include "dss.h"
>
> +#define MAX_DSS_OVERLAYS (cpu_is_omap44xx() ? 4 : 3)
> +
[Hiremath, Vaibhav] Since this definition is being used in multiple file, consider moving this to dss.h file so that we have one place to see/modify in the future.
Thanks,
Vaibhav
> static int num_overlays;
> static struct list_head overlay_list;
>
> @@ -510,11 +512,11 @@ static void omap_dss_add_overlay(struct omap_overlay
> *overlay)
> list_add_tail(&overlay->list, &overlay_list);
> }
>
> -static struct omap_overlay *dispc_overlays[3];
> +static struct omap_overlay *dispc_overlays[4];
>
> void dss_overlay_setup_dispc_manager(struct omap_overlay_manager *mgr)
> {
> - mgr->num_overlays = 3;
> + mgr->num_overlays = MAX_DSS_OVERLAYS;
> mgr->overlays = dispc_overlays;
> }
>
> @@ -535,7 +537,7 @@ void dss_init_overlays(struct platform_device *pdev)
>
> num_overlays = 0;
>
> - for (i = 0; i < 3; ++i) {
> + for (i = 0; i < MAX_DSS_OVERLAYS; ++i) {
> struct omap_overlay *ovl;
> ovl = kzalloc(sizeof(*ovl), GFP_KERNEL);
>
> @@ -571,6 +573,14 @@ void dss_init_overlays(struct platform_device *pdev)
> OMAP_DSS_OVL_CAP_DISPC;
> ovl->info.global_alpha = 255;
> break;
> + case 3:
> + ovl->name = "vid3";
> + ovl->id = OMAP_DSS_VIDEO3;
> + ovl->supported_modes = OMAP_DSS_COLOR_VID3_OMAP3;
> + ovl->caps = OMAP_DSS_OVL_CAP_SCALE |
> + OMAP_DSS_OVL_CAP_DISPC;
> + ovl->info.global_alpha = 255;
> + break;
> }
>
> ovl->set_manager = &omap_dss_set_manager;
> @@ -661,7 +671,7 @@ void dss_recheck_connections(struct omap_dss_device
> *dssdev, bool force)
> }
>
> if (mgr) {
> - for (i = 0; i < 3; i++) {
> + for (i = 0; i < MAX_DSS_OVERLAYS; i++) {
> struct omap_overlay *ovl;
> ovl = omap_dss_get_overlay(i);
> if (!ovl->manager || force) {
> --
> 1.5.4.7
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH 3/5] OMAP: DSS2: Add new overlay object for Video3 pipeline
2010-07-23 5:24 ` [PATCH 3/5] OMAP: DSS2: Add new overlay object for Video3 pipeline Hiremath, Vaibhav
@ 2010-07-23 5:38 ` Taneja, Archit
0 siblings, 0 replies; 14+ messages in thread
From: Taneja, Archit @ 2010-07-23 5:38 UTC (permalink / raw)
To: Hiremath, Vaibhav, tomi.valkeinen@nokia.com
Cc: linux-omap@vger.kernel.org, Semwal, Sumit, Mittal, Mukund
Hi,
> -----Original Message-----
> From: Hiremath, Vaibhav
> Sent: Friday, July 23, 2010 10:54 AM
> To: Taneja, Archit; tomi.valkeinen@nokia.com
> Cc: linux-omap@vger.kernel.org; Semwal, Sumit; Mittal, Mukund
> Subject: RE: [PATCH 3/5] OMAP: DSS2: Add new overlay object
> for Video3 pipeline
>
>
<snap>
> > struct overlay_cache_data *oc;
> > struct manager_cache_data *mc;
> > - const int num_ovls = ARRAY_SIZE(dss_cache.overlay_cache);
> > + const int num_ovls = MAX_DSS_OVERLAYS;
> [Hiremath, Vaibhav] You may want to clean this up, since now
> you have global definition MAX_DSS_OVERLAYS.
> Applies to everywhere its being used.
>
> > const int num_mgrs = MAX_DSS_MANAGERS;
> > int i;
> > int r;
> > @@ -1000,7 +1001,7 @@ void dss_setup_partial_planes(struct
> > omap_dss_device *dssdev, {
> > struct overlay_cache_data *oc;
> > struct manager_cache_data *mc;
> > - const int num_ovls = ARRAY_SIZE(dss_cache.overlay_cache);
> > + const int num_ovls = MAX_DSS_OVERLAYS;
> [Hiremath, Vaibhav] Ditto.
>
> > struct omap_overlay_manager *mgr;
> > int i;
> > u16 x, y, w, h;
> > @@ -1132,7 +1133,7 @@ void dss_start_update(struct omap_dss_device
> > *dssdev) {
> > struct manager_cache_data *mc;
> > struct overlay_cache_data *oc;
> > - const int num_ovls = ARRAY_SIZE(dss_cache.overlay_cache);
> > + const int num_ovls = MAX_DSS_OVERLAYS;
> [Hiremath, Vaibhav] Ditto.
>
> > const int num_mgrs = MAX_DSS_MANAGERS;
> > struct omap_overlay_manager *mgr;
> > int i;
> > @@ -1162,8 +1163,8 @@ static void dss_apply_irq_handler(void *data,
> > u32
> > mask)
> > {
> > struct manager_cache_data *mc;
> > struct overlay_cache_data *oc;
> > - const int num_ovls = ARRAY_SIZE(dss_cache.overlay_cache);
> > - const int num_mgrs = ARRAY_SIZE(dss_cache.manager_cache);
> > + const int num_ovls = MAX_DSS_OVERLAYS;
> > + const int num_mgrs = MAX_DSS_MANAGERS;
> > int i, r;
> > bool mgr_busy[MAX_DSS_MANAGERS];
> >
> > diff --git a/drivers/video/omap2/dss/overlay.c
> > b/drivers/video/omap2/dss/overlay.c
> > index 29aa157..2f8f89c
> > --- a/drivers/video/omap2/dss/overlay.c
> > +++ b/drivers/video/omap2/dss/overlay.c
> > @@ -36,6 +36,8 @@
> >
> > #include "dss.h"
> >
> > +#define MAX_DSS_OVERLAYS (cpu_is_omap44xx() ? 4 : 3)
> > +
>
> [Hiremath, Vaibhav] Since this definition is being used in
> multiple file, consider moving this to dss.h file so that we
> have one place to see/modify in the future.
>
> Thanks,
> Vaibhav
>
Thanks for the comments, I will incorporate the following changes:
-remove const int num_mgrs and num_ovls variables as they are replaced
by the new globals everywhere.
-shift the MAX_DSS_OVERLAYS and MAX_DSS_MANAGERS to dss.h
Archit
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs
2010-07-19 11:55 ` [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs Archit Taneja
2010-07-19 11:55 ` [PATCH 5/5] OMAP: DSS2: Context Save and Restore of Video3 pipeline registers Archit Taneja
@ 2010-07-23 5:40 ` Hiremath, Vaibhav
2010-07-23 5:46 ` Taneja, Archit
1 sibling, 1 reply; 14+ messages in thread
From: Hiremath, Vaibhav @ 2010-07-23 5:40 UTC (permalink / raw)
To: tomi.valkeinen@nokia.com
Cc: linux-omap@vger.kernel.org, Semwal, Sumit, Mittal, Mukund,
Taneja, Archit
> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Archit Taneja
> Sent: Monday, July 19, 2010 5:26 PM
> To: tomi.valkeinen@nokia.com
> Cc: linux-omap@vger.kernel.org; Semwal, Sumit; Mittal, Mukund; Taneja,
> Archit
> Subject: [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs
>
> From: Sumit Semwal <sumit.semwal@ti.com>
>
> Introduce Video3 pipeline IRQS for dumps and error handling
>
> Signed-off-by: Sumit Semwal <sumit.semwal@ti.com>
> Signed-off-by: Mukund Mittal <mmittal@ti.com>
> Signed-off-by: Archit Taneja <archit@ti.com>
> ---
> arch/arm/plat-omap/include/plat/display.h | 2 ++
> drivers/video/omap2/dss/dispc.c | 23 ++++++++++++++++++++++-
> 2 files changed, 24 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/plat-omap/include/plat/display.h b/arch/arm/plat-
> omap/include/plat/display.h
> index be83766..91796b6
> --- a/arch/arm/plat-omap/include/plat/display.h
> +++ b/arch/arm/plat-omap/include/plat/display.h
> @@ -44,6 +44,8 @@
> #define DISPC_IRQ_WAKEUP (1 << 16)
> #define DISPC_IRQ_SYNC_LOST_2 (1 << 17)
> #define DISPC_IRQ_VSYNC2 (1 << 18)
> +#define DISPC_IRQ_VID3_END_WIN (1 << 19)
> +#define DISPC_IRQ_VID3_FIFO_UNDERFLOW (1 << 20)
> #define DISPC_IRQ_ACBIAS_COUNT_STAT2 (1 << 21)
> #define DISPC_IRQ_FRAMEDONE2 (1 << 22)
>
> diff --git a/drivers/video/omap2/dss/dispc.c
> b/drivers/video/omap2/dss/dispc.c
> index 00aad04..8345ed7
> --- a/drivers/video/omap2/dss/dispc.c
> +++ b/drivers/video/omap2/dss/dispc.c
> @@ -173,7 +173,8 @@ struct dispc_reg { u16 idx; };
> DISPC_IRQ_SYNC_LOST | \
> DISPC_IRQ_SYNC_LOST_DIGIT | \
> (cpu_is_omap44xx() ? \
> - DISPC_IRQ_SYNC_LOST_2 : 0))
> + (DISPC_IRQ_VID3_FIFO_UNDERFLOW | \
> + DISPC_IRQ_SYNC_LOST_2) : 0))
[Hiremath, Vaibhav] This looks bit suspicious to me, against which tree this patch has been generated? I think you have missed some of the patches in between.
>
> #define DISPC_MAX_NR_ISRS 8
>
> @@ -2540,6 +2541,8 @@ void dispc_dump_irqs(struct seq_file *s)
> PIS(VSYNC2);
> PIS(ACBIAS_COUNT_STAT2);
> PIS(SYNC_LOST_2);
> + PIS(VID3_FIFO_UNDERFLOW);
> + PIS(VID3_END_WIN);
> }
> #undef PIS
> }
> @@ -3151,6 +3154,24 @@ static void dispc_error_worker(struct work_struct
> *work)
> }
> }
>
> + if (errors & DISPC_IRQ_VID3_FIFO_UNDERFLOW) {
> + DSSERR("VID3_FIFO_UNDERFLOW, disabling VID2\n");
[Hiremath, Vaibhav] typo mistake VID2 => VID3
Thanks,
Vaibhav
> + for (i = 0; i < omap_dss_get_num_overlays(); ++i) {
> + struct omap_overlay *ovl;
> + ovl = omap_dss_get_overlay(i);
> +
> + if (!(ovl->caps & OMAP_DSS_OVL_CAP_DISPC))
> + continue;
> +
> + if (ovl->id == 3) {
> + dispc_enable_plane(ovl->id, 0);
> + dispc_go(ovl->manager->id);
> + mdelay(50);
> + break;
> + }
> + }
> + }
> +
> if (errors & DISPC_IRQ_SYNC_LOST) {
> struct omap_overlay_manager *manager = NULL;
> bool enable = false;
> --
> 1.5.4.7
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH 5/5] OMAP: DSS2: Context Save and Restore of Video3 pipeline registers
2010-07-19 11:55 ` [PATCH 5/5] OMAP: DSS2: Context Save and Restore of Video3 pipeline registers Archit Taneja
@ 2010-07-23 5:45 ` Hiremath, Vaibhav
2010-07-23 5:55 ` Taneja, Archit
0 siblings, 1 reply; 14+ messages in thread
From: Hiremath, Vaibhav @ 2010-07-23 5:45 UTC (permalink / raw)
To: Taneja, Archit, tomi.valkeinen@nokia.com
Cc: linux-omap@vger.kernel.org, Janorkar, Mayuresh, Mittal, Mukund
> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Taneja, Archit
> Sent: Monday, July 19, 2010 5:26 PM
> To: tomi.valkeinen@nokia.com
> Cc: linux-omap@vger.kernel.org; Janorkar, Mayuresh; Mittal, Mukund; Taneja,
> Archit
> Subject: [PATCH 5/5] OMAP: DSS2: Context Save and Restore of Video3 pipeline
> registers
>
> From: Mayuresh Janorkar <mayur@ti.com>
>
> Context Save and Restore of Video3 pipeline registers.
[Hiremath, Vaibhav] I still fill, we are un-necessary dividing the patch here. This patch can very well be part of another patch,
[PATCH 2/5] OMAP: DSS2: Add Video 3 pipeline functionality in DISPC
In-fact, for me this should be consolidated single patch, something like,
OMAP: DSS2: Add Video-3 pipeline functionality
I don't see any reason why we are fragmenting this into multiple patches.
Thanks,
Vaibhav
>
> Signed-off-by: Mayuresh Janorkar <mayur@ti.com>
> Signed-off-by: Mukund Mittal <mmittal@ti.com>
> Signed-off-by: Archit Taneja <archit@ti.com>
> ---
> drivers/video/omap2/dss/dispc.c | 104
> +++++++++++++++++++++++++++++++++++++++
> 1 files changed, 104 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/video/omap2/dss/dispc.c
> b/drivers/video/omap2/dss/dispc.c
> index 8cda961..5a6c10e
> --- a/drivers/video/omap2/dss/dispc.c
> +++ b/drivers/video/omap2/dss/dispc.c
> @@ -397,6 +397,58 @@ void dispc_save_context(void)
> SR(VID_FIR_COEF_V(1, 7));
>
> SR(VID_PRELOAD(1));
> +
> + /* VID3 */
> + if (cpu_is_omap44xx()) {
> + SR(VID3_WB_BA0(0));
> + SR(VID3_WB_BA1(0));
> + SR(VID3_POSITION);
> + SR(VID3_WB_SIZE(0));
> + SR(VID3_WB_ATTRIBUTES(0));
> + SR(VID3_WB_BUF_THRESHOLD(0));
> + SR(VID3_WB_BUF_SIZE_STATUS(0));
> + SR(VID3_WB_ROW_INC(0));
> + SR(VID3_WB_PIXEL_INC(0));
> + SR(VID3_WB_FIR(0));
> + SR(VID3_WB_PICTURE_SIZE(0));
> + SR(VID3_WB_ACCU0(0));
> + SR(VID3_WB_ACCU1(0));
> +
> + SR(VID3_WB_FIR_COEF_H(0, 0));
> + SR(VID3_WB_FIR_COEF_H(0, 1));
> + SR(VID3_WB_FIR_COEF_H(0, 2));
> + SR(VID3_WB_FIR_COEF_H(0, 3));
> + SR(VID3_WB_FIR_COEF_H(0, 4));
> + SR(VID3_WB_FIR_COEF_H(0, 5));
> + SR(VID3_WB_FIR_COEF_H(0, 6));
> + SR(VID3_WB_FIR_COEF_H(0, 7));
> +
> + SR(VID3_WB_FIR_COEF_HV(0, 0));
> + SR(VID3_WB_FIR_COEF_HV(0, 1));
> + SR(VID3_WB_FIR_COEF_HV(0, 2));
> + SR(VID3_WB_FIR_COEF_HV(0, 3));
> + SR(VID3_WB_FIR_COEF_HV(0, 4));
> + SR(VID3_WB_FIR_COEF_HV(0, 5));
> + SR(VID3_WB_FIR_COEF_HV(0, 6));
> + SR(VID3_WB_FIR_COEF_HV(0, 7));
> +
> + SR(VID3_WB_CONV_COEF(0, 0));
> + SR(VID3_WB_CONV_COEF(0, 1));
> + SR(VID3_WB_CONV_COEF(0, 2));
> + SR(VID3_WB_CONV_COEF(0, 3));
> + SR(VID3_WB_CONV_COEF(0, 4));
> +
> + SR(VID3_WB_FIR_COEF_V(0, 0));
> + SR(VID3_WB_FIR_COEF_V(0, 1));
> + SR(VID3_WB_FIR_COEF_V(0, 2));
> + SR(VID3_WB_FIR_COEF_V(0, 3));
> + SR(VID3_WB_FIR_COEF_V(0, 4));
> + SR(VID3_WB_FIR_COEF_V(0, 5));
> + SR(VID3_WB_FIR_COEF_V(0, 6));
> + SR(VID3_WB_FIR_COEF_V(0, 7));
> +
> + SR(VID3_PRELOAD);
> + }
> }
>
> void dispc_restore_context(void)
> @@ -553,6 +605,58 @@ void dispc_restore_context(void)
>
> RR(VID_PRELOAD(1));
>
> + /* VID3 */
> + if (cpu_is_omap44xx()) {
> + SR(VID3_WB_BA0(0));
> + SR(VID3_WB_BA1(0));
> + SR(VID3_POSITION);
> + SR(VID3_WB_SIZE(0));
> + SR(VID3_WB_ATTRIBUTES(0));
> + SR(VID3_WB_BUF_THRESHOLD(0));
> + SR(VID3_WB_BUF_SIZE_STATUS(0));
> + SR(VID3_WB_ROW_INC(0));
> + SR(VID3_WB_PIXEL_INC(0));
> + SR(VID3_WB_FIR(0));
> + SR(VID3_WB_PICTURE_SIZE(0));
> + SR(VID3_WB_ACCU0(0));
> + SR(VID3_WB_ACCU1(0));
> +
> + SR(VID3_WB_FIR_COEF_H(0, 0));
> + SR(VID3_WB_FIR_COEF_H(0, 1));
> + SR(VID3_WB_FIR_COEF_H(0, 2));
> + SR(VID3_WB_FIR_COEF_H(0, 3));
> + SR(VID3_WB_FIR_COEF_H(0, 4));
> + SR(VID3_WB_FIR_COEF_H(0, 5));
> + SR(VID3_WB_FIR_COEF_H(0, 6));
> + SR(VID3_WB_FIR_COEF_H(0, 7));
> +
> + SR(VID3_WB_FIR_COEF_HV(0, 0));
> + SR(VID3_WB_FIR_COEF_HV(0, 1));
> + SR(VID3_WB_FIR_COEF_HV(0, 2));
> + SR(VID3_WB_FIR_COEF_HV(0, 3));
> + SR(VID3_WB_FIR_COEF_HV(0, 4));
> + SR(VID3_WB_FIR_COEF_HV(0, 5));
> + SR(VID3_WB_FIR_COEF_HV(0, 6));
> + SR(VID3_WB_FIR_COEF_HV(0, 7));
> +
> + SR(VID3_WB_CONV_COEF(0, 0));
> + SR(VID3_WB_CONV_COEF(0, 1));
> + SR(VID3_WB_CONV_COEF(0, 2));
> + SR(VID3_WB_CONV_COEF(0, 3));
> + SR(VID3_WB_CONV_COEF(0, 4));
> +
> + SR(VID3_WB_FIR_COEF_V(0, 0));
> + SR(VID3_WB_FIR_COEF_V(0, 1));
> + SR(VID3_WB_FIR_COEF_V(0, 2));
> + SR(VID3_WB_FIR_COEF_V(0, 3));
> + SR(VID3_WB_FIR_COEF_V(0, 4));
> + SR(VID3_WB_FIR_COEF_V(0, 5));
> + SR(VID3_WB_FIR_COEF_V(0, 6));
> + SR(VID3_WB_FIR_COEF_V(0, 7));
> +
> + SR(VID3_PRELOAD);
> + }
> +
> /* enable last, because LCD & DIGIT enable are here */
> RR(CONTROL(0));
> if (cpu_is_omap44xx())
> --
> 1.5.4.7
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs
2010-07-23 5:40 ` [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs Hiremath, Vaibhav
@ 2010-07-23 5:46 ` Taneja, Archit
2010-07-23 5:52 ` Hiremath, Vaibhav
0 siblings, 1 reply; 14+ messages in thread
From: Taneja, Archit @ 2010-07-23 5:46 UTC (permalink / raw)
To: Hiremath, Vaibhav, tomi.valkeinen@nokia.com
Cc: linux-omap@vger.kernel.org, Semwal, Sumit, Mittal, Mukund
> -----Original Message-----
> From: Hiremath, Vaibhav
> Sent: Friday, July 23, 2010 11:10 AM
> To: Taneja, Archit; tomi.valkeinen@nokia.com
> Cc: linux-omap@vger.kernel.org; Semwal, Sumit; Mittal,
> Mukund; Taneja, Archit
> Subject: RE: [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs
>
<snap>
> > @@ -173,7 +173,8 @@ struct dispc_reg { u16 idx; };
> > DISPC_IRQ_SYNC_LOST | \
> > DISPC_IRQ_SYNC_LOST_DIGIT | \
> > (cpu_is_omap44xx() ? \
> > - DISPC_IRQ_SYNC_LOST_2 : 0))
> > +
> (DISPC_IRQ_VID3_FIFO_UNDERFLOW | \
> > + DISPC_IRQ_SYNC_LOST_2) : 0))
> [Hiremath, Vaibhav] This looks bit suspicious to me, against
> which tree this patch has been generated? I think you have
> missed some of the patches in between.
[Archit] This patch series sits over a previously sent RFC:
https://patchwork.kernel.org/patch/111901/
>
> >
> > #define DISPC_MAX_NR_ISRS 8
> >
> > @@ -2540,6 +2541,8 @@ void dispc_dump_irqs(struct seq_file *s)
> > PIS(VSYNC2);
> > PIS(ACBIAS_COUNT_STAT2);
> > PIS(SYNC_LOST_2);
> > + PIS(VID3_FIFO_UNDERFLOW);
> > + PIS(VID3_END_WIN);
> > }
> > #undef PIS
> > }
> > @@ -3151,6 +3154,24 @@ static void dispc_error_worker(struct
> > work_struct
> > *work)
> > }
> > }
> >
> > + if (errors & DISPC_IRQ_VID3_FIFO_UNDERFLOW) {
> > + DSSERR("VID3_FIFO_UNDERFLOW, disabling VID2\n");
> [Hiremath, Vaibhav] typo mistake VID2 => VID3
>
> Thanks,
> Vaibhav
Will fix this.
Thanks,
Archit
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs
2010-07-23 5:46 ` Taneja, Archit
@ 2010-07-23 5:52 ` Hiremath, Vaibhav
0 siblings, 0 replies; 14+ messages in thread
From: Hiremath, Vaibhav @ 2010-07-23 5:52 UTC (permalink / raw)
To: Taneja, Archit, tomi.valkeinen@nokia.com
Cc: linux-omap@vger.kernel.org, Semwal, Sumit, Mittal, Mukund
> -----Original Message-----
> From: Taneja, Archit
> Sent: Friday, July 23, 2010 11:17 AM
> To: Hiremath, Vaibhav; tomi.valkeinen@nokia.com
> Cc: linux-omap@vger.kernel.org; Semwal, Sumit; Mittal, Mukund
> Subject: RE: [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs
>
>
>
> > -----Original Message-----
> > From: Hiremath, Vaibhav
> > Sent: Friday, July 23, 2010 11:10 AM
> > To: Taneja, Archit; tomi.valkeinen@nokia.com
> > Cc: linux-omap@vger.kernel.org; Semwal, Sumit; Mittal,
> > Mukund; Taneja, Archit
> > Subject: RE: [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs
> >
>
> <snap>
>
> > > @@ -173,7 +173,8 @@ struct dispc_reg { u16 idx; };
> > > DISPC_IRQ_SYNC_LOST | \
> > > DISPC_IRQ_SYNC_LOST_DIGIT | \
> > > (cpu_is_omap44xx() ? \
> > > - DISPC_IRQ_SYNC_LOST_2 : 0))
> > > +
> > (DISPC_IRQ_VID3_FIFO_UNDERFLOW | \
> > > + DISPC_IRQ_SYNC_LOST_2) : 0))
> > [Hiremath, Vaibhav] This looks bit suspicious to me, against
> > which tree this patch has been generated? I think you have
> > missed some of the patches in between.
>
> [Archit] This patch series sits over a previously sent RFC:
>
> https://patchwork.kernel.org/patch/111901/
>
[Hiremath, Vaibhav] Ohhh, I missed it completely. Perhaps it would be good if you could mention this dependency in you PATCH [0/x].
I think Sanjeev has already provided some comments, so I would rather prefer to review latest version (when you post it again).
Thanks,
Vaibhav
> >
> > >
> > > #define DISPC_MAX_NR_ISRS 8
> > >
> > > @@ -2540,6 +2541,8 @@ void dispc_dump_irqs(struct seq_file *s)
> > > PIS(VSYNC2);
> > > PIS(ACBIAS_COUNT_STAT2);
> > > PIS(SYNC_LOST_2);
> > > + PIS(VID3_FIFO_UNDERFLOW);
> > > + PIS(VID3_END_WIN);
> > > }
> > > #undef PIS
> > > }
> > > @@ -3151,6 +3154,24 @@ static void dispc_error_worker(struct
> > > work_struct
> > > *work)
> > > }
> > > }
> > >
> > > + if (errors & DISPC_IRQ_VID3_FIFO_UNDERFLOW) {
> > > + DSSERR("VID3_FIFO_UNDERFLOW, disabling VID2\n");
> > [Hiremath, Vaibhav] typo mistake VID2 => VID3
> >
> > Thanks,
> > Vaibhav
>
> Will fix this.
>
> Thanks,
>
> Archit
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH 5/5] OMAP: DSS2: Context Save and Restore of Video3 pipeline registers
2010-07-23 5:45 ` Hiremath, Vaibhav
@ 2010-07-23 5:55 ` Taneja, Archit
2010-07-23 5:57 ` Hiremath, Vaibhav
0 siblings, 1 reply; 14+ messages in thread
From: Taneja, Archit @ 2010-07-23 5:55 UTC (permalink / raw)
To: Hiremath, Vaibhav, tomi.valkeinen@nokia.com
Cc: linux-omap@vger.kernel.org, Janorkar, Mayuresh, Mittal, Mukund
> > -----Original Message-----
> > From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> > owner@vger.kernel.org] On Behalf Of Taneja, Archit
> > Sent: Monday, July 19, 2010 5:26 PM
> > To: tomi.valkeinen@nokia.com
> > Cc: linux-omap@vger.kernel.org; Janorkar, Mayuresh; Mittal, Mukund;
> > Taneja, Archit
> > Subject: [PATCH 5/5] OMAP: DSS2: Context Save and Restore of Video3
> > pipeline registers
> >
> > From: Mayuresh Janorkar <mayur@ti.com>
> >
> > Context Save and Restore of Video3 pipeline registers.
> [Hiremath, Vaibhav] I still fill, we are un-necessary
> dividing the patch here. This patch can very well be part of
> another patch,
>
> [PATCH 2/5] OMAP: DSS2: Add Video 3 pipeline functionality in DISPC
>
> In-fact, for me this should be consolidated single patch,
> something like,
>
> OMAP: DSS2: Add Video-3 pipeline functionality
>
>
> I don't see any reason why we are fragmenting this into
> multiple patches.
>
> Thanks,
> Vaibhav
>
> >
[Archit] Okay, Does the following split sound good?:
-OMAP: DSS2: [1/2]Add Video-3 pipeline functionality in dispc
- This patch will have all dispc related changes
-OMAP: DSS2: [2/2]Add Video-3 pipeline overlay object
- This patch will add the new overlay and changes
required in manager, irqs etc
Or does a single patch make more sense?
Thanks,
Archit
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH 5/5] OMAP: DSS2: Context Save and Restore of Video3 pipeline registers
2010-07-23 5:55 ` Taneja, Archit
@ 2010-07-23 5:57 ` Hiremath, Vaibhav
0 siblings, 0 replies; 14+ messages in thread
From: Hiremath, Vaibhav @ 2010-07-23 5:57 UTC (permalink / raw)
To: Taneja, Archit, tomi.valkeinen@nokia.com
Cc: linux-omap@vger.kernel.org, Janorkar, Mayuresh, Mittal, Mukund
> -----Original Message-----
> From: Taneja, Archit
> Sent: Friday, July 23, 2010 11:26 AM
> To: Hiremath, Vaibhav; tomi.valkeinen@nokia.com
> Cc: linux-omap@vger.kernel.org; Janorkar, Mayuresh; Mittal, Mukund
> Subject: RE: [PATCH 5/5] OMAP: DSS2: Context Save and Restore of Video3
> pipeline registers
>
>
> > > -----Original Message-----
> > > From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> > > owner@vger.kernel.org] On Behalf Of Taneja, Archit
> > > Sent: Monday, July 19, 2010 5:26 PM
> > > To: tomi.valkeinen@nokia.com
> > > Cc: linux-omap@vger.kernel.org; Janorkar, Mayuresh; Mittal, Mukund;
> > > Taneja, Archit
> > > Subject: [PATCH 5/5] OMAP: DSS2: Context Save and Restore of Video3
> > > pipeline registers
> > >
> > > From: Mayuresh Janorkar <mayur@ti.com>
> > >
> > > Context Save and Restore of Video3 pipeline registers.
> > [Hiremath, Vaibhav] I still fill, we are un-necessary
> > dividing the patch here. This patch can very well be part of
> > another patch,
> >
> > [PATCH 2/5] OMAP: DSS2: Add Video 3 pipeline functionality in DISPC
> >
> > In-fact, for me this should be consolidated single patch,
> > something like,
> >
> > OMAP: DSS2: Add Video-3 pipeline functionality
> >
> >
> > I don't see any reason why we are fragmenting this into
> > multiple patches.
> >
> > Thanks,
> > Vaibhav
> >
> > >
> [Archit] Okay, Does the following split sound good?:
> -OMAP: DSS2: [1/2]Add Video-3 pipeline functionality in dispc
> - This patch will have all dispc related changes
> -OMAP: DSS2: [2/2]Add Video-3 pipeline overlay object
> - This patch will add the new overlay and changes
> required in manager, irqs etc
>
> Or does a single patch make more sense?
>
[Hiremath, Vaibhav] I still feel single patch makes more sense here.
Thanks,
Vaibhav
> Thanks,
>
> Archit
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2010-07-23 5:57 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-19 11:55 [PATCH 0/5] OMAP: DSS2: Video3 pipeline support for OMAP4 Archit Taneja
2010-07-19 11:55 ` [PATCH 1/5] OMAP: DSS2: Add Video3 pipeline in display.h Archit Taneja
2010-07-19 11:55 ` [PATCH 2/5] OMAP: DSS2: Add Video 3 pipeline functionality in DISPC Archit Taneja
2010-07-19 11:55 ` [PATCH 3/5] OMAP: DSS2: Add new overlay object for Video3 pipeline Archit Taneja
2010-07-19 11:55 ` [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs Archit Taneja
2010-07-19 11:55 ` [PATCH 5/5] OMAP: DSS2: Context Save and Restore of Video3 pipeline registers Archit Taneja
2010-07-23 5:45 ` Hiremath, Vaibhav
2010-07-23 5:55 ` Taneja, Archit
2010-07-23 5:57 ` Hiremath, Vaibhav
2010-07-23 5:40 ` [PATCH 4/5] OMAP: DSS2: Video3 pipeline IRQs Hiremath, Vaibhav
2010-07-23 5:46 ` Taneja, Archit
2010-07-23 5:52 ` Hiremath, Vaibhav
2010-07-23 5:24 ` [PATCH 3/5] OMAP: DSS2: Add new overlay object for Video3 pipeline Hiremath, Vaibhav
2010-07-23 5:38 ` Taneja, Archit
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox