lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202106280415.UWD8eBvS-lkp@intel.com>
Date:   Mon, 28 Jun 2021 04:40:18 +0800
From:   kernel test robot <lkp@...el.com>
To:     Mauro Carvalho Chehab <mchehab@...nel.org>
Cc:     kbuild-all@...ts.01.org, clang-built-linux@...glegroups.com,
        linux-kernel@...r.kernel.org, linux-media@...r.kernel.org
Subject: drivers/staging/media/ipu3/ipu3-css-params.c:776:8: warning:
 variable 'pin_scale' set but not used

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   625acffd7ae2c52898d249e6c5c39f348db0d8df
commit: 32a363d0b0b142f35512848dc646ee53e0926723 media: Kconfig files: use select for V4L2 subdevs and MC
date:   1 year, 2 months ago
config: x86_64-buildonly-randconfig-r002-20210628 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 59558129276098d62046c8cda92240d292cbfb1c)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=32a363d0b0b142f35512848dc646ee53e0926723
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 32a363d0b0b142f35512848dc646ee53e0926723
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>

All warnings (new ones prefixed by >>):

>> drivers/staging/media/ipu3/ipu3-css-params.c:776:8: warning: variable 'pin_scale' set but not used [-Wunused-but-set-variable]
                           int pin_scale = 0;
                               ^
   1 warning generated.


vim +/pin_scale +776 drivers/staging/media/ipu3/ipu3-css-params.c

