Hi Harry, [FYI, it's a private test report for your RFC patch.] [auto build test WARNING on drm-intel/for-linux-next] [also build test WARNING on drm-tip/drm-tip drm-exynos/exynos-drm-next next-20210426] [cannot apply to sunxi/sunxi/for-next tegra-drm/drm/tegra/for-next linus/master linux-arm/drm-armada-devel linux-arm/drm-armada-fixes drm/drm-next v5.12] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Harry-Wentland/A-drm_plane-API-to-support-HDR-planes/20210427-014025 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: mips-randconfig-m031-20210426 (attached as .config) compiler: mips-linux-gcc (GCC) 9.3.0 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 # https://github.com/0day-ci/linux/commit/ba39b0b01a53f9600039631c67c59c3cb5af065d git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Harry-Wentland/A-drm_plane-API-to-support-HDR-planes/20210427-014025 git checkout ba39b0b01a53f9600039631c67c59c3cb5af065d # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=mips If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> drivers/gpu/drm/drm_color_mgmt.c:522:5: warning: no previous prototype for 'drm_plane_create_sdr_white_level_property' [-Wmissing-prototypes] 522 | int drm_plane_create_sdr_white_level_property(struct drm_plane *plane){ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/drm_color_mgmt.c:546:13: warning: no previous prototype for 'drm_get_color_transfer_function_name' [-Wmissing-prototypes] 546 | const char *drm_get_color_transfer_function_name(enum drm_color_transfer_function tf) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vim +/drm_plane_create_sdr_white_level_property +522 drivers/gpu/drm/drm_color_mgmt.c 521 > 522 int drm_plane_create_sdr_white_level_property(struct drm_plane *plane){ 523 524 struct drm_property *prop; 525 526 prop = drm_property_create_range(plane->dev, 0, "SDR_WHITE_LEVEL", 0, UINT_MAX); 527 528 if (!prop) 529 return -ENOMEM; 530 531 plane->sdr_white_level_property = prop; 532 drm_object_attach_property(&plane->base, prop, DRM_DEFAULT_SDR_WHITE_LEVEL); 533 534 if (plane->state) 535 plane->state->sdr_white_level = DRM_DEFAULT_SDR_WHITE_LEVEL; 536 537 return 0; 538 } 539 /** 540 * drm_get_color_transfer_function - return a string for color transfer function 541 * @tf: transfer function to compute name of 542 * 543 * In contrast to the other drm_get_*_name functions this one here returns a 544 * const pointer and hence is threadsafe. 545 */ 546 const char *drm_get_color_transfer_function_name(enum drm_color_transfer_function tf) 547 { 548 if (WARN_ON(tf >= ARRAY_SIZE(color_tf_name))) 549 return "unknown"; 550 551 return color_tf_name[tf]; 552 } 553 /** 554 * drm_plane_create_color_properties - color encoding related plane properties 555 * @plane: plane object 556 * @supported_encodings: bitfield indicating supported color encodings 557 * @supported_ranges: bitfileld indicating supported color ranges 558 * @supported_tfs: bitfileld indicating supported color transfer functions 559 * @default_encoding: default color encoding 560 * @default_range: default color range 561 * @default_tf: default color transfer function 562 * 563 * Create and attach plane specific COLOR_ENCODING, COLOR_RANGE and COLOR_TRANSFER_FUNCTION 564 * properties to @plane. The supported encodings, ranges and tfs should 565 * be provided in supported_encodings, supported_ranges and supported_tfs bitmasks. 566 * Each bit set in the bitmask indicates that its number as enum 567 * value is supported. 568 */ 569 int drm_plane_create_color_properties(struct drm_plane *plane, 570 u32 supported_encodings, 571 u32 supported_ranges, 572 u32 supported_tfs, 573 enum drm_color_encoding default_encoding, 574 enum drm_color_range default_range, 575 enum drm_color_transfer_function default_tf) 576 { 577 struct drm_device *dev = plane->dev; 578 struct drm_property *prop; 579 struct drm_prop_enum_list enum_list[max_t(int, DRM_COLOR_ENCODING_MAX, 580 max_t(int, DRM_COLOR_RANGE_MAX, 581 DRM_COLOR_TF_MAX))]; 582 int i, len; 583 584 if (WARN_ON(supported_encodings == 0 || 585 (supported_encodings & -BIT(DRM_COLOR_ENCODING_MAX)) != 0 || 586 (supported_encodings & BIT(default_encoding)) == 0)) 587 return -EINVAL; 588 589 if (WARN_ON(supported_ranges == 0 || 590 (supported_ranges & -BIT(DRM_COLOR_RANGE_MAX)) != 0 || 591 (supported_ranges & BIT(default_range)) == 0)) 592 return -EINVAL; 593 594 if (WARN_ON(supported_tfs == 0 || 595 (supported_tfs & -BIT(DRM_COLOR_TF_MAX)) != 0 || 596 (supported_tfs & BIT(default_tf)) == 0)) 597 return -EINVAL; 598 599 len = 0; 600 for (i = 0; i < DRM_COLOR_ENCODING_MAX; i++) { 601 if ((supported_encodings & BIT(i)) == 0) 602 continue; 603 604 enum_list[len].type = i; 605 enum_list[len].name = color_encoding_name[i]; 606 len++; 607 } 608 609 prop = drm_property_create_enum(dev, 0, "COLOR_ENCODING", 610 enum_list, len); 611 if (!prop) 612 return -ENOMEM; 613 plane->color_encoding_property = prop; 614 drm_object_attach_property(&plane->base, prop, default_encoding); 615 if (plane->state) 616 plane->state->color_encoding = default_encoding; 617 618 len = 0; 619 for (i = 0; i < DRM_COLOR_RANGE_MAX; i++) { 620 if ((supported_ranges & BIT(i)) == 0) 621 continue; 622 623 enum_list[len].type = i; 624 enum_list[len].name = color_range_name[i]; 625 len++; 626 } 627 628 prop = drm_property_create_enum(dev, 0, "COLOR_RANGE", 629 enum_list, len); 630 if (!prop) 631 return -ENOMEM; 632 plane->color_range_property = prop; 633 drm_object_attach_property(&plane->base, prop, default_range); 634 if (plane->state) 635 plane->state->color_range = default_range; 636 637 638 len = 0; 639 for (i = 0; i < DRM_COLOR_TF_MAX; i++) { 640 if ((supported_tfs & BIT(i)) == 0) 641 continue; 642 643 enum_list[len].type = i; 644 enum_list[len].name = color_tf_name[i]; 645 len++; 646 } 647 648 prop = drm_property_create_enum(dev, 0, "COLOR_TRANSFER_FUNCTION", 649 enum_list, len); 650 if (!prop) 651 return -ENOMEM; 652 plane->color_tf_property = prop; 653 drm_object_attach_property(&plane->base, prop, default_tf); 654 if (plane->state) 655 plane->state->color_tf = default_tf; 656 657 return 0; 658 } 659 EXPORT_SYMBOL(drm_plane_create_color_properties); 660 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org