summaryrefslogtreecommitdiff
path: root/drivers/video/mcde/mcde_hw.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/mcde/mcde_hw.c')
-rw-r--r--drivers/video/mcde/mcde_hw.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/video/mcde/mcde_hw.c b/drivers/video/mcde/mcde_hw.c
index 220b6dcb8e9..afa53e90712 100644
--- a/drivers/video/mcde/mcde_hw.c
+++ b/drivers/video/mcde/mcde_hw.c
@@ -287,6 +287,7 @@ struct chnl_regs {
u8 rotdir;
u32 rotbuf1;
u32 rotbuf2;
+ u32 rotbufsize;
/* Blending */
u8 blend_ctrl;
@@ -368,6 +369,7 @@ struct mcde_chnl_state {
enum mcde_display_rotation rotation;
u32 rotbuf1;
u32 rotbuf2;
+ u32 rotbufsize;
struct mcde_col_transform rgb_2_ycbcr;
struct mcde_col_transform ycbcr_2_rgb;
@@ -2665,6 +2667,7 @@ static struct mcde_chnl_state *_mcde_chnl_get(enum mcde_chnl chnl_id,
{
int i;
struct mcde_chnl_state *chnl = NULL;
+ struct mcde_platform_data *pdata = mcde_dev->dev.platform_data;
static struct mcde_col_transform ycbcr_2_rgb = {
/* Note that in MCDE YUV 422 pixels come as VYU pixels */
@@ -2708,6 +2711,9 @@ static struct mcde_chnl_state *_mcde_chnl_get(enum mcde_chnl chnl_id,
chnl->blend_en = true;
chnl->blend_ctrl = MCDE_CRA0_BLENDCTRL_SOURCE;
chnl->alpha_blend = 0xFF;
+ chnl->rotbuf1 = pdata->rotbuf1;
+ chnl->rotbuf2 = pdata->rotbuf2;
+ chnl->rotbufsize = pdata->rotbufsize;
_mcde_chnl_apply(chnl);
chnl->reserved = true;
@@ -2761,6 +2767,7 @@ static int _mcde_chnl_apply(struct mcde_chnl_state *chnl)
chnl->regs.rotdir = rotdir;
chnl->regs.rotbuf1 = chnl->rotbuf1;
chnl->regs.rotbuf2 = chnl->rotbuf2;
+ chnl->regs.rotbufsize = chnl->rotbufsize;
chnl->regs.palette_enable = chnl->palette_enable;
chnl->regs.map_r = chnl->map_r;
chnl->regs.map_g = chnl->map_g;
@@ -3049,7 +3056,7 @@ int mcde_chnl_set_video_mode(struct mcde_chnl_state *chnl,
EXPORT_SYMBOL(mcde_chnl_set_video_mode);
int mcde_chnl_set_rotation(struct mcde_chnl_state *chnl,
- enum mcde_display_rotation rotation, u32 rotbuf1, u32 rotbuf2)
+ enum mcde_display_rotation rotation)
{
dev_vdbg(&mcde_dev->dev, "%s\n", __func__);
@@ -3062,8 +3069,6 @@ int mcde_chnl_set_rotation(struct mcde_chnl_state *chnl,
return -EINVAL;
chnl->rotation = rotation;
- chnl->rotbuf1 = rotbuf1;
- chnl->rotbuf2 = rotbuf2;
dev_vdbg(&mcde_dev->dev, "%s exit\n", __func__);