e11110a5b74487 Yong Zhi   2018-12-06  357  
e11110a5b74487 Yong Zhi   2018-12-06  358  /*
e11110a5b74487 Yong Zhi   2018-12-06  359   * frame_params - size IMGU_ABI_OSYS_PINS
e11110a5b74487 Yong Zhi   2018-12-06  360   * stripe_params - size IPU3_UAPI_MAX_STRIPES
e11110a5b74487 Yong Zhi   2018-12-06  361   */
27b795adb3c221 Yong Zhi   2019-02-07  362  static int imgu_css_osys_calc_frame_and_stripe_params(
27b795adb3c221 Yong Zhi   2019-02-07  363  		struct imgu_css *css, unsigned int stripes,
e11110a5b74487 Yong Zhi   2018-12-06  364  		struct imgu_abi_osys_config *osys,
27b795adb3c221 Yong Zhi   2019-02-07  365  		struct imgu_css_scaler_info *scaler_luma,
27b795adb3c221 Yong Zhi   2019-02-07  366  		struct imgu_css_scaler_info *scaler_chroma,
27b795adb3c221 Yong Zhi   2019-02-07  367  		struct imgu_css_frame_params frame_params[],
27b795adb3c221 Yong Zhi   2019-02-07  368  		struct imgu_css_stripe_params stripe_params[],
51abe041c5ed56 Bingbu Cao 2018-12-06  369  		unsigned int pipe)
e11110a5b74487 Yong Zhi   2018-12-06  370  {
27b795adb3c221 Yong Zhi   2019-02-07  371  	struct imgu_css_reso reso;
e11110a5b74487 Yong Zhi   2018-12-06  372  	unsigned int output_width, pin, s;
51abe041c5ed56 Bingbu Cao 2018-12-06  373  	u32 input_width, input_height, target_width, target_height;
51abe041c5ed56 Bingbu Cao 2018-12-06  374  	unsigned int procmode = 0;
27b795adb3c221 Yong Zhi   2019-02-07  375  	struct imgu_css_pipe *css_pipe = &css->pipes[pipe];
51abe041c5ed56 Bingbu Cao 2018-12-06  376  
51abe041c5ed56 Bingbu Cao 2018-12-06  377  	input_width = css_pipe->rect[IPU3_CSS_RECT_GDC].width;
51abe041c5ed56 Bingbu Cao 2018-12-06  378  	input_height = css_pipe->rect[IPU3_CSS_RECT_GDC].height;
51abe041c5ed56 Bingbu Cao 2018-12-06  379  	target_width = css_pipe->queue[IPU3_CSS_QUEUE_VF].fmt.mpix.width;
51abe041c5ed56 Bingbu Cao 2018-12-06  380  	target_height = css_pipe->queue[IPU3_CSS_QUEUE_VF].fmt.mpix.height;
e11110a5b74487 Yong Zhi   2018-12-06  381  
e11110a5b74487 Yong Zhi   2018-12-06  382  	/* Frame parameters */
e11110a5b74487 Yong Zhi   2018-12-06  383  
e11110a5b74487 Yong Zhi   2018-12-06  384  	/* Input width for Output System is output width of DVS (with GDC) */
51abe041c5ed56 Bingbu Cao 2018-12-06  385  	reso.input_width = css_pipe->rect[IPU3_CSS_RECT_GDC].width;
e11110a5b74487 Yong Zhi   2018-12-06  386  
e11110a5b74487 Yong Zhi   2018-12-06  387  	/* Input height for Output System is output height of DVS (with GDC) */
51abe041c5ed56 Bingbu Cao 2018-12-06  388  	reso.input_height = css_pipe->rect[IPU3_CSS_RECT_GDC].height;
e11110a5b74487 Yong Zhi   2018-12-06  389  
e11110a5b74487 Yong Zhi   2018-12-06  390  	reso.input_format =
51abe041c5ed56 Bingbu Cao 2018-12-06  391  		css_pipe->queue[IPU3_CSS_QUEUE_OUT].css_fmt->frame_format;
e11110a5b74487 Yong Zhi   2018-12-06  392  
e11110a5b74487 Yong Zhi   2018-12-06  393  	reso.pin_width[IMGU_ABI_OSYS_PIN_OUT] =
51abe041c5ed56 Bingbu Cao 2018-12-06  394  		css_pipe->queue[IPU3_CSS_QUEUE_OUT].fmt.mpix.width;
e11110a5b74487 Yong Zhi   2018-12-06  395  	reso.pin_height[IMGU_ABI_OSYS_PIN_OUT] =
51abe041c5ed56 Bingbu Cao 2018-12-06  396  		css_pipe->queue[IPU3_CSS_QUEUE_OUT].fmt.mpix.height;
e11110a5b74487 Yong Zhi   2018-12-06  397  	reso.pin_stride[IMGU_ABI_OSYS_PIN_OUT] =
51abe041c5ed56 Bingbu Cao 2018-12-06  398  		css_pipe->queue[IPU3_CSS_QUEUE_OUT].width_pad;
e11110a5b74487 Yong Zhi   2018-12-06  399  	reso.pin_format[IMGU_ABI_OSYS_PIN_OUT] =
51abe041c5ed56 Bingbu Cao 2018-12-06  400  		css_pipe->queue[IPU3_CSS_QUEUE_OUT].css_fmt->frame_format;
e11110a5b74487 Yong Zhi   2018-12-06  401  
e11110a5b74487 Yong Zhi   2018-12-06  402  	reso.pin_width[IMGU_ABI_OSYS_PIN_VF] =
51abe041c5ed56 Bingbu Cao 2018-12-06  403  		css_pipe->queue[IPU3_CSS_QUEUE_VF].fmt.mpix.width;
e11110a5b74487 Yong Zhi   2018-12-06  404  	reso.pin_height[IMGU_ABI_OSYS_PIN_VF] =
51abe041c5ed56 Bingbu Cao 2018-12-06  405  		css_pipe->queue[IPU3_CSS_QUEUE_VF].fmt.mpix.height;
e11110a5b74487 Yong Zhi   2018-12-06  406  	reso.pin_stride[IMGU_ABI_OSYS_PIN_VF] =
51abe041c5ed56 Bingbu Cao 2018-12-06  407  		css_pipe->queue[IPU3_CSS_QUEUE_VF].width_pad;
e11110a5b74487 Yong Zhi   2018-12-06  408  	reso.pin_format[IMGU_ABI_OSYS_PIN_VF] =
51abe041c5ed56 Bingbu Cao 2018-12-06  409  		css_pipe->queue[IPU3_CSS_QUEUE_VF].css_fmt->frame_format;
e11110a5b74487 Yong Zhi   2018-12-06  410  
e11110a5b74487 Yong Zhi   2018-12-06  411  	/* Configure the frame parameters for all output pins */
e11110a5b74487 Yong Zhi   2018-12-06  412  
e11110a5b74487 Yong Zhi   2018-12-06  413  	frame_params[IMGU_ABI_OSYS_PIN_OUT].width =
51abe041c5ed56 Bingbu Cao 2018-12-06  414  		css_pipe->queue[IPU3_CSS_QUEUE_OUT].fmt.mpix.width;
e11110a5b74487 Yong Zhi   2018-12-06  415  	frame_params[IMGU_ABI_OSYS_PIN_OUT].height =
51abe041c5ed56 Bingbu Cao 2018-12-06  416  		css_pipe->queue[IPU3_CSS_QUEUE_OUT].fmt.mpix.height;
e11110a5b74487 Yong Zhi   2018-12-06  417  	frame_params[IMGU_ABI_OSYS_PIN_VF].width =
51abe041c5ed56 Bingbu Cao 2018-12-06  418  		css_pipe->queue[IPU3_CSS_QUEUE_VF].fmt.mpix.width;
e11110a5b74487 Yong Zhi   2018-12-06  419  	frame_params[IMGU_ABI_OSYS_PIN_VF].height =
51abe041c5ed56 Bingbu Cao 2018-12-06  420  		css_pipe->queue[IPU3_CSS_QUEUE_VF].fmt.mpix.height;
e11110a5b74487 Yong Zhi   2018-12-06  421  	frame_params[IMGU_ABI_OSYS_PIN_VF].crop_top = 0;
e11110a5b74487 Yong Zhi   2018-12-06  422  	frame_params[IMGU_ABI_OSYS_PIN_VF].crop_left = 0;
e11110a5b74487 Yong Zhi   2018-12-06  423  
e11110a5b74487 Yong Zhi   2018-12-06  424  	for (pin = 0; pin < IMGU_ABI_OSYS_PINS; pin++) {
e11110a5b74487 Yong Zhi   2018-12-06  425  		int enable = 0;
e11110a5b74487 Yong Zhi   2018-12-06  426  		int scaled = 0;
e11110a5b74487 Yong Zhi   2018-12-06  427  		unsigned int format = 0;
e11110a5b74487 Yong Zhi   2018-12-06  428  		unsigned int tiling = 0;
e11110a5b74487 Yong Zhi   2018-12-06  429  
e11110a5b74487 Yong Zhi   2018-12-06  430  		frame_params[pin].flip = 0;
e11110a5b74487 Yong Zhi   2018-12-06  431  		frame_params[pin].mirror = 0;
e11110a5b74487 Yong Zhi   2018-12-06  432  		frame_params[pin].reduce_range = 0;
e11110a5b74487 Yong Zhi   2018-12-06  433  		if (reso.pin_width[pin] != 0 && reso.pin_height[pin] != 0) {
e11110a5b74487 Yong Zhi   2018-12-06  434  			enable = 1;
e11110a5b74487 Yong Zhi   2018-12-06  435  			if (pin == IMGU_ABI_OSYS_PIN_OUT) {
e11110a5b74487 Yong Zhi   2018-12-06  436  				if (reso.input_width < reso.pin_width[pin] ||
e11110a5b74487 Yong Zhi   2018-12-06  437  				    reso.input_height < reso.pin_height[pin])
e11110a5b74487 Yong Zhi   2018-12-06  438  					return -EINVAL;
e11110a5b74487 Yong Zhi   2018-12-06  439  				/*
e11110a5b74487 Yong Zhi   2018-12-06  440  				 * When input and output resolution is
e11110a5b74487 Yong Zhi   2018-12-06  441  				 * different instead of scaling, cropping
e11110a5b74487 Yong Zhi   2018-12-06  442  				 * should happen. Determine the crop factor
e11110a5b74487 Yong Zhi   2018-12-06  443  				 * to do the symmetric cropping
e11110a5b74487 Yong Zhi   2018-12-06  444  				 */
e11110a5b74487 Yong Zhi   2018-12-06  445  				frame_params[pin].crop_left = roundclosest_down(
e11110a5b74487 Yong Zhi   2018-12-06  446  						(reso.input_width -
e11110a5b74487 Yong Zhi   2018-12-06  447  						 reso.pin_width[pin]) / 2,
e11110a5b74487 Yong Zhi   2018-12-06  448  						 IMGU_OSYS_DMA_CROP_W_LIMIT);
e11110a5b74487 Yong Zhi   2018-12-06  449  				frame_params[pin].crop_top = roundclosest_down(
e11110a5b74487 Yong Zhi   2018-12-06  450  						(reso.input_height -
e11110a5b74487 Yong Zhi   2018-12-06  451  						 reso.pin_height[pin]) / 2,
e11110a5b74487 Yong Zhi   2018-12-06  452  						 IMGU_OSYS_DMA_CROP_H_LIMIT);
e11110a5b74487 Yong Zhi   2018-12-06  453  			} else {
e11110a5b74487 Yong Zhi   2018-12-06  454  				if (reso.pin_width[pin] != reso.input_width ||
e11110a5b74487 Yong Zhi   2018-12-06  455  				    reso.pin_height[pin] != reso.input_height) {
e11110a5b74487 Yong Zhi   2018-12-06  456  					/*
e11110a5b74487 Yong Zhi   2018-12-06  457  					 * If resolution is different at input
e11110a5b74487 Yong Zhi   2018-12-06  458  					 * and output of OSYS, scaling is
e11110a5b74487 Yong Zhi   2018-12-06  459  					 * considered except when pin is MAIN.
e11110a5b74487 Yong Zhi   2018-12-06  460  					 * Later it will be decide whether
e11110a5b74487 Yong Zhi   2018-12-06  461  					 * scaler factor is 1 or other
e11110a5b74487 Yong Zhi   2018-12-06  462  					 * and cropping has to be done or not.
e11110a5b74487 Yong Zhi   2018-12-06  463  					 */
e11110a5b74487 Yong Zhi   2018-12-06  464  					scaled = 1;
e11110a5b74487 Yong Zhi   2018-12-06  465  				}
e11110a5b74487 Yong Zhi   2018-12-06  466  			}
27b795adb3c221 Yong Zhi   2019-02-07  467  			imgu_css_osys_set_format(reso.pin_format[pin], &format,
e11110a5b74487 Yong Zhi   2018-12-06  468  						 &tiling);
e11110a5b74487 Yong Zhi   2018-12-06  469  		} else {
e11110a5b74487 Yong Zhi   2018-12-06  470  			enable = 0;
e11110a5b74487 Yong Zhi   2018-12-06  471  		}
e11110a5b74487 Yong Zhi   2018-12-06  472  		frame_params[pin].enable = enable;
e11110a5b74487 Yong Zhi   2018-12-06  473  		frame_params[pin].format = format;
e11110a5b74487 Yong Zhi   2018-12-06  474  		frame_params[pin].tiling = tiling;
e11110a5b74487 Yong Zhi   2018-12-06  475  		frame_params[pin].stride = reso.pin_stride[pin];
e11110a5b74487 Yong Zhi   2018-12-06  476  		frame_params[pin].scaled = scaled;
e11110a5b74487 Yong Zhi   2018-12-06  477  	}
e11110a5b74487 Yong Zhi   2018-12-06  478  
27b795adb3c221 Yong Zhi   2019-02-07  479  	imgu_css_scaler_calc(input_width, input_height, target_width,
e11110a5b74487 Yong Zhi   2018-12-06  480  			     target_height, osys, scaler_luma, scaler_chroma,
e11110a5b74487 Yong Zhi   2018-12-06  481  			     &reso.pin_width[IMGU_ABI_OSYS_PIN_VF],
e11110a5b74487 Yong Zhi   2018-12-06  482  			     &reso.pin_height[IMGU_ABI_OSYS_PIN_VF], &procmode);
e11110a5b74487 Yong Zhi   2018-12-06  483  	dev_dbg(css->dev, "osys scaler procmode is %u", procmode);
e11110a5b74487 Yong Zhi   2018-12-06  484  	output_width = reso.pin_width[IMGU_ABI_OSYS_PIN_VF];
e11110a5b74487 Yong Zhi   2018-12-06  485  
e11110a5b74487 Yong Zhi   2018-12-06  486  	if (output_width < reso.input_width / 2) {
e11110a5b74487 Yong Zhi   2018-12-06  487  		/* Scaling factor <= 0.5 */
e11110a5b74487 Yong Zhi   2018-12-06  488  		reso.chunk_width = IMGU_OSYS_BLOCK_WIDTH;
e11110a5b74487 Yong Zhi   2018-12-06  489  		reso.block_width = IMGU_OSYS_BLOCK_WIDTH;
e11110a5b74487 Yong Zhi   2018-12-06  490  	} else { /* 0.5 <= Scaling factor <= 1.0 */
e11110a5b74487 Yong Zhi   2018-12-06  491  		reso.chunk_width = IMGU_OSYS_BLOCK_WIDTH / 2;
e11110a5b74487 Yong Zhi   2018-12-06  492  		reso.block_width = IMGU_OSYS_BLOCK_WIDTH;
e11110a5b74487 Yong Zhi   2018-12-06  493  	}
e11110a5b74487 Yong Zhi   2018-12-06  494  
e11110a5b74487 Yong Zhi   2018-12-06  495  	if (output_width <= reso.input_width * 7 / 8) {
e11110a5b74487 Yong Zhi   2018-12-06  496  		/* Scaling factor <= 0.875 */
e11110a5b74487 Yong Zhi   2018-12-06  497  		reso.chunk_height = IMGU_OSYS_BLOCK_HEIGHT;
e11110a5b74487 Yong Zhi   2018-12-06  498  		reso.block_height = IMGU_OSYS_BLOCK_HEIGHT;
e11110a5b74487 Yong Zhi   2018-12-06  499  	} else { /* 1.0 <= Scaling factor <= 1.75 */
e11110a5b74487 Yong Zhi   2018-12-06  500  		reso.chunk_height = IMGU_OSYS_BLOCK_HEIGHT / 2;
e11110a5b74487 Yong Zhi   2018-12-06  501  		reso.block_height = IMGU_OSYS_BLOCK_HEIGHT;
e11110a5b74487 Yong Zhi   2018-12-06  502  	}
e11110a5b74487 Yong Zhi   2018-12-06  503  
e11110a5b74487 Yong Zhi   2018-12-06  504  	/*
e11110a5b74487 Yong Zhi   2018-12-06  505  	 * Calculate scaler configuration parameters based on input and output
e11110a5b74487 Yong Zhi   2018-12-06  506  	 * resolution.
e11110a5b74487 Yong Zhi   2018-12-06  507  	 */
e11110a5b74487 Yong Zhi   2018-12-06  508  
e11110a5b74487 Yong Zhi   2018-12-06  509  	if (frame_params[IMGU_ABI_OSYS_PIN_VF].enable) {
e11110a5b74487 Yong Zhi   2018-12-06  510  		/*
e11110a5b74487 Yong Zhi   2018-12-06  511  		 * When aspect ratio is different between target resolution and
e11110a5b74487 Yong Zhi   2018-12-06  512  		 * required resolution, determine the crop factor to do
e11110a5b74487 Yong Zhi   2018-12-06  513  		 * symmetric cropping
e11110a5b74487 Yong Zhi   2018-12-06  514  		 */
e11110a5b74487 Yong Zhi   2018-12-06  515  		u32 w = reso.pin_width[IMGU_ABI_OSYS_PIN_VF] -
e11110a5b74487 Yong Zhi   2018-12-06  516  			frame_params[IMGU_ABI_OSYS_PIN_VF].width;
e11110a5b74487 Yong Zhi   2018-12-06  517  		u32 h = reso.pin_height[IMGU_ABI_OSYS_PIN_VF] -
e11110a5b74487 Yong Zhi   2018-12-06  518  			frame_params[IMGU_ABI_OSYS_PIN_VF].height;
e11110a5b74487 Yong Zhi   2018-12-06  519  
e11110a5b74487 Yong Zhi   2018-12-06  520  		frame_params[IMGU_ABI_OSYS_PIN_VF].crop_left =
e11110a5b74487 Yong Zhi   2018-12-06  521  			roundclosest_down(w / 2, IMGU_OSYS_DMA_CROP_W_LIMIT);
e11110a5b74487 Yong Zhi   2018-12-06  522  		frame_params[IMGU_ABI_OSYS_PIN_VF].crop_top =
e11110a5b74487 Yong Zhi   2018-12-06  523  			roundclosest_down(h / 2, IMGU_OSYS_DMA_CROP_H_LIMIT);
e11110a5b74487 Yong Zhi   2018-12-06  524  
e11110a5b74487 Yong Zhi   2018-12-06  525  		if (reso.input_height % 4 || reso.input_width % 8) {
e11110a5b74487 Yong Zhi   2018-12-06  526  			dev_err(css->dev, "OSYS input width is not multiple of 8 or\n");
e11110a5b74487 Yong Zhi   2018-12-06  527  			dev_err(css->dev, "height is not multiple of 4\n");
e11110a5b74487 Yong Zhi   2018-12-06  528  			return -EINVAL;
e11110a5b74487 Yong Zhi   2018-12-06  529  		}
e11110a5b74487 Yong Zhi   2018-12-06  530  	}
e11110a5b74487 Yong Zhi   2018-12-06  531  
e11110a5b74487 Yong Zhi   2018-12-06  532  	/* Stripe parameters */
e11110a5b74487 Yong Zhi   2018-12-06  533  
e11110a5b74487 Yong Zhi   2018-12-06  534  	if (frame_params[IMGU_ABI_OSYS_PIN_VF].enable) {
e11110a5b74487 Yong Zhi   2018-12-06  535  		output_width = reso.pin_width[IMGU_ABI_OSYS_PIN_VF];
e11110a5b74487 Yong Zhi   2018-12-06  536  	} else {
e11110a5b74487 Yong Zhi   2018-12-06  537  		/*
e11110a5b74487 Yong Zhi   2018-12-06  538  		 * in case scaler output is not enabled
e11110a5b74487 Yong Zhi   2018-12-06  539  		 * take output width as input width since
e11110a5b74487 Yong Zhi   2018-12-06  540  		 * there is no scaling at main pin.
e11110a5b74487 Yong Zhi   2018-12-06  541  		 * Due to the fact that main pin can be different
e11110a5b74487 Yong Zhi   2018-12-06  542  		 * from input resolution to osys in the case of cropping,
e11110a5b74487 Yong Zhi   2018-12-06  543  		 * main pin resolution is not taken.
e11110a5b74487 Yong Zhi   2018-12-06  544  		 */
e11110a5b74487 Yong Zhi   2018-12-06  545  		output_width = reso.input_width;
e11110a5b74487 Yong Zhi   2018-12-06  546  	}
e11110a5b74487 Yong Zhi   2018-12-06  547  
e11110a5b74487 Yong Zhi   2018-12-06  548  	for (s = 0; s < stripes; s++) {
e11110a5b74487 Yong Zhi   2018-12-06  549  		int stripe_offset_inp_y = 0;
e11110a5b74487 Yong Zhi   2018-12-06  550  		int stripe_offset_inp_uv = 0;
e11110a5b74487 Yong Zhi   2018-12-06  551  		int stripe_offset_out_y = 0;
e11110a5b74487 Yong Zhi   2018-12-06  552  		int stripe_offset_out_uv = 0;
e11110a5b74487 Yong Zhi   2018-12-06  553  		int stripe_phase_init_y = scaler_luma->phase_init;
e11110a5b74487 Yong Zhi   2018-12-06  554  		int stripe_phase_init_uv = scaler_chroma->phase_init;
e11110a5b74487 Yong Zhi   2018-12-06  555  		int stripe_offset_blk_y = 0;
e11110a5b74487 Yong Zhi   2018-12-06  556  		int stripe_offset_blk_uv = 0;
e11110a5b74487 Yong Zhi   2018-12-06  557  		int stripe_offset_col_y = 0;
e11110a5b74487 Yong Zhi   2018-12-06  558  		int stripe_offset_col_uv = 0;
e11110a5b74487 Yong Zhi   2018-12-06  559  		int stripe_pad_left_y = scaler_luma->pad_left;
e11110a5b74487 Yong Zhi   2018-12-06  560  		int stripe_pad_left_uv = scaler_chroma->pad_left;
e11110a5b74487 Yong Zhi   2018-12-06  561  		int stripe_pad_right_y = scaler_luma->pad_right;
e11110a5b74487 Yong Zhi   2018-12-06  562  		int stripe_pad_right_uv = scaler_chroma->pad_right;
e11110a5b74487 Yong Zhi   2018-12-06  563  		int stripe_crop_left_y = scaler_luma->crop_left;
e11110a5b74487 Yong Zhi   2018-12-06  564  		int stripe_crop_left_uv = scaler_chroma->crop_left;
e11110a5b74487 Yong Zhi   2018-12-06  565  		int stripe_input_width_y = reso.input_width;
e11110a5b74487 Yong Zhi   2018-12-06  566  		int stripe_input_width_uv = 0;
e11110a5b74487 Yong Zhi   2018-12-06  567  		int stripe_output_width_y = output_width;
e11110a5b74487 Yong Zhi   2018-12-06  568  		int stripe_output_width_uv = 0;
e11110a5b74487 Yong Zhi   2018-12-06  569  		int chunk_floor_y = 0;
e11110a5b74487 Yong Zhi   2018-12-06  570  		int chunk_floor_uv = 0;
e11110a5b74487 Yong Zhi   2018-12-06  571  		int chunk_ceil_uv = 0;
e11110a5b74487 Yong Zhi   2018-12-06  572  
e11110a5b74487 Yong Zhi   2018-12-06  573  		if (stripes > 1) {
e11110a5b74487 Yong Zhi   2018-12-06  574  			if (s > 0) {
e11110a5b74487 Yong Zhi   2018-12-06  575  				/* Calculate stripe offsets */
e11110a5b74487 Yong Zhi   2018-12-06  576  				stripe_offset_out_y =
e11110a5b74487 Yong Zhi   2018-12-06  577  					output_width * s / stripes;
e11110a5b74487 Yong Zhi   2018-12-06  578  				stripe_offset_out_y =
e11110a5b74487 Yong Zhi   2018-12-06  579  					rounddown(stripe_offset_out_y,
e11110a5b74487 Yong Zhi   2018-12-06  580  						  IPU3_UAPI_ISP_VEC_ELEMS);
e11110a5b74487 Yong Zhi   2018-12-06  581  				stripe_offset_out_uv = stripe_offset_out_y /
e11110a5b74487 Yong Zhi   2018-12-06  582  						IMGU_LUMA_TO_CHROMA_RATIO;
e11110a5b74487 Yong Zhi   2018-12-06  583  				stripe_offset_inp_y =
27b795adb3c221 Yong Zhi   2019-02-07  584  					imgu_css_osys_calc_stripe_offset(
e11110a5b74487 Yong Zhi   2018-12-06  585  						stripe_offset_out_y,
e11110a5b74487 Yong Zhi   2018-12-06  586  						IMGU_OSYS_FIR_PHASES,
e11110a5b74487 Yong Zhi   2018-12-06  587  						scaler_luma->phase_init,
e11110a5b74487 Yong Zhi   2018-12-06  588  						scaler_luma->phase_step,
e11110a5b74487 Yong Zhi   2018-12-06  589  						scaler_luma->pad_left);
e11110a5b74487 Yong Zhi   2018-12-06  590  				stripe_offset_inp_uv =
27b795adb3c221 Yong Zhi   2019-02-07  591  					imgu_css_osys_calc_stripe_offset(
e11110a5b74487 Yong Zhi   2018-12-06  592  						stripe_offset_out_uv,
e11110a5b74487 Yong Zhi   2018-12-06  593  						IMGU_OSYS_FIR_PHASES,
e11110a5b74487 Yong Zhi   2018-12-06  594  						scaler_chroma->phase_init,
e11110a5b74487 Yong Zhi   2018-12-06  595  						scaler_chroma->phase_step,
e11110a5b74487 Yong Zhi   2018-12-06  596  						scaler_chroma->pad_left);
e11110a5b74487 Yong Zhi   2018-12-06  597  
e11110a5b74487 Yong Zhi   2018-12-06  598  				/* Calculate stripe phase init */
e11110a5b74487 Yong Zhi   2018-12-06  599  				stripe_phase_init_y =
27b795adb3c221 Yong Zhi   2019-02-07  600  					imgu_css_osys_calc_stripe_phase_init(
e11110a5b74487 Yong Zhi   2018-12-06  601  						stripe_offset_out_y,
e11110a5b74487 Yong Zhi   2018-12-06  602  						IMGU_OSYS_FIR_PHASES,
e11110a5b74487 Yong Zhi   2018-12-06  603  						scaler_luma->phase_init,
e11110a5b74487 Yong Zhi   2018-12-06  604  						scaler_luma->phase_step,
e11110a5b74487 Yong Zhi   2018-12-06  605  						scaler_luma->pad_left);
e11110a5b74487 Yong Zhi   2018-12-06  606  				stripe_phase_init_uv =
27b795adb3c221 Yong Zhi   2019-02-07  607  					imgu_css_osys_calc_stripe_phase_init(
e11110a5b74487 Yong Zhi   2018-12-06  608  						stripe_offset_out_uv,
e11110a5b74487 Yong Zhi   2018-12-06  609  						IMGU_OSYS_FIR_PHASES,
e11110a5b74487 Yong Zhi   2018-12-06  610  						scaler_chroma->phase_init,
e11110a5b74487 Yong Zhi   2018-12-06  611  						scaler_chroma->phase_step,
e11110a5b74487 Yong Zhi   2018-12-06  612  						scaler_chroma->pad_left);
e11110a5b74487 Yong Zhi   2018-12-06  613  
e11110a5b74487 Yong Zhi   2018-12-06  614  				/*
e11110a5b74487 Yong Zhi   2018-12-06  615  				 * Chunk boundary corner case - luma and chroma
e11110a5b74487 Yong Zhi   2018-12-06  616  				 * start from different input chunks.
e11110a5b74487 Yong Zhi   2018-12-06  617  				 */
e11110a5b74487 Yong Zhi   2018-12-06  618  				chunk_floor_y = rounddown(stripe_offset_inp_y,
e11110a5b74487 Yong Zhi   2018-12-06  619  							  reso.chunk_width);
e11110a5b74487 Yong Zhi   2018-12-06  620  				chunk_floor_uv =
e11110a5b74487 Yong Zhi   2018-12-06  621  					rounddown(stripe_offset_inp_uv,
e11110a5b74487 Yong Zhi   2018-12-06  622  						  reso.chunk_width /
e11110a5b74487 Yong Zhi   2018-12-06  623  						  IMGU_LUMA_TO_CHROMA_RATIO);
e11110a5b74487 Yong Zhi   2018-12-06  624  
e11110a5b74487 Yong Zhi   2018-12-06  625  				if (chunk_floor_y != chunk_floor_uv *
e11110a5b74487 Yong Zhi   2018-12-06  626  				    IMGU_LUMA_TO_CHROMA_RATIO) {
e11110a5b74487 Yong Zhi   2018-12-06  627  					/*
e11110a5b74487 Yong Zhi   2018-12-06  628  					 * Match starting luma/chroma chunks.
e11110a5b74487 Yong Zhi   2018-12-06  629  					 * Decrease offset for UV and add output
e11110a5b74487 Yong Zhi   2018-12-06  630  					 * cropping.
e11110a5b74487 Yong Zhi   2018-12-06  631  					 */
e11110a5b74487 Yong Zhi   2018-12-06  632  					stripe_offset_inp_uv -= 1;
e11110a5b74487 Yong Zhi   2018-12-06  633  					stripe_crop_left_uv += 1;
e11110a5b74487 Yong Zhi   2018-12-06  634  					stripe_phase_init_uv -=
e11110a5b74487 Yong Zhi   2018-12-06  635  						scaler_luma->phase_step;
e11110a5b74487 Yong Zhi   2018-12-06  636  					if (stripe_phase_init_uv < 0)
e11110a5b74487 Yong Zhi   2018-12-06  637  						stripe_phase_init_uv =
e11110a5b74487 Yong Zhi   2018-12-06  638  							stripe_phase_init_uv +
e11110a5b74487 Yong Zhi   2018-12-06  639  							IMGU_OSYS_FIR_PHASES;
e11110a5b74487 Yong Zhi   2018-12-06  640  				}
e11110a5b74487 Yong Zhi   2018-12-06  641  				/*
e11110a5b74487 Yong Zhi   2018-12-06  642  				 * FW workaround for a HW bug: if the first
e11110a5b74487 Yong Zhi   2018-12-06  643  				 * chroma pixel is generated exactly at the end
e11110a5b74487 Yong Zhi   2018-12-06  644  				 * of chunck scaler HW may not output the pixel
e11110a5b74487 Yong Zhi   2018-12-06  645  				 * for downscale factors smaller than 1.5
e11110a5b74487 Yong Zhi   2018-12-06  646  				 * (timing issue).
e11110a5b74487 Yong Zhi   2018-12-06  647  				 */
e11110a5b74487 Yong Zhi   2018-12-06  648  				chunk_ceil_uv =
e11110a5b74487 Yong Zhi   2018-12-06  649  					roundup(stripe_offset_inp_uv,
e11110a5b74487 Yong Zhi   2018-12-06  650  						reso.chunk_width /
e11110a5b74487 Yong Zhi   2018-12-06  651  						IMGU_LUMA_TO_CHROMA_RATIO);
e11110a5b74487 Yong Zhi   2018-12-06  652  
e11110a5b74487 Yong Zhi   2018-12-06  653  				if (stripe_offset_inp_uv ==
e11110a5b74487 Yong Zhi   2018-12-06  654  				    chunk_ceil_uv - IMGU_OSYS_TAPS_UV) {
e11110a5b74487 Yong Zhi   2018-12-06  655  					/*
e11110a5b74487 Yong Zhi   2018-12-06  656  					 * Decrease input offset and add
e11110a5b74487 Yong Zhi   2018-12-06  657  					 * output cropping
e11110a5b74487 Yong Zhi   2018-12-06  658  					 */
e11110a5b74487 Yong Zhi   2018-12-06  659  					stripe_offset_inp_uv -= 1;
e11110a5b74487 Yong Zhi   2018-12-06  660  					stripe_phase_init_uv -=
e11110a5b74487 Yong Zhi   2018-12-06  661  						scaler_luma->phase_step;
e11110a5b74487 Yong Zhi   2018-12-06  662  					if (stripe_phase_init_uv < 0) {
e11110a5b74487 Yong Zhi   2018-12-06  663  						stripe_phase_init_uv +=
e11110a5b74487 Yong Zhi   2018-12-06  664  							IMGU_OSYS_FIR_PHASES;
e11110a5b74487 Yong Zhi   2018-12-06  665  						stripe_crop_left_uv += 1;
e11110a5b74487 Yong Zhi   2018-12-06  666  					}
e11110a5b74487 Yong Zhi   2018-12-06  667  				}
e11110a5b74487 Yong Zhi   2018-12-06  668  
e11110a5b74487 Yong Zhi   2018-12-06  669  				/*
e11110a5b74487 Yong Zhi   2018-12-06  670  				 * Calculate block and column offsets for the
e11110a5b74487 Yong Zhi   2018-12-06  671  				 * input stripe
e11110a5b74487 Yong Zhi   2018-12-06  672  				 */
e11110a5b74487 Yong Zhi   2018-12-06  673  				stripe_offset_blk_y =
e11110a5b74487 Yong Zhi   2018-12-06  674  					rounddown(stripe_offset_inp_y,
e11110a5b74487 Yong Zhi   2018-12-06  675  						  IMGU_INPUT_BLOCK_WIDTH);
e11110a5b74487 Yong Zhi   2018-12-06  676  				stripe_offset_blk_uv =
e11110a5b74487 Yong Zhi   2018-12-06  677  					rounddown(stripe_offset_inp_uv,
e11110a5b74487 Yong Zhi   2018-12-06  678  						  IMGU_INPUT_BLOCK_WIDTH /
e11110a5b74487 Yong Zhi   2018-12-06  679  						  IMGU_LUMA_TO_CHROMA_RATIO);
e11110a5b74487 Yong Zhi   2018-12-06  680  				stripe_offset_col_y = stripe_offset_inp_y -
e11110a5b74487 Yong Zhi   2018-12-06  681  							stripe_offset_blk_y;
e11110a5b74487 Yong Zhi   2018-12-06  682  				stripe_offset_col_uv = stripe_offset_inp_uv -
e11110a5b74487 Yong Zhi   2018-12-06  683  							stripe_offset_blk_uv;
e11110a5b74487 Yong Zhi   2018-12-06  684  
e11110a5b74487 Yong Zhi   2018-12-06  685  				/* Left padding is only for the first stripe */
e11110a5b74487 Yong Zhi   2018-12-06  686  				stripe_pad_left_y = 0;
e11110a5b74487 Yong Zhi   2018-12-06  687  				stripe_pad_left_uv = 0;
e11110a5b74487 Yong Zhi   2018-12-06  688  			}
e11110a5b74487 Yong Zhi   2018-12-06  689  
e11110a5b74487 Yong Zhi   2018-12-06  690  			/* Right padding is only for the last stripe */
e11110a5b74487 Yong Zhi   2018-12-06  691  			if (s < stripes - 1) {
e11110a5b74487 Yong Zhi   2018-12-06  692  				int next_offset;
e11110a5b74487 Yong Zhi   2018-12-06  693  
e11110a5b74487 Yong Zhi   2018-12-06  694  				stripe_pad_right_y = 0;
e11110a5b74487 Yong Zhi   2018-12-06  695  				stripe_pad_right_uv = 0;
e11110a5b74487 Yong Zhi   2018-12-06  696  
e11110a5b74487 Yong Zhi   2018-12-06  697  				next_offset = output_width * (s + 1) / stripes;
e11110a5b74487 Yong Zhi   2018-12-06  698  				next_offset = rounddown(next_offset, 64);
e11110a5b74487 Yong Zhi   2018-12-06  699  				stripe_output_width_y = next_offset -
e11110a5b74487 Yong Zhi   2018-12-06  700  							stripe_offset_out_y;
e11110a5b74487 Yong Zhi   2018-12-06  701  			} else {
e11110a5b74487 Yong Zhi   2018-12-06  702  				stripe_output_width_y = output_width -
e11110a5b74487 Yong Zhi   2018-12-06  703  							stripe_offset_out_y;
e11110a5b74487 Yong Zhi   2018-12-06  704  			}
e11110a5b74487 Yong Zhi   2018-12-06  705  
e11110a5b74487 Yong Zhi   2018-12-06  706  			/* Calculate target output stripe width */
e11110a5b74487 Yong Zhi   2018-12-06  707  			stripe_output_width_uv = stripe_output_width_y /
e11110a5b74487 Yong Zhi   2018-12-06  708  						IMGU_LUMA_TO_CHROMA_RATIO;
e11110a5b74487 Yong Zhi   2018-12-06  709  			/* Calculate input stripe width */
e11110a5b74487 Yong Zhi   2018-12-06  710  			stripe_input_width_y = stripe_offset_col_y +
27b795adb3c221 Yong Zhi   2019-02-07  711  				imgu_css_osys_calc_inp_stripe_width(
e11110a5b74487 Yong Zhi   2018-12-06  712  						stripe_output_width_y,
e11110a5b74487 Yong Zhi   2018-12-06  713  						IMGU_OSYS_FIR_PHASES,
e11110a5b74487 Yong Zhi   2018-12-06  714  						stripe_phase_init_y,
e11110a5b74487 Yong Zhi   2018-12-06  715  						scaler_luma->phase_step,
e11110a5b74487 Yong Zhi   2018-12-06  716  						IMGU_OSYS_TAPS_Y,
e11110a5b74487 Yong Zhi   2018-12-06  717  						stripe_pad_left_y,
e11110a5b74487 Yong Zhi   2018-12-06  718  						stripe_pad_right_y);
e11110a5b74487 Yong Zhi   2018-12-06  719  
e11110a5b74487 Yong Zhi   2018-12-06  720  			stripe_input_width_uv = stripe_offset_col_uv +
27b795adb3c221 Yong Zhi   2019-02-07  721  				imgu_css_osys_calc_inp_stripe_width(
e11110a5b74487 Yong Zhi   2018-12-06  722  						stripe_output_width_uv,
e11110a5b74487 Yong Zhi   2018-12-06  723  						IMGU_OSYS_FIR_PHASES,
e11110a5b74487 Yong Zhi   2018-12-06  724  						stripe_phase_init_uv,
e11110a5b74487 Yong Zhi   2018-12-06  725  						scaler_chroma->phase_step,
e11110a5b74487 Yong Zhi   2018-12-06  726  						IMGU_OSYS_TAPS_UV,
e11110a5b74487 Yong Zhi   2018-12-06  727  						stripe_pad_left_uv,
e11110a5b74487 Yong Zhi   2018-12-06  728  						stripe_pad_right_uv);
e11110a5b74487 Yong Zhi   2018-12-06  729  
e11110a5b74487 Yong Zhi   2018-12-06  730  			stripe_input_width_uv = max(DIV_ROUND_UP(
e11110a5b74487 Yong Zhi   2018-12-06  731  						    stripe_input_width_y,
e11110a5b74487 Yong Zhi   2018-12-06  732  						    IMGU_LUMA_TO_CHROMA_RATIO),
e11110a5b74487 Yong Zhi   2018-12-06  733  						    stripe_input_width_uv);
e11110a5b74487 Yong Zhi   2018-12-06  734  
e11110a5b74487 Yong Zhi   2018-12-06  735  			stripe_input_width_y = stripe_input_width_uv *
e11110a5b74487 Yong Zhi   2018-12-06  736  						IMGU_LUMA_TO_CHROMA_RATIO;
e11110a5b74487 Yong Zhi   2018-12-06  737  
e11110a5b74487 Yong Zhi   2018-12-06  738  			if (s >= stripes - 1) {
e11110a5b74487 Yong Zhi   2018-12-06  739  				stripe_input_width_y = reso.input_width -
e11110a5b74487 Yong Zhi   2018-12-06  740  					stripe_offset_blk_y;
e11110a5b74487 Yong Zhi   2018-12-06  741  				/*
e11110a5b74487 Yong Zhi   2018-12-06  742  				 * The scaler requires that the last stripe
e11110a5b74487 Yong Zhi   2018-12-06  743  				 * spans at least two input blocks.
e11110a5b74487 Yong Zhi   2018-12-06  744  				 */
e11110a5b74487 Yong Zhi   2018-12-06  745  			}
e11110a5b74487 Yong Zhi   2018-12-06  746  
e11110a5b74487 Yong Zhi   2018-12-06  747  			/*
e11110a5b74487 Yong Zhi   2018-12-06  748  			 * Spec: input stripe width must be a multiple of 8.
e11110a5b74487 Yong Zhi   2018-12-06  749  			 * Increase the input width and recalculate the output
e11110a5b74487 Yong Zhi   2018-12-06  750  			 * width. This may produce an extra column of junk
e11110a5b74487 Yong Zhi   2018-12-06  751  			 * blocks which will be overwritten by the
e11110a5b74487 Yong Zhi   2018-12-06  752  			 * next stripe.
e11110a5b74487 Yong Zhi   2018-12-06  753  			 */
e11110a5b74487 Yong Zhi   2018-12-06  754  			stripe_input_width_y = ALIGN(stripe_input_width_y, 8);
e11110a5b74487 Yong Zhi   2018-12-06  755  			stripe_output_width_y =
27b795adb3c221 Yong Zhi   2019-02-07  756  				imgu_css_osys_out_stripe_width(
e11110a5b74487 Yong Zhi   2018-12-06  757  						stripe_input_width_y,
e11110a5b74487 Yong Zhi   2018-12-06  758  						IMGU_OSYS_FIR_PHASES,
e11110a5b74487 Yong Zhi   2018-12-06  759  						stripe_phase_init_y,
e11110a5b74487 Yong Zhi   2018-12-06  760  						scaler_luma->phase_step,
e11110a5b74487 Yong Zhi   2018-12-06  761  						IMGU_OSYS_TAPS_Y,
e11110a5b74487 Yong Zhi   2018-12-06  762  						stripe_pad_left_y,
e11110a5b74487 Yong Zhi   2018-12-06  763  						stripe_pad_right_y,
e11110a5b74487 Yong Zhi   2018-12-06  764  						stripe_offset_col_y);
e11110a5b74487 Yong Zhi   2018-12-06  765  
e11110a5b74487 Yong Zhi   2018-12-06  766  			stripe_output_width_y =
e11110a5b74487 Yong Zhi   2018-12-06  767  					rounddown(stripe_output_width_y,
e11110a5b74487 Yong Zhi   2018-12-06  768  						  IMGU_LUMA_TO_CHROMA_RATIO);
e11110a5b74487 Yong Zhi   2018-12-06  769  		}
e11110a5b74487 Yong Zhi   2018-12-06  770  		/*
e11110a5b74487 Yong Zhi   2018-12-06  771  		 * Following section executes and process parameters
e11110a5b74487 Yong Zhi   2018-12-06  772  		 * for both cases - Striping or No Striping.
e11110a5b74487 Yong Zhi   2018-12-06  773  		 */
e11110a5b74487 Yong Zhi   2018-12-06  774  		{
e11110a5b74487 Yong Zhi   2018-12-06  775  			unsigned int i;
e11110a5b74487 Yong Zhi   2018-12-06 @776  			int pin_scale = 0;
e11110a5b74487 Yong Zhi   2018-12-06  777  			/*Input resolution */
e11110a5b74487 Yong Zhi   2018-12-06  778  
e11110a5b74487 Yong Zhi   2018-12-06  779  			stripe_params[s].input_width = stripe_input_width_y;
e11110a5b74487 Yong Zhi   2018-12-06  780  			stripe_params[s].input_height = reso.input_height;
e11110a5b74487 Yong Zhi   2018-12-06  781  
e11110a5b74487 Yong Zhi   2018-12-06  782  			for (i = 0; i < IMGU_ABI_OSYS_PINS; i++) {
e11110a5b74487 Yong Zhi   2018-12-06  783  				if (frame_params[i].scaled) {
e11110a5b74487 Yong Zhi   2018-12-06  784  					/*
e11110a5b74487 Yong Zhi   2018-12-06  785  					 * Output stripe resolution and offset
e11110a5b74487 Yong Zhi   2018-12-06  786  					 * as produced by the scaler; actual
e11110a5b74487 Yong Zhi   2018-12-06  787  					 * output resolution may be slightly
e11110a5b74487 Yong Zhi   2018-12-06  788  					 * smaller.
e11110a5b74487 Yong Zhi   2018-12-06  789  					 */
e11110a5b74487 Yong Zhi   2018-12-06  790  					stripe_params[s].output_width[i] =
e11110a5b74487 Yong Zhi   2018-12-06  791  						stripe_output_width_y;
e11110a5b74487 Yong Zhi   2018-12-06  792  					stripe_params[s].output_height[i] =
e11110a5b74487 Yong Zhi   2018-12-06  793  						reso.pin_height[i];
e11110a5b74487 Yong Zhi   2018-12-06  794  					stripe_params[s].output_offset[i] =
e11110a5b74487 Yong Zhi   2018-12-06  795  						stripe_offset_out_y;
e11110a5b74487 Yong Zhi   2018-12-06  796  
e11110a5b74487 Yong Zhi   2018-12-06  797  					pin_scale += frame_params[i].scaled;
e11110a5b74487 Yong Zhi   2018-12-06  798  				} else {
e11110a5b74487 Yong Zhi   2018-12-06  799  					/* Unscaled pin */
e11110a5b74487 Yong Zhi   2018-12-06  800  					stripe_params[s].output_width[i] =
e11110a5b74487 Yong Zhi   2018-12-06  801  						stripe_params[s].input_width;
e11110a5b74487 Yong Zhi   2018-12-06  802  					stripe_params[s].output_height[i] =
e11110a5b74487 Yong Zhi   2018-12-06  803  						stripe_params[s].input_height;
e11110a5b74487 Yong Zhi   2018-12-06  804  					stripe_params[s].output_offset[i] =
e11110a5b74487 Yong Zhi   2018-12-06  805  						stripe_offset_blk_y;
e11110a5b74487 Yong Zhi   2018-12-06  806  				}
e11110a5b74487 Yong Zhi   2018-12-06  807  			}
e11110a5b74487 Yong Zhi   2018-12-06  808  
e11110a5b74487 Yong Zhi   2018-12-06  809  			/* If no pin use scale, we use BYPASS mode */
e11110a5b74487 Yong Zhi   2018-12-06  810  			stripe_params[s].processing_mode = procmode;
e11110a5b74487 Yong Zhi   2018-12-06  811  			stripe_params[s].phase_step = scaler_luma->phase_step;
e11110a5b74487 Yong Zhi   2018-12-06  812  			stripe_params[s].exp_shift = scaler_luma->exp_shift;
e11110a5b74487 Yong Zhi   2018-12-06  813  			stripe_params[s].phase_init_left_y =
e11110a5b74487 Yong Zhi   2018-12-06  814  				stripe_phase_init_y;
e11110a5b74487 Yong Zhi   2018-12-06  815  			stripe_params[s].phase_init_left_uv =
e11110a5b74487 Yong Zhi   2018-12-06  816  				stripe_phase_init_uv;
e11110a5b74487 Yong Zhi   2018-12-06  817  			stripe_params[s].phase_init_top_y =
e11110a5b74487 Yong Zhi   2018-12-06  818  				scaler_luma->phase_init;
e11110a5b74487 Yong Zhi   2018-12-06  819  			stripe_params[s].phase_init_top_uv =
e11110a5b74487 Yong Zhi   2018-12-06  820  				scaler_chroma->phase_init;
e11110a5b74487 Yong Zhi   2018-12-06  821  			stripe_params[s].pad_left_y = stripe_pad_left_y;
e11110a5b74487 Yong Zhi   2018-12-06  822  			stripe_params[s].pad_left_uv = stripe_pad_left_uv;
e11110a5b74487 Yong Zhi   2018-12-06  823  			stripe_params[s].pad_right_y = stripe_pad_right_y;
e11110a5b74487 Yong Zhi   2018-12-06  824  			stripe_params[s].pad_right_uv = stripe_pad_right_uv;
e11110a5b74487 Yong Zhi   2018-12-06  825  			stripe_params[s].pad_top_y = scaler_luma->pad_left;
e11110a5b74487 Yong Zhi   2018-12-06  826  			stripe_params[s].pad_top_uv = scaler_chroma->pad_left;
e11110a5b74487 Yong Zhi   2018-12-06  827  			stripe_params[s].pad_bottom_y = scaler_luma->pad_right;
e11110a5b74487 Yong Zhi   2018-12-06  828  			stripe_params[s].pad_bottom_uv =
e11110a5b74487 Yong Zhi   2018-12-06  829  				scaler_chroma->pad_right;
e11110a5b74487 Yong Zhi   2018-12-06  830  			stripe_params[s].crop_left_y = stripe_crop_left_y;
e11110a5b74487 Yong Zhi   2018-12-06  831  			stripe_params[s].crop_top_y = scaler_luma->crop_top;
e11110a5b74487 Yong Zhi   2018-12-06  832  			stripe_params[s].crop_left_uv = stripe_crop_left_uv;
e11110a5b74487 Yong Zhi   2018-12-06  833  			stripe_params[s].crop_top_uv = scaler_chroma->crop_top;
e11110a5b74487 Yong Zhi   2018-12-06  834  			stripe_params[s].start_column_y = stripe_offset_col_y;
e11110a5b74487 Yong Zhi   2018-12-06  835  			stripe_params[s].start_column_uv = stripe_offset_col_uv;
e11110a5b74487 Yong Zhi   2018-12-06  836  			stripe_params[s].chunk_width = reso.chunk_width;
e11110a5b74487 Yong Zhi   2018-12-06  837  			stripe_params[s].chunk_height = reso.chunk_height;
e11110a5b74487 Yong Zhi   2018-12-06  838  			stripe_params[s].block_width = reso.block_width;
e11110a5b74487 Yong Zhi   2018-12-06  839  			stripe_params[s].block_height = reso.block_height;
e11110a5b74487 Yong Zhi   2018-12-06  840  		}
e11110a5b74487 Yong Zhi   2018-12-06  841  	}
e11110a5b74487 Yong Zhi   2018-12-06  842  
e11110a5b74487 Yong Zhi   2018-12-06  843  	return 0;
e11110a5b74487 Yong Zhi   2018-12-06  844  }
e11110a5b74487 Yong Zhi   2018-12-06  845  

:::::: The code at line 776 was first introduced by commit
:::::: e11110a5b74487cfc99dad8a5744fe26782f5d9c media: staging/intel-ipu3: css: Compute and program ccs

:::::: TO: Yong Zhi <yong.zhi@...el.com>
:::::: CC: Mauro Carvalho Chehab <mchehab+samsung@...nel.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (26208 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