diff options
author | Fancy Fang <chen.fang@freescale.com> | 2014-06-18 21:54:00 -0400 |
---|---|---|
committer | Fancy Fang <chen.fang@freescale.com> | 2014-06-26 04:31:53 -0400 |
commit | 4a2fc50d7841c73a387ff3e1a8c8e6e4cee75df1 (patch) | |
tree | 447dc2c8a85ef24a606ee3bb6872cd6187799b21 | |
parent | e1c9213ee11d2711f4726d733b5ce4f5409fed22 (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.c | 39 |
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 | } |