[PATCH 08/20] video: msm: Refactor mdp_regs
Janorkar, Mayuresh
mayur at ti.com
Mon Mar 21 01:17:25 EDT 2011
> -----Original Message-----
> From: linux-fbdev-owner at vger.kernel.org [mailto:linux-fbdev-
> owner at vger.kernel.org] On Behalf Of Carl Vanderlip
> Sent: Saturday, March 19, 2011 3:27 AM
> To: David Brown; Daniel Walker; Bryan Huntsman
> Cc: Brian Swetland; Dima Zavin; Rebecca Schultz Zavin; Colin Cross; linux-
> fbdev at vger.kernel.org; Carl Vanderlip; linux-arm-
> kernel at lists.infradead.org; linux-arm-msm at vger.kernel.org; linux-
> kernel at vger.kernel.org
> Subject: [PATCH 08/20] video: msm: Refactor mdp_regs
>
> To begin splitting hw specific PPP operations into different files,
> the mdp_regs struct will be moved into a new generic header file
> for PPP operations.
>
> Authors:
> Dima Zavin <dima at android.com>
> Rebecca Schultz Zavin <rebecca at android.com>
> Colin Cross <ccross at android.com>
>
> Signed-off-by: Carl Vanderlip <carlv at codeaurora.org>
> ---
> drivers/video/msm/mdp_ppp.c | 49 +++++++++++++-------------------------
> ----
> drivers/video/msm/mdp_ppp.h | 50
> +++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 65 insertions(+), 34 deletions(-)
> create mode 100644 drivers/video/msm/mdp_ppp.h
>
> diff --git a/drivers/video/msm/mdp_ppp.c b/drivers/video/msm/mdp_ppp.c
> index 2b04027..05f3e33 100644
> --- a/drivers/video/msm/mdp_ppp.c
> +++ b/drivers/video/msm/mdp_ppp.c
> @@ -19,6 +19,7 @@
> #include <mach/msm_fb.h>
>
> #include "mdp_hw.h"
> +#include "mdp_ppp.h"
> #include "mdp_scale_tables.h"
>
> #define DLOG(x...) do {} while (0)
> @@ -27,28 +28,6 @@
> static int downscale_y_table = MDP_DOWNSCALE_MAX;
> static int downscale_x_table = MDP_DOWNSCALE_MAX;
>
> -struct mdp_regs {
> - uint32_t src0;
> - uint32_t src1;
> - uint32_t dst0;
> - uint32_t dst1;
> - uint32_t src_cfg;
> - uint32_t dst_cfg;
> - uint32_t src_pack;
> - uint32_t dst_pack;
> - uint32_t src_rect;
> - uint32_t dst_rect;
> - uint32_t src_ystride;
> - uint32_t dst_ystride;
> - uint32_t op;
> - uint32_t src_bpp;
> - uint32_t dst_bpp;
> - uint32_t edge;
> - uint32_t phasex_init;
> - uint32_t phasey_init;
> - uint32_t phasex_step;
> - uint32_t phasey_step;
> -};
>
> static uint32_t pack_pattern[] = {
> PPP_ARRAY0(PACK_PATTERN)
> @@ -88,7 +67,8 @@ static uint32_t bg_op_chroma[] = {
> PPP_ARRAY1(CHROMA_SAMP, BG)
> };
>
> -static void rotate_dst_addr_x(struct mdp_blit_req *req, struct mdp_regs
> *regs)
> +static void rotate_dst_addr_x(struct mdp_blit_req *req,
> + struct ppp_regs *regs)
> {
> regs->dst0 += (req->dst_rect.w -
> min((uint32_t)16, req->dst_rect.w)) * regs->dst_bpp;
> @@ -96,7 +76,8 @@ static void rotate_dst_addr_x(struct mdp_blit_req *req,
> struct mdp_regs *regs)
> min((uint32_t)16, req->dst_rect.w)) * regs->dst_bpp;
> }
>
> -static void rotate_dst_addr_y(struct mdp_blit_req *req, struct mdp_regs
> *regs)
> +static void rotate_dst_addr_y(struct mdp_blit_req *req,
> + struct ppp_regs *regs)
> {
> regs->dst0 += (req->dst_rect.h -
> min((uint32_t)16, req->dst_rect.h)) *
> @@ -107,7 +88,7 @@ static void rotate_dst_addr_y(struct mdp_blit_req *req,
> struct mdp_regs *regs)
> }
>
> static void blit_rotate(struct mdp_blit_req *req,
> - struct mdp_regs *regs)
> + struct ppp_regs *regs)
> {
> if (req->flags == MDP_ROT_NOP)
> return;
> @@ -126,7 +107,7 @@ static void blit_rotate(struct mdp_blit_req *req,
> regs->op |= PPP_OP_FLIP_LR;
> }
>
> -static void blit_convert(struct mdp_blit_req *req, struct mdp_regs *regs)
> +static void blit_convert(struct mdp_blit_req *req, struct ppp_regs *regs)
> {
> if (req->src.format == req->dst.format)
> return;
> @@ -165,7 +146,7 @@ static uint32_t transp_convert(struct mdp_blit_req
> *req)
> }
> #undef GET_BIT_RANGE
>
> -static void blit_blend(struct mdp_blit_req *req, struct mdp_regs *regs)
> +static void blit_blend(struct mdp_blit_req *req, struct ppp_regs *regs)
> {
> /* TRANSP BLEND */
> if (req->transp_mask != MDP_TRANSP_NOP) {
> @@ -332,7 +313,7 @@ static void get_edge_info(uint32_t src, uint32_t
> src_coord, uint32_t dst,
> *interp2 += src_coord;
> }
>
> -static int get_edge_cond(struct mdp_blit_req *req, struct mdp_regs *regs)
> +static int get_edge_cond(struct mdp_blit_req *req, struct ppp_regs *regs)
> {
> int32_t luma_interp[4];
> int32_t luma_repeat[4];
> @@ -432,7 +413,7 @@ static int get_edge_cond(struct mdp_blit_req *req,
> struct mdp_regs *regs)
> }
>
> static int blit_scale(const struct mdp_info *mdp, struct mdp_blit_req
> *req,
> - struct mdp_regs *regs)
> + struct ppp_regs *regs)
> {
> uint32_t phase_init_x, phase_init_y, phase_step_x, phase_step_y;
> uint32_t scale_factor_x, scale_factor_y;
> @@ -500,7 +481,7 @@ static int blit_scale(const struct mdp_info *mdp,
> struct mdp_blit_req *req,
> }
>
> static void blit_blur(const struct mdp_info *mdp, struct mdp_blit_req
> *req,
> - struct mdp_regs *regs)
> + struct ppp_regs *regs)
> {
> if (!(req->flags & MDP_BLUR))
> return;
> @@ -534,7 +515,7 @@ static void get_len(struct mdp_img *img, struct
> mdp_rect *rect, uint32_t bpp,
>
> static int valid_src_dst(unsigned long src_start, unsigned long src_len,
> unsigned long dst_start, unsigned long dst_len,
> - struct mdp_blit_req *req, struct mdp_regs *regs)
> + struct mdp_blit_req *req, struct ppp_regs *regs)
> {
> unsigned long src_min_ok = src_start;
> unsigned long src_max_ok = src_start + src_len;
> @@ -575,7 +556,7 @@ static int valid_src_dst(unsigned long src_start,
> unsigned long src_len,
> }
>
>
> -static void flush_imgs(struct mdp_blit_req *req, struct mdp_regs *regs,
> +static void flush_imgs(struct mdp_blit_req *req, struct ppp_regs *regs,
> struct file *src_file, struct file *dst_file)
> {
> }
> @@ -601,7 +582,7 @@ static void get_chroma_addr(struct mdp_img *img,
> struct mdp_rect *rect,
> }
>
> static int send_blit(const struct mdp_info *mdp, struct mdp_blit_req
> *req,
> - struct mdp_regs *regs, struct file *src_file,
> + struct ppp_regs *regs, struct file *src_file,
> struct file *dst_file)
> {
> mdp_writel(mdp, 1, 0x060);
> @@ -646,7 +627,7 @@ int mdp_ppp_blit(const struct mdp_info *mdp, struct
> mdp_blit_req *req,
> struct file *src_file, unsigned long src_start, unsigned long
> src_len,
> struct file *dst_file, unsigned long dst_start, unsigned long
> dst_len)
> {
> - struct mdp_regs regs = {0};
> + struct ppp_regs regs = {0};
>
> if (unlikely(req->src.format >= MDP_IMGTYPE_LIMIT ||
> req->dst.format >= MDP_IMGTYPE_LIMIT)) {
> diff --git a/drivers/video/msm/mdp_ppp.h b/drivers/video/msm/mdp_ppp.h
> new file mode 100644
> index 0000000..ef3b125
> --- /dev/null
> +++ b/drivers/video/msm/mdp_ppp.h
> @@ -0,0 +1,50 @@
> +/* drivers/video/msm/mdp_ppp.h
> + *
> + * Copyright (C) 2009 Google Incorporated
If you want correct copyright info (to 2009-2011) here.
> + *
> + * This software is licensed under the terms of the GNU General Public
> + * License version 2, as published by the Free Software Foundation, and
> + * may be copied, distributed, and modified under those terms.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + */
> +
> +#ifndef _VIDEO_MSM_MDP_PPP_H_
> +#define _VIDEO_MSM_MDP_PPP_H_
> +
> +#include <linux/types.h>
> +
> +struct ppp_regs {
> + uint32_t src0;
> + uint32_t src1;
> + uint32_t dst0;
> + uint32_t dst1;
> + uint32_t src_cfg;
> + uint32_t dst_cfg;
> + uint32_t src_pack;
> + uint32_t dst_pack;
> + uint32_t src_rect;
> + uint32_t dst_rect;
> + uint32_t src_ystride;
> + uint32_t dst_ystride;
> + uint32_t op;
> + uint32_t src_bpp;
> + uint32_t dst_bpp;
> + uint32_t edge;
> + uint32_t phasex_init;
> + uint32_t phasey_init;
> + uint32_t phasex_step;
> + uint32_t phasey_step;
> +
> + uint32_t bg0;
> + uint32_t bg1;
> + uint32_t bg_cfg;
> + uint32_t bg_bpp;
> + uint32_t bg_pack;
> + uint32_t bg_ystride;
> +};
> +
> +#endif /* _VIDEO_MSM_MDP_PPP_H_ */
> --
> Sent by an employee of the Qualcomm Innovation Center, Inc.
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
More information about the linux-arm-kernel
mailing list