From: kernel test robot <lkp@intel.com>
To: Maarten Lankhorst <dev@lankhorst.se>,
intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org
Cc: oe-kbuild-all@lists.linux.dev
Subject: Re: [i915-rt v4 20/20] drm/i915/display: Remove uncore lock from vlv_atomic_update_fifo
Date: Sat, 20 Dec 2025 19:23:14 +0100 [thread overview]
Message-ID: <202512201922.KJN0PFLf-lkp@intel.com> (raw)
In-Reply-To: <20251218163408.97508-21-dev@lankhorst.se>
Hi Maarten,
kernel test robot noticed the following build warnings:
[auto build test WARNING on drm-i915/for-linux-next]
[also build test WARNING on drm-i915/for-linux-next-fixes drm-xe/drm-xe-next drm-tip/drm-tip linus/master v6.19-rc1 next-20251219]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Maarten-Lankhorst/drm-i915-display-Fix-intel_lpe_audio_irq_handler-for-PREEMPT-RT/20251219-044020
base: https://gitlab.freedesktop.org/drm/i915/kernel.git for-linux-next
patch link: https://lore.kernel.org/r/20251218163408.97508-21-dev%40lankhorst.se
patch subject: [i915-rt v4 20/20] drm/i915/display: Remove uncore lock from vlv_atomic_update_fifo
config: x86_64-rhel-9.4 (https://download.01.org/0day-ci/archive/20251220/202512201922.KJN0PFLf-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251220/202512201922.KJN0PFLf-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512201922.KJN0PFLf-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from drivers/gpu/drm/i915/gt/intel_engine_types.h:26,
from drivers/gpu/drm/i915/gt/intel_context_types.h:17,
from drivers/gpu/drm/i915/gem/i915_gem_context_types.h:19,
from drivers/gpu/drm/i915/i915_drv.h:40,
from drivers/gpu/drm/i915/display/i9xx_wm.c:10:
drivers/gpu/drm/i915/intel_uncore.h: In function 'intel_uncore_read64_2x32_fw':
drivers/gpu/drm/i915/intel_uncore.h:455:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'lower'
455 | u32 upper lower, old_upper, loop = 0;
| ^~~~~
drivers/gpu/drm/i915/intel_uncore.h:455:19: error: 'lower' undeclared (first use in this function); did you mean 'islower'?
455 | u32 upper lower, old_upper, loop = 0;
| ^~~~~
| islower
drivers/gpu/drm/i915/intel_uncore.h:455:19: note: each undeclared identifier is reported only once for each function it appears in
drivers/gpu/drm/i915/intel_uncore.h:455:26: error: 'old_upper' undeclared (first use in this function); did you mean 'si_upper'?
455 | u32 upper lower, old_upper, loop = 0;
| ^~~~~~~~~
| si_upper
drivers/gpu/drm/i915/intel_uncore.h:455:24: warning: left-hand operand of comma expression has no effect [-Wunused-value]
455 | u32 upper lower, old_upper, loop = 0;
| ^
drivers/gpu/drm/i915/intel_uncore.h:455:37: error: 'loop' undeclared (first use in this function)
455 | u32 upper lower, old_upper, loop = 0;
| ^~~~
drivers/gpu/drm/i915/intel_uncore.h:455:35: warning: left-hand operand of comma expression has no effect [-Wunused-value]
455 | u32 upper lower, old_upper, loop = 0;
| ^
drivers/gpu/drm/i915/intel_uncore.h:456:9: error: 'upper' undeclared (first use in this function)
456 | upper = intel_uncore_read_fw(uncoree, upper_reg);
| ^~~~~
drivers/gpu/drm/i915/intel_uncore.h:456:38: error: 'uncoree' undeclared (first use in this function); did you mean 'uncore'?
456 | upper = intel_uncore_read_fw(uncoree, upper_reg);
| ^~~~~~~
drivers/gpu/drm/i915/intel_uncore.h:425:55: note: in definition of macro 'intel_uncore_read_fw'
425 | #define intel_uncore_read_fw(...) __raw_uncore_read32(__VA_ARGS__)
| ^~~~~~~~~~~
drivers/gpu/drm/i915/intel_uncore.h:456:47: error: 'upper_reg' undeclared (first use in this function)
456 | upper = intel_uncore_read_fw(uncoree, upper_reg);
| ^~~~~~~~~
drivers/gpu/drm/i915/intel_uncore.h:425:55: note: in definition of macro 'intel_uncore_read_fw'
425 | #define intel_uncore_read_fw(...) __raw_uncore_read32(__VA_ARGS__)
| ^~~~~~~~~~~
drivers/gpu/drm/i915/intel_uncore.h:459:54: error: 'lower_reg' undeclared (first use in this function)
459 | lower = intel_uncore_read_fw(uncore, lower_reg);
| ^~~~~~~~~
drivers/gpu/drm/i915/intel_uncore.h:425:55: note: in definition of macro 'intel_uncore_read_fw'
425 | #define intel_uncore_read_fw(...) __raw_uncore_read32(__VA_ARGS__)
| ^~~~~~~~~~~
drivers/gpu/drm/i915/intel_uncore.h: In function 'intel_uncore_read64_2x32':
drivers/gpu/drm/i915/intel_uncore.h:483:15: error: too many arguments to function 'intel_uncore_read64_2x32_fw'
483 | ret = intel_uncore_read64_2x32_fw(uncore, lower_reg, upper_reg);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_uncore.h:453:1: note: declared here
453 | intel_uncore_read64_2x32_fw(struct intel_uncore *uncore)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/i915/display/i9xx_wm.c:16:
drivers/gpu/drm/i915/display/intel_de.h: In function 'intel_de_read64_2x32_fw':
drivers/gpu/drm/i915/display/intel_de.h:70:16: error: too many arguments to function 'intel_uncore_read64_2x32_fw'
70 | return intel_uncore_read64_2x32_fw(__to_uncore(display),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/intel_uncore.h:453:1: note: declared here
453 | intel_uncore_read64_2x32_fw(struct intel_uncore *uncore)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/display/i9xx_wm.c: In function 'vlv_atomic_update_fifo':
>> drivers/gpu/drm/i915/display/i9xx_wm.c:1867:30: warning: unused variable 'uncore' [-Wunused-variable]
1867 | struct intel_uncore *uncore = &dev_priv->uncore;
| ^~~~~~
vim +/uncore +1867 drivers/gpu/drm/i915/display/i9xx_wm.c
94b49d53acece8 Jani Nikula 2023-02-13 1858
94b49d53acece8 Jani Nikula 2023-02-13 1859 #define VLV_FIFO(plane, value) \
94b49d53acece8 Jani Nikula 2023-02-13 1860 (((value) << DSPARB_ ## plane ## _SHIFT_VLV) & DSPARB_ ## plane ## _MASK_VLV)
94b49d53acece8 Jani Nikula 2023-02-13 1861
94b49d53acece8 Jani Nikula 2023-02-13 1862 static void vlv_atomic_update_fifo(struct intel_atomic_state *state,
94b49d53acece8 Jani Nikula 2023-02-13 1863 struct intel_crtc *crtc)
94b49d53acece8 Jani Nikula 2023-02-13 1864 {
d0e7412505dc87 Jani Nikula 2025-04-08 1865 struct intel_display *display = to_intel_display(crtc);
94b49d53acece8 Jani Nikula 2023-02-13 1866 struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
94b49d53acece8 Jani Nikula 2023-02-13 @1867 struct intel_uncore *uncore = &dev_priv->uncore;
94b49d53acece8 Jani Nikula 2023-02-13 1868 const struct intel_crtc_state *crtc_state =
94b49d53acece8 Jani Nikula 2023-02-13 1869 intel_atomic_get_new_crtc_state(state, crtc);
94b49d53acece8 Jani Nikula 2023-02-13 1870 const struct vlv_fifo_state *fifo_state =
94b49d53acece8 Jani Nikula 2023-02-13 1871 &crtc_state->wm.vlv.fifo_state;
94b49d53acece8 Jani Nikula 2023-02-13 1872 int sprite0_start, sprite1_start, fifo_size;
94b49d53acece8 Jani Nikula 2023-02-13 1873 u32 dsparb, dsparb2, dsparb3;
94b49d53acece8 Jani Nikula 2023-02-13 1874
94b49d53acece8 Jani Nikula 2023-02-13 1875 if (!crtc_state->fifo_changed)
94b49d53acece8 Jani Nikula 2023-02-13 1876 return;
94b49d53acece8 Jani Nikula 2023-02-13 1877
94b49d53acece8 Jani Nikula 2023-02-13 1878 sprite0_start = fifo_state->plane[PLANE_PRIMARY];
94b49d53acece8 Jani Nikula 2023-02-13 1879 sprite1_start = fifo_state->plane[PLANE_SPRITE0] + sprite0_start;
94b49d53acece8 Jani Nikula 2023-02-13 1880 fifo_size = fifo_state->plane[PLANE_SPRITE1] + sprite1_start;
94b49d53acece8 Jani Nikula 2023-02-13 1881
d35b913f0e1cb0 Jani Nikula 2025-04-08 1882 drm_WARN_ON(display->drm, fifo_state->plane[PLANE_CURSOR] != 63);
d35b913f0e1cb0 Jani Nikula 2025-04-08 1883 drm_WARN_ON(display->drm, fifo_size != 511);
94b49d53acece8 Jani Nikula 2023-02-13 1884
94b49d53acece8 Jani Nikula 2023-02-13 1885 trace_vlv_fifo_size(crtc, sprite0_start, sprite1_start, fifo_size);
94b49d53acece8 Jani Nikula 2023-02-13 1886
94b49d53acece8 Jani Nikula 2023-02-13 1887 /*
94b49d53acece8 Jani Nikula 2023-02-13 1888 * uncore.lock serves a double purpose here. It allows us to
94b49d53acece8 Jani Nikula 2023-02-13 1889 * use the less expensive I915_{READ,WRITE}_FW() functions, and
94b49d53acece8 Jani Nikula 2023-02-13 1890 * it protects the DSPARB registers from getting clobbered by
94b49d53acece8 Jani Nikula 2023-02-13 1891 * parallel updates from multiple pipes.
94b49d53acece8 Jani Nikula 2023-02-13 1892 *
94b49d53acece8 Jani Nikula 2023-02-13 1893 * intel_pipe_update_start() has already disabled interrupts
94b49d53acece8 Jani Nikula 2023-02-13 1894 * for us, so a plain spin_lock() is sufficient here.
94b49d53acece8 Jani Nikula 2023-02-13 1895 */
94b49d53acece8 Jani Nikula 2023-02-13 1896
94b49d53acece8 Jani Nikula 2023-02-13 1897 switch (crtc->pipe) {
94b49d53acece8 Jani Nikula 2023-02-13 1898 case PIPE_A:
d0e7412505dc87 Jani Nikula 2025-04-08 1899 dsparb = intel_de_read_fw(display, DSPARB(display));
d0e7412505dc87 Jani Nikula 2025-04-08 1900 dsparb2 = intel_de_read_fw(display, DSPARB2);
94b49d53acece8 Jani Nikula 2023-02-13 1901
94b49d53acece8 Jani Nikula 2023-02-13 1902 dsparb &= ~(VLV_FIFO(SPRITEA, 0xff) |
94b49d53acece8 Jani Nikula 2023-02-13 1903 VLV_FIFO(SPRITEB, 0xff));
94b49d53acece8 Jani Nikula 2023-02-13 1904 dsparb |= (VLV_FIFO(SPRITEA, sprite0_start) |
94b49d53acece8 Jani Nikula 2023-02-13 1905 VLV_FIFO(SPRITEB, sprite1_start));
94b49d53acece8 Jani Nikula 2023-02-13 1906
94b49d53acece8 Jani Nikula 2023-02-13 1907 dsparb2 &= ~(VLV_FIFO(SPRITEA_HI, 0x1) |
94b49d53acece8 Jani Nikula 2023-02-13 1908 VLV_FIFO(SPRITEB_HI, 0x1));
94b49d53acece8 Jani Nikula 2023-02-13 1909 dsparb2 |= (VLV_FIFO(SPRITEA_HI, sprite0_start >> 8) |
94b49d53acece8 Jani Nikula 2023-02-13 1910 VLV_FIFO(SPRITEB_HI, sprite1_start >> 8));
94b49d53acece8 Jani Nikula 2023-02-13 1911
d0e7412505dc87 Jani Nikula 2025-04-08 1912 intel_de_write_fw(display, DSPARB(display), dsparb);
d0e7412505dc87 Jani Nikula 2025-04-08 1913 intel_de_write_fw(display, DSPARB2, dsparb2);
94b49d53acece8 Jani Nikula 2023-02-13 1914 break;
94b49d53acece8 Jani Nikula 2023-02-13 1915 case PIPE_B:
d0e7412505dc87 Jani Nikula 2025-04-08 1916 dsparb = intel_de_read_fw(display, DSPARB(display));
d0e7412505dc87 Jani Nikula 2025-04-08 1917 dsparb2 = intel_de_read_fw(display, DSPARB2);
94b49d53acece8 Jani Nikula 2023-02-13 1918
94b49d53acece8 Jani Nikula 2023-02-13 1919 dsparb &= ~(VLV_FIFO(SPRITEC, 0xff) |
94b49d53acece8 Jani Nikula 2023-02-13 1920 VLV_FIFO(SPRITED, 0xff));
94b49d53acece8 Jani Nikula 2023-02-13 1921 dsparb |= (VLV_FIFO(SPRITEC, sprite0_start) |
94b49d53acece8 Jani Nikula 2023-02-13 1922 VLV_FIFO(SPRITED, sprite1_start));
94b49d53acece8 Jani Nikula 2023-02-13 1923
94b49d53acece8 Jani Nikula 2023-02-13 1924 dsparb2 &= ~(VLV_FIFO(SPRITEC_HI, 0xff) |
94b49d53acece8 Jani Nikula 2023-02-13 1925 VLV_FIFO(SPRITED_HI, 0xff));
94b49d53acece8 Jani Nikula 2023-02-13 1926 dsparb2 |= (VLV_FIFO(SPRITEC_HI, sprite0_start >> 8) |
94b49d53acece8 Jani Nikula 2023-02-13 1927 VLV_FIFO(SPRITED_HI, sprite1_start >> 8));
94b49d53acece8 Jani Nikula 2023-02-13 1928
d0e7412505dc87 Jani Nikula 2025-04-08 1929 intel_de_write_fw(display, DSPARB(display), dsparb);
d0e7412505dc87 Jani Nikula 2025-04-08 1930 intel_de_write_fw(display, DSPARB2, dsparb2);
94b49d53acece8 Jani Nikula 2023-02-13 1931 break;
94b49d53acece8 Jani Nikula 2023-02-13 1932 case PIPE_C:
d0e7412505dc87 Jani Nikula 2025-04-08 1933 dsparb3 = intel_de_read_fw(display, DSPARB3);
d0e7412505dc87 Jani Nikula 2025-04-08 1934 dsparb2 = intel_de_read_fw(display, DSPARB2);
94b49d53acece8 Jani Nikula 2023-02-13 1935
94b49d53acece8 Jani Nikula 2023-02-13 1936 dsparb3 &= ~(VLV_FIFO(SPRITEE, 0xff) |
94b49d53acece8 Jani Nikula 2023-02-13 1937 VLV_FIFO(SPRITEF, 0xff));
94b49d53acece8 Jani Nikula 2023-02-13 1938 dsparb3 |= (VLV_FIFO(SPRITEE, sprite0_start) |
94b49d53acece8 Jani Nikula 2023-02-13 1939 VLV_FIFO(SPRITEF, sprite1_start));
94b49d53acece8 Jani Nikula 2023-02-13 1940
94b49d53acece8 Jani Nikula 2023-02-13 1941 dsparb2 &= ~(VLV_FIFO(SPRITEE_HI, 0xff) |
94b49d53acece8 Jani Nikula 2023-02-13 1942 VLV_FIFO(SPRITEF_HI, 0xff));
94b49d53acece8 Jani Nikula 2023-02-13 1943 dsparb2 |= (VLV_FIFO(SPRITEE_HI, sprite0_start >> 8) |
94b49d53acece8 Jani Nikula 2023-02-13 1944 VLV_FIFO(SPRITEF_HI, sprite1_start >> 8));
94b49d53acece8 Jani Nikula 2023-02-13 1945
d0e7412505dc87 Jani Nikula 2025-04-08 1946 intel_de_write_fw(display, DSPARB3, dsparb3);
d0e7412505dc87 Jani Nikula 2025-04-08 1947 intel_de_write_fw(display, DSPARB2, dsparb2);
94b49d53acece8 Jani Nikula 2023-02-13 1948 break;
94b49d53acece8 Jani Nikula 2023-02-13 1949 default:
94b49d53acece8 Jani Nikula 2023-02-13 1950 break;
94b49d53acece8 Jani Nikula 2023-02-13 1951 }
94b49d53acece8 Jani Nikula 2023-02-13 1952
d0e7412505dc87 Jani Nikula 2025-04-08 1953 intel_de_read_fw(display, DSPARB(display));
94b49d53acece8 Jani Nikula 2023-02-13 1954 }
94b49d53acece8 Jani Nikula 2023-02-13 1955
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-12-20 18:23 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-18 16:33 [i915-rt v4 00/20] drm/i915/display: All patches to make PREEMPT_RT work on i915 + xe Maarten Lankhorst
2025-12-18 16:33 ` [i915-rt v4 01/20] drm/i915/display: Fix intel_lpe_audio_irq_handler for PREEMPT-RT Maarten Lankhorst
2025-12-18 16:33 ` [i915-rt v4 02/20] drm/i915/display: Make get_vblank_counter use intel_de_read_fw() Maarten Lankhorst
2025-12-18 16:33 ` [i915-rt v4 03/20] drm/i915/display: Use intel_de_write_fw in intel_pipe_fastset Maarten Lankhorst
2025-12-18 16:33 ` [i915-rt v4 04/20] drm/i915/display: Make set_pipeconf use the fw variants Maarten Lankhorst
2025-12-18 16:33 ` [i915-rt v4 05/20] drm/i915/display: Move vblank put until after critical section Maarten Lankhorst
2025-12-18 16:33 ` [i915-rt v4 06/20] drm/i915/display: Remove locking from intel_vblank_evade " Maarten Lankhorst
2025-12-18 16:33 ` [i915-rt v4 07/20] drm/i915/display: Handle vlv dsi workaround in scanline_in_safe_range too Maarten Lankhorst
2025-12-18 16:33 ` [i915-rt v4 08/20] drm/i915/display: Make icl_dsi_frame_update use _fw too Maarten Lankhorst
2025-12-18 16:33 ` [i915-rt v4 09/20] drm/i915/display: Enable interrupts earlier on PREEMPT_RT Maarten Lankhorst
2025-12-18 16:33 ` [i915-rt v4 10/20] drm/i915: Use preempt_disable/enable_rt() where recommended Maarten Lankhorst
2025-12-18 16:33 ` [i915-rt v4 11/20] PREEMPT_RT injection Maarten Lankhorst
2025-12-18 16:34 ` [i915-rt v4 12/20] drm/i915/display: Use intel_de_read_fw in colorops Maarten Lankhorst
2025-12-18 16:34 ` [i915-rt v4 13/20] drm/i915/gt: Use spin_lock_irq() instead of local_irq_disable() + spin_lock() Maarten Lankhorst
2025-12-18 16:34 ` [i915-rt v4 14/20] drm/i915: Drop the irqs_disabled() check Maarten Lankhorst
2025-12-18 16:34 ` [i915-rt v4 15/20] drm/i915/guc: Consider also RCU depth in busy loop Maarten Lankhorst
2025-12-18 16:34 ` [i915-rt v4 16/20] Revert "drm/i915: Depend on !PREEMPT_RT." Maarten Lankhorst
2025-12-18 16:34 ` [i915-rt v4 17/20] drm/i915/gt: Fix selftests on PREEMPT_RT Maarten Lankhorst
2025-12-18 16:34 ` [i915-rt v4 18/20] drm/i915/gt: Set stop_timeout() correctly on PREEMPT-RT Maarten Lankhorst
2025-12-18 16:34 ` [i915-rt v4 19/20] drm/i915/display: Do not take uncore lock in i915_get_vblank_counter Maarten Lankhorst
2025-12-18 19:33 ` [i915-rt v4.1] " Maarten Lankhorst
2025-12-20 15:20 ` [i915-rt v4 19/20] " kernel test robot
2025-12-20 15:43 ` kernel test robot
2025-12-21 0:35 ` kernel test robot
2025-12-18 16:34 ` [i915-rt v4 20/20] drm/i915/display: Remove uncore lock from vlv_atomic_update_fifo Maarten Lankhorst
2025-12-18 21:06 ` [i915-rt v4.1] " Maarten Lankhorst
2025-12-18 21:50 ` [i915-rt v4.2] " Maarten Lankhorst
2025-12-20 18:23 ` kernel test robot [this message]
2025-12-18 17:42 ` ✗ Fi.CI.BUILD: failure for drm/i915/display: All patches to make PREEMPT_RT work on i915 + xe. (rev5) Patchwork
2025-12-18 20:08 ` ✗ Fi.CI.BUILD: failure for drm/i915/display: All patches to make PREEMPT_RT work on i915 + xe. (rev6) Patchwork
2025-12-18 21:28 ` ✗ Fi.CI.BUILD: failure for drm/i915/display: All patches to make PREEMPT_RT work on i915 + xe. (rev7) Patchwork
2025-12-18 23:31 ` ✗ i915.CI.BAT: failure for drm/i915/display: All patches to make PREEMPT_RT work on i915 + xe. (rev8) Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202512201922.KJN0PFLf-lkp@intel.com \
--to=lkp@intel.com \
--cc=dev@lankhorst.se \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox