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@xxxxxxxxx> 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@xxxxxxxxx> :::::: CC: Mauro Carvalho Chehab <mchehab+samsung@xxxxxxxxxx> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip