aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFancy Fang <chen.fang@freescale.com>2014-06-18 21:54:00 -0400
committerFancy Fang <chen.fang@freescale.com>2014-06-26 04:31:53 -0400
commit4a2fc50d7841c73a387ff3e1a8c8e6e4cee75df1 (patch)
tree447dc2c8a85ef24a606ee3bb6872cd6187799b21
parente1c9213ee11d2711f4726d733b5ce4f5409fed22 (diff)
ENGR00319406-2 PXP: remove the rot_pos=1 support temporarily
Remove the rotation operation support before composite, since this function has several big limitations and it is almost useless in the real applcations. Signed-off-by: Fancy Fang <chen.fang@freescale.com> (cherry picked from commit 18cbd7c5f12ff0be2b75634dfeb2af7827b6811b)
-rw-r--r--drivers/dma/pxp/pxp_dma_v2.c39
1 files changed, 6 insertions, 33 deletions
diff --git a/drivers/dma/pxp/pxp_dma_v2.c b/drivers/dma/pxp/pxp_dma_v2.c
index c8f9faa6a23f..27bfeef11810 100644
--- a/drivers/dma/pxp/pxp_dma_v2.c
+++ b/drivers/dma/pxp/pxp_dma_v2.c
@@ -377,11 +377,8 @@ static void pxp_set_ctrl(struct pxps *pxp)
377 ctrl |= BM_PXP_CTRL_VFLIP; 377 ctrl |= BM_PXP_CTRL_VFLIP;
378 if (proc_data->hflip) 378 if (proc_data->hflip)
379 ctrl |= BM_PXP_CTRL_HFLIP; 379 ctrl |= BM_PXP_CTRL_HFLIP;
380 if (proc_data->rotate) { 380 if (proc_data->rotate)
381 ctrl |= BF_PXP_CTRL_ROTATE(proc_data->rotate / 90); 381 ctrl |= BF_PXP_CTRL_ROTATE(proc_data->rotate / 90);
382 if (proc_data->rot_pos)
383 ctrl |= BM_PXP_CTRL_ROT_POS;
384 }
385 382
386 /* In default, the block size is set to 8x8 383 /* In default, the block size is set to 8x8
387 * But block size can be set to 16x16 due to 384 * But block size can be set to 16x16 due to
@@ -502,22 +499,9 @@ static void pxp_set_oln(int layer_no, struct pxps *pxp)
502 __raw_writel(0x0, pxp->base + HW_PXP_OUT_AS_LRC); 499 __raw_writel(0x0, pxp->base + HW_PXP_OUT_AS_LRC);
503 } else { 500 } else {
504 __raw_writel(0x0, pxp->base + HW_PXP_OUT_AS_ULC); 501 __raw_writel(0x0, pxp->base + HW_PXP_OUT_AS_ULC);
505 if (pxp_conf->proc_data.rotate == 90 || 502 __raw_writel(BF_PXP_OUT_AS_LRC_X(olparams_data->width - 1) |
506 pxp_conf->proc_data.rotate == 270) {
507 if (pxp_conf->proc_data.rot_pos == 1) {
508 __raw_writel(BF_PXP_OUT_AS_LRC_X(olparams_data->height - 1) |
509 BF_PXP_OUT_AS_LRC_Y(olparams_data->width - 1),
510 pxp->base + HW_PXP_OUT_AS_LRC);
511 } else {
512 __raw_writel(BF_PXP_OUT_AS_LRC_X(olparams_data->width - 1) |
513 BF_PXP_OUT_AS_LRC_Y(olparams_data->height - 1),
514 pxp->base + HW_PXP_OUT_AS_LRC);
515 }
516 } else {
517 __raw_writel(BF_PXP_OUT_AS_LRC_X(olparams_data->width - 1) |
518 BF_PXP_OUT_AS_LRC_Y(olparams_data->height - 1), 503 BF_PXP_OUT_AS_LRC_Y(olparams_data->height - 1),
519 pxp->base + HW_PXP_OUT_AS_LRC); 504 pxp->base + HW_PXP_OUT_AS_LRC);
520 }
521 } 505 }
522 506
523 if ((olparams_data->pixel_fmt == PXP_PIX_FMT_BGRA32) | 507 if ((olparams_data->pixel_fmt == PXP_PIX_FMT_BGRA32) |
@@ -602,21 +586,10 @@ static void pxp_set_s0param(struct pxps *pxp)
602 s0param = BF_PXP_OUT_PS_ULC_X(proc_data->drect.left); 586 s0param = BF_PXP_OUT_PS_ULC_X(proc_data->drect.left);
603 s0param |= BF_PXP_OUT_PS_ULC_Y(proc_data->drect.top); 587 s0param |= BF_PXP_OUT_PS_ULC_Y(proc_data->drect.top);
604 __raw_writel(s0param, pxp->base + HW_PXP_OUT_PS_ULC); 588 __raw_writel(s0param, pxp->base + HW_PXP_OUT_PS_ULC);
605 /* In PXP, the two different rotation 589 s0param = BF_PXP_OUT_PS_LRC_X(proc_data->drect.left +
606 * position requires different settings 590 proc_data->drect.width - 1);
607 * on OUT_PS_LRC register 591 s0param |= BF_PXP_OUT_PS_LRC_Y(proc_data->drect.top +
608 */ 592 proc_data->drect.height - 1);
609 if (proc_data->rot_pos == 1) {
610 s0param = BF_PXP_OUT_PS_LRC_X(proc_data->drect.left +
611 proc_data->drect.height - 1);
612 s0param |= BF_PXP_OUT_PS_LRC_Y(proc_data->drect.top +
613 proc_data->drect.width - 1);
614 } else {
615 s0param = BF_PXP_OUT_PS_LRC_X(proc_data->drect.left +
616 proc_data->drect.width - 1);
617 s0param |= BF_PXP_OUT_PS_LRC_Y(proc_data->drect.top +
618 proc_data->drect.height - 1);
619 }
620 __raw_writel(s0param, pxp->base + HW_PXP_OUT_PS_LRC); 593 __raw_writel(s0param, pxp->base + HW_PXP_OUT_PS_LRC);
621 } 594 }
622} 595}