[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