Re: [v6 11/16] drm/i915/icl: Enable Plane Degamma

kbuild test robot
2019-03-19T19:31:32Z

Hi Uma,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on next-20190319]
[cannot apply to v5.1-rc1]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Uma-Shankar/Add-Plane-Color-Properties/20190319-222429
base: git://anongit.freedesktop.org/drm-intel for-linux-next
reproduce:
# apt-get install sparse
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

sparse warnings: (new ones prefixed by >>)

include/uapi/linux/perf_event.h:147:56: sparse: cast truncates bits from constant value (8000000000000000 becomes 0)
>> drivers/gpu/drm/i915/intel_color.c:635:55: sparse: constant 0x7ffffffff is so big it is long
drivers/gpu/drm/i915/intel_color.c:119:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:119:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:119:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:119:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:119:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:119:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:119:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:225:29: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:225:29: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:225:29: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:225:29: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:225:29: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:225:29: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:225:29: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:235:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:235:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:235:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:235:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:235:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:235:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:235:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:238:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:238:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:238:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:238:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:238:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:238:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:238:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:241:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:241:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:241:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:241:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:241:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:241:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:241:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:243:38: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:243:38: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:243:38: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:243:38: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:243:38: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:243:38: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:243:38: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:246:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:246:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:246:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:246:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:246:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:246:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:246:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:249:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:249:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:249:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:249:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:249:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:249:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:249:33: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:331:37: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:331:37: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:331:37: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:331:37: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:331:37: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:331:37: sparse: expression using sizeof(void)
drivers/gpu/drm/i915/intel_color.c:331:37: sparse: expression using sizeof(void)

vim +635 drivers/gpu/drm/i915/intel_color.c

617
618 static void icl_load_plane_degamma_lut(const struct drm_plane_state *state,
619 u32 offset)
620 {
621 struct drm_i915_private *dev_priv = to_i915(state->plane->dev);
622 enum pipe pipe = to_intel_plane(state->plane)->pipe;
623 enum plane_id plane = to_intel_plane(state->plane)->id;
624 u32 i, lut_size;
625
626 if (icl_is_hdr_plane(dev_priv, plane)) {
627 lut_size = 128;
628 if (state->degamma_lut) {
629 struct drm_color_lut_ext *lut =
630 (struct drm_color_lut_ext *)state->gamma_lut->data;
631
632 for (i = 0; i < lut_size; i++) {
633 u64 word = drm_color_lut_extract_ext(lut[i].red,
634 24);
> 635 u32 lut_val = (word & 0x7ffffffff) >> 8;
636
637 I915_WRITE(PLANE_PRE_CSC_GAMC_DATA_ENH(pipe, plane, i),
638 lut_val);
639 }
640
641 /* Program the max register to clamp values > 1.0. */
642 I915_WRITE(PLANE_PRE_CSC_GAMC_DATA_ENH(pipe, plane, 0),
643 drm_color_lut_extract_ext(lut[i].red, 24));
644 I915_WRITE(PLANE_PRE_CSC_GAMC_DATA_ENH(pipe, plane, 1),
645 drm_color_lut_extract_ext(lut[i].green, 24));
646 I915_WRITE(PLANE_PRE_CSC_GAMC_DATA_ENH(pipe, plane, 2),
647 drm_color_lut_extract_ext(lut[i].blue, 24));
648 } else {
649 for (i = 0; i < lut_size; i++) {
650 u32 v = (i * ((1 << 24) - 1)) / (lut_size - 1);
651 I915_WRITE(PLANE_PRE_CSC_GAMC_DATA_ENH(pipe, plane, i), v);
652 }
653
654 I915_WRITE(PLANE_PRE_CSC_GAMC_DATA_ENH(pipe, plane, 0),
655 (1 << 24) - 1);
656 I915_WRITE(PLANE_PRE_CSC_GAMC_DATA_ENH(pipe, plane, 1),
657 (1 << 24) - 1);
658 I915_WRITE(PLANE_PRE_CSC_GAMC_DATA_ENH(pipe, plane, 2),
659 (1 << 24) - 1);
660 }
661 } else {
662 lut_size = 32;
663 if (state->degamma_lut) {
664 struct drm_color_lut *lut =
665 (struct drm_color_lut *)state->gamma_lut->data;
666
667 for (i = 0; i < lut_size; i++)
668 I915_WRITE(PLANE_PRE_CSC_GAMC_DATA(pipe, plane, i),
669 lut[i].green);
670
671 /* Program the max register to clamp values > 1.0. */
672 I915_WRITE(PLANE_PRE_CSC_GAMC_DATA(pipe, plane, 0),
673 (1 << 16));
674 I915_WRITE(PLANE_PRE_CSC_GAMC_DATA(pipe, plane, 1),
675 (1 << 16));
676 I915_WRITE(PLANE_PRE_CSC_GAMC_DATA(pipe, plane, 2),
677 (1 << 16));
678 } else {
679 for (i = 0; i < lut_size; i++) {
680 u32 v = (i * ((1 << 24) - 1)) / (lut_size - 1);
681
682 I915_WRITE(PLANE_PRE_CSC_GAMC_DATA(pipe, plane, i), v);
683 }
684
685 I915_WRITE(PLANE_PRE_CSC_GAMC_DATA(pipe, plane, 0),
686 (1 << 16));
687 I915_WRITE(PLANE_PRE_CSC_GAMC_DATA(pipe, plane, 1),
688 (1 << 16));
689 I915_WRITE(PLANE_PRE_CSC_GAMC_DATA(pipe, plane, 2),
690 (1 << 16));
691 }
692 }
693 }
694

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation