tree: git://anongit.freedesktop.org/drm-intel for-linux-next-gt head: 192bb40f030a41ca95c5cff8c9340b725bc7ba8b commit: 192bb40f030a41ca95c5cff8c9340b725bc7ba8b [1/1] drm/i915/gt: Manage uncore->lock while waiting on MCR register config: i386-defconfig compiler: gcc-11 (Debian 11.3.0-8) 11.3.0 reproduce (this is a W=1 build): git remote add drm-intel git://anongit.freedesktop.org/drm-intel git fetch --no-tags drm-intel for-linux-next-gt git checkout 192bb40f030a41ca95c5cff8c9340b725bc7ba8b # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/gpu/drm/i915/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> drivers/gpu/drm/i915/gt/intel_gt_mcr.c:739: warning: expecting prototype for intel_gt_mcr_wait_for_reg_fw(). Prototype was for intel_gt_mcr_wait_for_reg() instead vim +739 drivers/gpu/drm/i915/gt/intel_gt_mcr.c 3068bec83eea32 Matt Roper 2022-10-14 703 3068bec83eea32 Matt Roper 2022-10-14 704 /** 3068bec83eea32 Matt Roper 2022-10-14 705 * intel_gt_mcr_wait_for_reg_fw - wait until MCR register matches expected state 3068bec83eea32 Matt Roper 2022-10-14 706 * @gt: GT structure 3068bec83eea32 Matt Roper 2022-10-14 707 * @reg: the register to read 3068bec83eea32 Matt Roper 2022-10-14 708 * @mask: mask to apply to register value 3068bec83eea32 Matt Roper 2022-10-14 709 * @value: value to wait for 3068bec83eea32 Matt Roper 2022-10-14 710 * @fast_timeout_us: fast timeout in microsecond for atomic/tight wait 3068bec83eea32 Matt Roper 2022-10-14 711 * @slow_timeout_ms: slow timeout in millisecond 3068bec83eea32 Matt Roper 2022-10-14 712 * 3068bec83eea32 Matt Roper 2022-10-14 713 * This routine waits until the target register @reg contains the expected 3068bec83eea32 Matt Roper 2022-10-14 714 * @value after applying the @mask, i.e. it waits until :: 3068bec83eea32 Matt Roper 2022-10-14 715 * 3068bec83eea32 Matt Roper 2022-10-14 716 * (intel_gt_mcr_read_any_fw(gt, reg) & mask) == value 3068bec83eea32 Matt Roper 2022-10-14 717 * 3068bec83eea32 Matt Roper 2022-10-14 718 * Otherwise, the wait will timeout after @slow_timeout_ms milliseconds. 3068bec83eea32 Matt Roper 2022-10-14 719 * For atomic context @slow_timeout_ms must be zero and @fast_timeout_us 3068bec83eea32 Matt Roper 2022-10-14 720 * must be not larger than 20,0000 microseconds. 3068bec83eea32 Matt Roper 2022-10-14 721 * 3068bec83eea32 Matt Roper 2022-10-14 722 * This function is basically an MCR-friendly version of 3068bec83eea32 Matt Roper 2022-10-14 723 * __intel_wait_for_register_fw(). Generally this function will only be used 3068bec83eea32 Matt Roper 2022-10-14 724 * on GAM registers which are a bit special --- although they're MCR registers, 3068bec83eea32 Matt Roper 2022-10-14 725 * reads (e.g., waiting for status updates) are always directed to the primary 3068bec83eea32 Matt Roper 2022-10-14 726 * instance. 3068bec83eea32 Matt Roper 2022-10-14 727 * 3068bec83eea32 Matt Roper 2022-10-14 728 * Note that this routine assumes the caller holds forcewake asserted, it is 3068bec83eea32 Matt Roper 2022-10-14 729 * not suitable for very long waits. 3068bec83eea32 Matt Roper 2022-10-14 730 * 3068bec83eea32 Matt Roper 2022-10-14 731 * Return: 0 if the register matches the desired condition, or -ETIMEDOUT. 3068bec83eea32 Matt Roper 2022-10-14 732 */ 192bb40f030a41 Matt Roper 2022-11-17 733 int intel_gt_mcr_wait_for_reg(struct intel_gt *gt, 58bc2453ab8a4b Matt Roper 2022-10-14 734 i915_mcr_reg_t reg, 3068bec83eea32 Matt Roper 2022-10-14 735 u32 mask, 3068bec83eea32 Matt Roper 2022-10-14 736 u32 value, 3068bec83eea32 Matt Roper 2022-10-14 737 unsigned int fast_timeout_us, 3068bec83eea32 Matt Roper 2022-10-14 738 unsigned int slow_timeout_ms) 3068bec83eea32 Matt Roper 2022-10-14 @739 { 3068bec83eea32 Matt Roper 2022-10-14 740 int ret; 3068bec83eea32 Matt Roper 2022-10-14 741 192bb40f030a41 Matt Roper 2022-11-17 742 lockdep_assert_not_held(>->uncore->lock); 192bb40f030a41 Matt Roper 2022-11-17 743 :::::: The code at line 739 was first introduced by commit :::::: 3068bec83eea324b299105ec69a3f42c7968c6c0 drm/i915/gt: Add intel_gt_mcr_wait_for_reg_fw() :::::: TO: Matt Roper :::::: CC: Matt Roper -- 0-DAY CI Kernel Test Service https://01.org/lkp