Message ID | 0988d237e56c56568f035053da8e2e2308a17d3a.1685119007.git.jani.nikula@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915: re-enable -Wunused-but-set-variable | expand |
On Fri, May 26, 2023 at 07:37:54PM +0300, Jani Nikula wrote: > We assume the plane offset is 0. Warn if it's not. This also fixes a > warn on unused but set variable offset. > > Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/display/i9xx_plane.c | 2 ++ > drivers/gpu/drm/i915/display/skl_universal_plane.c | 1 + > 2 files changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c > index 616654adbfb8..b52a681ca85e 100644 > --- a/drivers/gpu/drm/i915/display/i9xx_plane.c > +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c > @@ -1037,6 +1037,8 @@ i9xx_get_initial_plane_config(struct intel_crtc *crtc, > } > plane_config->base = base; > > + drm_WARN_ON(&dev_priv->drm, offset != 0); > + The gen2/3 codepath doesn't appear to initialize offset at all. With that fixed this is Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > val = intel_de_read(dev_priv, PIPESRC(pipe)); > fb->width = REG_FIELD_GET(PIPESRC_WIDTH_MASK, val) + 1; > fb->height = REG_FIELD_GET(PIPESRC_HEIGHT_MASK, val) + 1; > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c > index 36070d86550f..6b01a0b68b97 100644 > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c > @@ -2529,6 +2529,7 @@ skl_get_initial_plane_config(struct intel_crtc *crtc, > plane_config->base = base; > > offset = intel_de_read(dev_priv, PLANE_OFFSET(pipe, plane_id)); > + drm_WARN_ON(&dev_priv->drm, offset != 0); > > val = intel_de_read(dev_priv, PLANE_SIZE(pipe, plane_id)); > fb->height = REG_FIELD_GET(PLANE_HEIGHT_MASK, val) + 1; > -- > 2.39.2
On Fri, 26 May 2023, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote: > On Fri, May 26, 2023 at 07:37:54PM +0300, Jani Nikula wrote: >> We assume the plane offset is 0. Warn if it's not. This also fixes a >> warn on unused but set variable offset. >> >> Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com> >> --- >> drivers/gpu/drm/i915/display/i9xx_plane.c | 2 ++ >> drivers/gpu/drm/i915/display/skl_universal_plane.c | 1 + >> 2 files changed, 3 insertions(+) >> >> diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c >> index 616654adbfb8..b52a681ca85e 100644 >> --- a/drivers/gpu/drm/i915/display/i9xx_plane.c >> +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c >> @@ -1037,6 +1037,8 @@ i9xx_get_initial_plane_config(struct intel_crtc *crtc, >> } >> plane_config->base = base; >> >> + drm_WARN_ON(&dev_priv->drm, offset != 0); >> + > > The gen2/3 codepath doesn't appear to initialize offset at all. Right. I wonder why I didn't get a warning about using an uninitialized variable. > > With that fixed this is > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Thanks, v2 sent. > >> val = intel_de_read(dev_priv, PIPESRC(pipe)); >> fb->width = REG_FIELD_GET(PIPESRC_WIDTH_MASK, val) + 1; >> fb->height = REG_FIELD_GET(PIPESRC_HEIGHT_MASK, val) + 1; >> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c >> index 36070d86550f..6b01a0b68b97 100644 >> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c >> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c >> @@ -2529,6 +2529,7 @@ skl_get_initial_plane_config(struct intel_crtc *crtc, >> plane_config->base = base; >> >> offset = intel_de_read(dev_priv, PLANE_OFFSET(pipe, plane_id)); >> + drm_WARN_ON(&dev_priv->drm, offset != 0); >> >> val = intel_de_read(dev_priv, PLANE_SIZE(pipe, plane_id)); >> fb->height = REG_FIELD_GET(PLANE_HEIGHT_MASK, val) + 1; >> -- >> 2.39.2
Hi Jani,
kernel test robot noticed the following build errors:
[auto build test ERROR on drm-tip/drm-tip]
url: https://github.com/intel-lab-lkp/linux/commits/Jani-Nikula/drm-i915-plane-warn-on-non-zero-plane-offset/20230527-003951
base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
patch link: https://lore.kernel.org/r/0988d237e56c56568f035053da8e2e2308a17d3a.1685119007.git.jani.nikula%40intel.com
patch subject: [Intel-gfx] [PATCH 01/15] drm/i915/plane: warn on non-zero plane offset
config: x86_64-randconfig-x056-20230526 (https://download.01.org/0day-ci/archive/20230527/202305270846.ZA7bj1cg-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build):
mkdir -p ~/bin
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/40c3d9e9221e230ab6f0b2e3051b6c4566a1e852
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Jani-Nikula/drm-i915-plane-warn-on-non-zero-plane-offset/20230527-003951
git checkout 40c3d9e9221e230ab6f0b2e3051b6c4566a1e852
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=x86_64 olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/gpu/drm/i915/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202305270846.ZA7bj1cg-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/gpu/drm/i915/display/i9xx_plane.c:1027:13: error: variable 'offset' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
} else if (DISPLAY_VER(dev_priv) >= 4) {
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_drv.h:433:27: note: expanded from macro 'DISPLAY_VER'
#define DISPLAY_VER(i915) (DISPLAY_RUNTIME_INFO(i915)->ip.ver)
^
drivers/gpu/drm/i915/display/i9xx_plane.c:1040:30: note: uninitialized use occurs here
drm_WARN_ON(&dev_priv->drm, offset != 0);
^~~~~~
include/drm/drm_print.h:630:19: note: expanded from macro 'drm_WARN_ON'
drm_WARN((drm), (x), "%s", \
^
include/drm/drm_print.h:620:7: note: expanded from macro 'drm_WARN'
WARN(condition, "%s %s: " format, \
^~~~~~~~~
include/asm-generic/bug.h:131:25: note: expanded from macro 'WARN'
int __ret_warn_on = !!(condition); \
^~~~~~~~~
drivers/gpu/drm/i915/display/i9xx_plane.c:1027:9: note: remove the 'if' if its condition is always true
} else if (DISPLAY_VER(dev_priv) >= 4) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/display/i9xx_plane.c:983:23: note: initialize the variable 'offset' to silence this warning
u32 val, base, offset;
^
= 0
1 error generated.
vim +1027 drivers/gpu/drm/i915/display/i9xx_plane.c
2a3014490cd18a Dave Airlie 2021-02-05 973
2a3014490cd18a Dave Airlie 2021-02-05 974 void
2a3014490cd18a Dave Airlie 2021-02-05 975 i9xx_get_initial_plane_config(struct intel_crtc *crtc,
2a3014490cd18a Dave Airlie 2021-02-05 976 struct intel_initial_plane_config *plane_config)
2a3014490cd18a Dave Airlie 2021-02-05 977 {
2a3014490cd18a Dave Airlie 2021-02-05 978 struct drm_device *dev = crtc->base.dev;
2a3014490cd18a Dave Airlie 2021-02-05 979 struct drm_i915_private *dev_priv = to_i915(dev);
2a3014490cd18a Dave Airlie 2021-02-05 980 struct intel_plane *plane = to_intel_plane(crtc->base.primary);
2a3014490cd18a Dave Airlie 2021-02-05 981 enum i9xx_plane_id i9xx_plane = plane->i9xx_plane;
2a3014490cd18a Dave Airlie 2021-02-05 982 enum pipe pipe;
2a3014490cd18a Dave Airlie 2021-02-05 983 u32 val, base, offset;
2a3014490cd18a Dave Airlie 2021-02-05 984 int fourcc, pixel_format;
2a3014490cd18a Dave Airlie 2021-02-05 985 unsigned int aligned_height;
2a3014490cd18a Dave Airlie 2021-02-05 986 struct drm_framebuffer *fb;
2a3014490cd18a Dave Airlie 2021-02-05 987 struct intel_framebuffer *intel_fb;
2a3014490cd18a Dave Airlie 2021-02-05 988
2a3014490cd18a Dave Airlie 2021-02-05 989 if (!plane->get_hw_state(plane, &pipe))
2a3014490cd18a Dave Airlie 2021-02-05 990 return;
2a3014490cd18a Dave Airlie 2021-02-05 991
2a3014490cd18a Dave Airlie 2021-02-05 992 drm_WARN_ON(dev, pipe != crtc->pipe);
2a3014490cd18a Dave Airlie 2021-02-05 993
2a3014490cd18a Dave Airlie 2021-02-05 994 intel_fb = kzalloc(sizeof(*intel_fb), GFP_KERNEL);
2a3014490cd18a Dave Airlie 2021-02-05 995 if (!intel_fb) {
2a3014490cd18a Dave Airlie 2021-02-05 996 drm_dbg_kms(&dev_priv->drm, "failed to alloc fb\n");
2a3014490cd18a Dave Airlie 2021-02-05 997 return;
2a3014490cd18a Dave Airlie 2021-02-05 998 }
2a3014490cd18a Dave Airlie 2021-02-05 999
2a3014490cd18a Dave Airlie 2021-02-05 1000 fb = &intel_fb->base;
2a3014490cd18a Dave Airlie 2021-02-05 1001
2a3014490cd18a Dave Airlie 2021-02-05 1002 fb->dev = dev;
2a3014490cd18a Dave Airlie 2021-02-05 1003
2a3014490cd18a Dave Airlie 2021-02-05 1004 val = intel_de_read(dev_priv, DSPCNTR(i9xx_plane));
2a3014490cd18a Dave Airlie 2021-02-05 1005
005e95377249cb Matt Roper 2021-03-19 1006 if (DISPLAY_VER(dev_priv) >= 4) {
428cb15d5b0031 Ville Syrjälä 2022-01-21 1007 if (val & DISP_TILED) {
2a3014490cd18a Dave Airlie 2021-02-05 1008 plane_config->tiling = I915_TILING_X;
2a3014490cd18a Dave Airlie 2021-02-05 1009 fb->modifier = I915_FORMAT_MOD_X_TILED;
2a3014490cd18a Dave Airlie 2021-02-05 1010 }
2a3014490cd18a Dave Airlie 2021-02-05 1011
428cb15d5b0031 Ville Syrjälä 2022-01-21 1012 if (val & DISP_ROTATE_180)
2a3014490cd18a Dave Airlie 2021-02-05 1013 plane_config->rotation = DRM_MODE_ROTATE_180;
2a3014490cd18a Dave Airlie 2021-02-05 1014 }
2a3014490cd18a Dave Airlie 2021-02-05 1015
2a3014490cd18a Dave Airlie 2021-02-05 1016 if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B &&
428cb15d5b0031 Ville Syrjälä 2022-01-21 1017 val & DISP_MIRROR)
2a3014490cd18a Dave Airlie 2021-02-05 1018 plane_config->rotation |= DRM_MODE_REFLECT_X;
2a3014490cd18a Dave Airlie 2021-02-05 1019
428cb15d5b0031 Ville Syrjälä 2022-01-21 1020 pixel_format = val & DISP_FORMAT_MASK;
2a3014490cd18a Dave Airlie 2021-02-05 1021 fourcc = i9xx_format_to_fourcc(pixel_format);
2a3014490cd18a Dave Airlie 2021-02-05 1022 fb->format = drm_format_info(fourcc);
2a3014490cd18a Dave Airlie 2021-02-05 1023
2a3014490cd18a Dave Airlie 2021-02-05 1024 if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) {
2a3014490cd18a Dave Airlie 2021-02-05 1025 offset = intel_de_read(dev_priv, DSPOFFSET(i9xx_plane));
428cb15d5b0031 Ville Syrjälä 2022-01-21 1026 base = intel_de_read(dev_priv, DSPSURF(i9xx_plane)) & DISP_ADDR_MASK;
005e95377249cb Matt Roper 2021-03-19 @1027 } else if (DISPLAY_VER(dev_priv) >= 4) {
Hi Jani,
kernel test robot noticed the following build warnings:
[auto build test WARNING on drm-tip/drm-tip]
url: https://github.com/intel-lab-lkp/linux/commits/Jani-Nikula/drm-i915-plane-warn-on-non-zero-plane-offset/20230527-003951
base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
patch link: https://lore.kernel.org/r/0988d237e56c56568f035053da8e2e2308a17d3a.1685119007.git.jani.nikula%40intel.com
patch subject: [Intel-gfx] [PATCH 01/15] drm/i915/plane: warn on non-zero plane offset
config: i386-randconfig-i076-20230526 (https://download.01.org/0day-ci/archive/20230527/202305270919.ttCZVsAy-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build):
mkdir -p ~/bin
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/40c3d9e9221e230ab6f0b2e3051b6c4566a1e852
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Jani-Nikula/drm-i915-plane-warn-on-non-zero-plane-offset/20230527-003951
git checkout 40c3d9e9221e230ab6f0b2e3051b6c4566a1e852
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=i386 olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross 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 <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202305270919.ttCZVsAy-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/gpu/drm/i915/display/i9xx_plane.c:1027:13: warning: variable 'offset' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
} else if (DISPLAY_VER(dev_priv) >= 4) {
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/i915_drv.h:433:27: note: expanded from macro 'DISPLAY_VER'
#define DISPLAY_VER(i915) (DISPLAY_RUNTIME_INFO(i915)->ip.ver)
^
drivers/gpu/drm/i915/display/i9xx_plane.c:1040:30: note: uninitialized use occurs here
drm_WARN_ON(&dev_priv->drm, offset != 0);
^~~~~~
include/drm/drm_print.h:630:19: note: expanded from macro 'drm_WARN_ON'
drm_WARN((drm), (x), "%s", \
^
include/drm/drm_print.h:620:7: note: expanded from macro 'drm_WARN'
WARN(condition, "%s %s: " format, \
^~~~~~~~~
include/asm-generic/bug.h:131:25: note: expanded from macro 'WARN'
int __ret_warn_on = !!(condition); \
^~~~~~~~~
drivers/gpu/drm/i915/display/i9xx_plane.c:1027:9: note: remove the 'if' if its condition is always true
} else if (DISPLAY_VER(dev_priv) >= 4) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/display/i9xx_plane.c:983:23: note: initialize the variable 'offset' to silence this warning
u32 val, base, offset;
^
= 0
1 warning generated.
vim +1027 drivers/gpu/drm/i915/display/i9xx_plane.c
2a3014490cd18a Dave Airlie 2021-02-05 973
2a3014490cd18a Dave Airlie 2021-02-05 974 void
2a3014490cd18a Dave Airlie 2021-02-05 975 i9xx_get_initial_plane_config(struct intel_crtc *crtc,
2a3014490cd18a Dave Airlie 2021-02-05 976 struct intel_initial_plane_config *plane_config)
2a3014490cd18a Dave Airlie 2021-02-05 977 {
2a3014490cd18a Dave Airlie 2021-02-05 978 struct drm_device *dev = crtc->base.dev;
2a3014490cd18a Dave Airlie 2021-02-05 979 struct drm_i915_private *dev_priv = to_i915(dev);
2a3014490cd18a Dave Airlie 2021-02-05 980 struct intel_plane *plane = to_intel_plane(crtc->base.primary);
2a3014490cd18a Dave Airlie 2021-02-05 981 enum i9xx_plane_id i9xx_plane = plane->i9xx_plane;
2a3014490cd18a Dave Airlie 2021-02-05 982 enum pipe pipe;
2a3014490cd18a Dave Airlie 2021-02-05 983 u32 val, base, offset;
2a3014490cd18a Dave Airlie 2021-02-05 984 int fourcc, pixel_format;
2a3014490cd18a Dave Airlie 2021-02-05 985 unsigned int aligned_height;
2a3014490cd18a Dave Airlie 2021-02-05 986 struct drm_framebuffer *fb;
2a3014490cd18a Dave Airlie 2021-02-05 987 struct intel_framebuffer *intel_fb;
2a3014490cd18a Dave Airlie 2021-02-05 988
2a3014490cd18a Dave Airlie 2021-02-05 989 if (!plane->get_hw_state(plane, &pipe))
2a3014490cd18a Dave Airlie 2021-02-05 990 return;
2a3014490cd18a Dave Airlie 2021-02-05 991
2a3014490cd18a Dave Airlie 2021-02-05 992 drm_WARN_ON(dev, pipe != crtc->pipe);
2a3014490cd18a Dave Airlie 2021-02-05 993
2a3014490cd18a Dave Airlie 2021-02-05 994 intel_fb = kzalloc(sizeof(*intel_fb), GFP_KERNEL);
2a3014490cd18a Dave Airlie 2021-02-05 995 if (!intel_fb) {
2a3014490cd18a Dave Airlie 2021-02-05 996 drm_dbg_kms(&dev_priv->drm, "failed to alloc fb\n");
2a3014490cd18a Dave Airlie 2021-02-05 997 return;
2a3014490cd18a Dave Airlie 2021-02-05 998 }
2a3014490cd18a Dave Airlie 2021-02-05 999
2a3014490cd18a Dave Airlie 2021-02-05 1000 fb = &intel_fb->base;
2a3014490cd18a Dave Airlie 2021-02-05 1001
2a3014490cd18a Dave Airlie 2021-02-05 1002 fb->dev = dev;
2a3014490cd18a Dave Airlie 2021-02-05 1003
2a3014490cd18a Dave Airlie 2021-02-05 1004 val = intel_de_read(dev_priv, DSPCNTR(i9xx_plane));
2a3014490cd18a Dave Airlie 2021-02-05 1005
005e95377249cb Matt Roper 2021-03-19 1006 if (DISPLAY_VER(dev_priv) >= 4) {
428cb15d5b0031 Ville Syrjälä 2022-01-21 1007 if (val & DISP_TILED) {
2a3014490cd18a Dave Airlie 2021-02-05 1008 plane_config->tiling = I915_TILING_X;
2a3014490cd18a Dave Airlie 2021-02-05 1009 fb->modifier = I915_FORMAT_MOD_X_TILED;
2a3014490cd18a Dave Airlie 2021-02-05 1010 }
2a3014490cd18a Dave Airlie 2021-02-05 1011
428cb15d5b0031 Ville Syrjälä 2022-01-21 1012 if (val & DISP_ROTATE_180)
2a3014490cd18a Dave Airlie 2021-02-05 1013 plane_config->rotation = DRM_MODE_ROTATE_180;
2a3014490cd18a Dave Airlie 2021-02-05 1014 }
2a3014490cd18a Dave Airlie 2021-02-05 1015
2a3014490cd18a Dave Airlie 2021-02-05 1016 if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B &&
428cb15d5b0031 Ville Syrjälä 2022-01-21 1017 val & DISP_MIRROR)
2a3014490cd18a Dave Airlie 2021-02-05 1018 plane_config->rotation |= DRM_MODE_REFLECT_X;
2a3014490cd18a Dave Airlie 2021-02-05 1019
428cb15d5b0031 Ville Syrjälä 2022-01-21 1020 pixel_format = val & DISP_FORMAT_MASK;
2a3014490cd18a Dave Airlie 2021-02-05 1021 fourcc = i9xx_format_to_fourcc(pixel_format);
2a3014490cd18a Dave Airlie 2021-02-05 1022 fb->format = drm_format_info(fourcc);
2a3014490cd18a Dave Airlie 2021-02-05 1023
2a3014490cd18a Dave Airlie 2021-02-05 1024 if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) {
2a3014490cd18a Dave Airlie 2021-02-05 1025 offset = intel_de_read(dev_priv, DSPOFFSET(i9xx_plane));
428cb15d5b0031 Ville Syrjälä 2022-01-21 1026 base = intel_de_read(dev_priv, DSPSURF(i9xx_plane)) & DISP_ADDR_MASK;
005e95377249cb Matt Roper 2021-03-19 @1027 } else if (DISPLAY_VER(dev_priv) >= 4) {
Hi Jani, kernel test robot noticed the following build warnings: url: https://github.com/intel-lab-lkp/linux/commits/Jani-Nikula/drm-i915-plane-warn-on-non-zero-plane-offset/20230527-003951 base: git://anongit.freedesktop.org/drm/drm-tip drm-tip patch link: https://lore.kernel.org/r/0988d237e56c56568f035053da8e2e2308a17d3a.1685119007.git.jani.nikula%40intel.com patch subject: [Intel-gfx] [PATCH 01/15] drm/i915/plane: warn on non-zero plane offset config: x86_64-randconfig-m031-20230526 (https://download.01.org/0day-ci/archive/20230528/202305280453.8yzCMS2i-lkp@intel.com/config) compiler: gcc-11 (Debian 11.3.0-12) 11.3.0 If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@intel.com> | Reported-by: Dan Carpenter <error27@gmail.com> | Closes: https://lore.kernel.org/r/202305280453.8yzCMS2i-lkp@intel.com/ smatch warnings: drivers/gpu/drm/i915/display/i9xx_plane.c:1040 i9xx_get_initial_plane_config() error: uninitialized symbol 'offset'. vim +/offset +1040 drivers/gpu/drm/i915/display/i9xx_plane.c 2a3014490cd18a Dave Airlie 2021-02-05 974 void 2a3014490cd18a Dave Airlie 2021-02-05 975 i9xx_get_initial_plane_config(struct intel_crtc *crtc, 2a3014490cd18a Dave Airlie 2021-02-05 976 struct intel_initial_plane_config *plane_config) 2a3014490cd18a Dave Airlie 2021-02-05 977 { 2a3014490cd18a Dave Airlie 2021-02-05 978 struct drm_device *dev = crtc->base.dev; 2a3014490cd18a Dave Airlie 2021-02-05 979 struct drm_i915_private *dev_priv = to_i915(dev); 2a3014490cd18a Dave Airlie 2021-02-05 980 struct intel_plane *plane = to_intel_plane(crtc->base.primary); 2a3014490cd18a Dave Airlie 2021-02-05 981 enum i9xx_plane_id i9xx_plane = plane->i9xx_plane; 2a3014490cd18a Dave Airlie 2021-02-05 982 enum pipe pipe; 2a3014490cd18a Dave Airlie 2021-02-05 983 u32 val, base, offset; 2a3014490cd18a Dave Airlie 2021-02-05 984 int fourcc, pixel_format; 2a3014490cd18a Dave Airlie 2021-02-05 985 unsigned int aligned_height; 2a3014490cd18a Dave Airlie 2021-02-05 986 struct drm_framebuffer *fb; 2a3014490cd18a Dave Airlie 2021-02-05 987 struct intel_framebuffer *intel_fb; 2a3014490cd18a Dave Airlie 2021-02-05 988 2a3014490cd18a Dave Airlie 2021-02-05 989 if (!plane->get_hw_state(plane, &pipe)) 2a3014490cd18a Dave Airlie 2021-02-05 990 return; 2a3014490cd18a Dave Airlie 2021-02-05 991 2a3014490cd18a Dave Airlie 2021-02-05 992 drm_WARN_ON(dev, pipe != crtc->pipe); 2a3014490cd18a Dave Airlie 2021-02-05 993 2a3014490cd18a Dave Airlie 2021-02-05 994 intel_fb = kzalloc(sizeof(*intel_fb), GFP_KERNEL); 2a3014490cd18a Dave Airlie 2021-02-05 995 if (!intel_fb) { 2a3014490cd18a Dave Airlie 2021-02-05 996 drm_dbg_kms(&dev_priv->drm, "failed to alloc fb\n"); 2a3014490cd18a Dave Airlie 2021-02-05 997 return; 2a3014490cd18a Dave Airlie 2021-02-05 998 } 2a3014490cd18a Dave Airlie 2021-02-05 999 2a3014490cd18a Dave Airlie 2021-02-05 1000 fb = &intel_fb->base; 2a3014490cd18a Dave Airlie 2021-02-05 1001 2a3014490cd18a Dave Airlie 2021-02-05 1002 fb->dev = dev; 2a3014490cd18a Dave Airlie 2021-02-05 1003 2a3014490cd18a Dave Airlie 2021-02-05 1004 val = intel_de_read(dev_priv, DSPCNTR(i9xx_plane)); 2a3014490cd18a Dave Airlie 2021-02-05 1005 005e95377249cb Matt Roper 2021-03-19 1006 if (DISPLAY_VER(dev_priv) >= 4) { 428cb15d5b0031 Ville Syrjälä 2022-01-21 1007 if (val & DISP_TILED) { 2a3014490cd18a Dave Airlie 2021-02-05 1008 plane_config->tiling = I915_TILING_X; 2a3014490cd18a Dave Airlie 2021-02-05 1009 fb->modifier = I915_FORMAT_MOD_X_TILED; 2a3014490cd18a Dave Airlie 2021-02-05 1010 } 2a3014490cd18a Dave Airlie 2021-02-05 1011 428cb15d5b0031 Ville Syrjälä 2022-01-21 1012 if (val & DISP_ROTATE_180) 2a3014490cd18a Dave Airlie 2021-02-05 1013 plane_config->rotation = DRM_MODE_ROTATE_180; 2a3014490cd18a Dave Airlie 2021-02-05 1014 } 2a3014490cd18a Dave Airlie 2021-02-05 1015 2a3014490cd18a Dave Airlie 2021-02-05 1016 if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B && 428cb15d5b0031 Ville Syrjälä 2022-01-21 1017 val & DISP_MIRROR) 2a3014490cd18a Dave Airlie 2021-02-05 1018 plane_config->rotation |= DRM_MODE_REFLECT_X; 2a3014490cd18a Dave Airlie 2021-02-05 1019 428cb15d5b0031 Ville Syrjälä 2022-01-21 1020 pixel_format = val & DISP_FORMAT_MASK; 2a3014490cd18a Dave Airlie 2021-02-05 1021 fourcc = i9xx_format_to_fourcc(pixel_format); 2a3014490cd18a Dave Airlie 2021-02-05 1022 fb->format = drm_format_info(fourcc); 2a3014490cd18a Dave Airlie 2021-02-05 1023 2a3014490cd18a Dave Airlie 2021-02-05 1024 if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) { 2a3014490cd18a Dave Airlie 2021-02-05 1025 offset = intel_de_read(dev_priv, DSPOFFSET(i9xx_plane)); 428cb15d5b0031 Ville Syrjälä 2022-01-21 1026 base = intel_de_read(dev_priv, DSPSURF(i9xx_plane)) & DISP_ADDR_MASK; 005e95377249cb Matt Roper 2021-03-19 1027 } else if (DISPLAY_VER(dev_priv) >= 4) { 2a3014490cd18a Dave Airlie 2021-02-05 1028 if (plane_config->tiling) 2a3014490cd18a Dave Airlie 2021-02-05 1029 offset = intel_de_read(dev_priv, 2a3014490cd18a Dave Airlie 2021-02-05 1030 DSPTILEOFF(i9xx_plane)); 2a3014490cd18a Dave Airlie 2021-02-05 1031 else 2a3014490cd18a Dave Airlie 2021-02-05 1032 offset = intel_de_read(dev_priv, 2a3014490cd18a Dave Airlie 2021-02-05 1033 DSPLINOFF(i9xx_plane)); 428cb15d5b0031 Ville Syrjälä 2022-01-21 1034 base = intel_de_read(dev_priv, DSPSURF(i9xx_plane)) & DISP_ADDR_MASK; 2a3014490cd18a Dave Airlie 2021-02-05 1035 } else { 2a3014490cd18a Dave Airlie 2021-02-05 1036 base = intel_de_read(dev_priv, DSPADDR(i9xx_plane)); offset not initialized on this path. 2a3014490cd18a Dave Airlie 2021-02-05 1037 } 2a3014490cd18a Dave Airlie 2021-02-05 1038 plane_config->base = base; 2a3014490cd18a Dave Airlie 2021-02-05 1039 40c3d9e9221e23 Jani Nikula 2023-05-26 @1040 drm_WARN_ON(&dev_priv->drm, offset != 0);
On Mon, 29 May 2023, Dan Carpenter <dan.carpenter@linaro.org> wrote: > Hi Jani, > > kernel test robot noticed the following build warnings: Thanks, v2 already on the list: https://patchwork.freedesktop.org/patch/msgid/20230526172218.1597394-1-jani.nikula@intel.com > > url: https://github.com/intel-lab-lkp/linux/commits/Jani-Nikula/drm-i915-plane-warn-on-non-zero-plane-offset/20230527-003951 > base: git://anongit.freedesktop.org/drm/drm-tip drm-tip > patch link: https://lore.kernel.org/r/0988d237e56c56568f035053da8e2e2308a17d3a.1685119007.git.jani.nikula%40intel.com > patch subject: [Intel-gfx] [PATCH 01/15] drm/i915/plane: warn on non-zero plane offset > config: x86_64-randconfig-m031-20230526 (https://download.01.org/0day-ci/archive/20230528/202305280453.8yzCMS2i-lkp@intel.com/config) > compiler: gcc-11 (Debian 11.3.0-12) 11.3.0 > > If you fix the issue, kindly add following tag where applicable > | Reported-by: kernel test robot <lkp@intel.com> > | Reported-by: Dan Carpenter <error27@gmail.com> > | Closes: https://lore.kernel.org/r/202305280453.8yzCMS2i-lkp@intel.com/ > > smatch warnings: > drivers/gpu/drm/i915/display/i9xx_plane.c:1040 i9xx_get_initial_plane_config() error: uninitialized symbol 'offset'. > > vim +/offset +1040 drivers/gpu/drm/i915/display/i9xx_plane.c > > 2a3014490cd18a Dave Airlie 2021-02-05 974 void > 2a3014490cd18a Dave Airlie 2021-02-05 975 i9xx_get_initial_plane_config(struct intel_crtc *crtc, > 2a3014490cd18a Dave Airlie 2021-02-05 976 struct intel_initial_plane_config *plane_config) > 2a3014490cd18a Dave Airlie 2021-02-05 977 { > 2a3014490cd18a Dave Airlie 2021-02-05 978 struct drm_device *dev = crtc->base.dev; > 2a3014490cd18a Dave Airlie 2021-02-05 979 struct drm_i915_private *dev_priv = to_i915(dev); > 2a3014490cd18a Dave Airlie 2021-02-05 980 struct intel_plane *plane = to_intel_plane(crtc->base.primary); > 2a3014490cd18a Dave Airlie 2021-02-05 981 enum i9xx_plane_id i9xx_plane = plane->i9xx_plane; > 2a3014490cd18a Dave Airlie 2021-02-05 982 enum pipe pipe; > 2a3014490cd18a Dave Airlie 2021-02-05 983 u32 val, base, offset; > 2a3014490cd18a Dave Airlie 2021-02-05 984 int fourcc, pixel_format; > 2a3014490cd18a Dave Airlie 2021-02-05 985 unsigned int aligned_height; > 2a3014490cd18a Dave Airlie 2021-02-05 986 struct drm_framebuffer *fb; > 2a3014490cd18a Dave Airlie 2021-02-05 987 struct intel_framebuffer *intel_fb; > 2a3014490cd18a Dave Airlie 2021-02-05 988 > 2a3014490cd18a Dave Airlie 2021-02-05 989 if (!plane->get_hw_state(plane, &pipe)) > 2a3014490cd18a Dave Airlie 2021-02-05 990 return; > 2a3014490cd18a Dave Airlie 2021-02-05 991 > 2a3014490cd18a Dave Airlie 2021-02-05 992 drm_WARN_ON(dev, pipe != crtc->pipe); > 2a3014490cd18a Dave Airlie 2021-02-05 993 > 2a3014490cd18a Dave Airlie 2021-02-05 994 intel_fb = kzalloc(sizeof(*intel_fb), GFP_KERNEL); > 2a3014490cd18a Dave Airlie 2021-02-05 995 if (!intel_fb) { > 2a3014490cd18a Dave Airlie 2021-02-05 996 drm_dbg_kms(&dev_priv->drm, "failed to alloc fb\n"); > 2a3014490cd18a Dave Airlie 2021-02-05 997 return; > 2a3014490cd18a Dave Airlie 2021-02-05 998 } > 2a3014490cd18a Dave Airlie 2021-02-05 999 > 2a3014490cd18a Dave Airlie 2021-02-05 1000 fb = &intel_fb->base; > 2a3014490cd18a Dave Airlie 2021-02-05 1001 > 2a3014490cd18a Dave Airlie 2021-02-05 1002 fb->dev = dev; > 2a3014490cd18a Dave Airlie 2021-02-05 1003 > 2a3014490cd18a Dave Airlie 2021-02-05 1004 val = intel_de_read(dev_priv, DSPCNTR(i9xx_plane)); > 2a3014490cd18a Dave Airlie 2021-02-05 1005 > 005e95377249cb Matt Roper 2021-03-19 1006 if (DISPLAY_VER(dev_priv) >= 4) { > 428cb15d5b0031 Ville Syrjälä 2022-01-21 1007 if (val & DISP_TILED) { > 2a3014490cd18a Dave Airlie 2021-02-05 1008 plane_config->tiling = I915_TILING_X; > 2a3014490cd18a Dave Airlie 2021-02-05 1009 fb->modifier = I915_FORMAT_MOD_X_TILED; > 2a3014490cd18a Dave Airlie 2021-02-05 1010 } > 2a3014490cd18a Dave Airlie 2021-02-05 1011 > 428cb15d5b0031 Ville Syrjälä 2022-01-21 1012 if (val & DISP_ROTATE_180) > 2a3014490cd18a Dave Airlie 2021-02-05 1013 plane_config->rotation = DRM_MODE_ROTATE_180; > 2a3014490cd18a Dave Airlie 2021-02-05 1014 } > 2a3014490cd18a Dave Airlie 2021-02-05 1015 > 2a3014490cd18a Dave Airlie 2021-02-05 1016 if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B && > 428cb15d5b0031 Ville Syrjälä 2022-01-21 1017 val & DISP_MIRROR) > 2a3014490cd18a Dave Airlie 2021-02-05 1018 plane_config->rotation |= DRM_MODE_REFLECT_X; > 2a3014490cd18a Dave Airlie 2021-02-05 1019 > 428cb15d5b0031 Ville Syrjälä 2022-01-21 1020 pixel_format = val & DISP_FORMAT_MASK; > 2a3014490cd18a Dave Airlie 2021-02-05 1021 fourcc = i9xx_format_to_fourcc(pixel_format); > 2a3014490cd18a Dave Airlie 2021-02-05 1022 fb->format = drm_format_info(fourcc); > 2a3014490cd18a Dave Airlie 2021-02-05 1023 > 2a3014490cd18a Dave Airlie 2021-02-05 1024 if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv)) { > 2a3014490cd18a Dave Airlie 2021-02-05 1025 offset = intel_de_read(dev_priv, DSPOFFSET(i9xx_plane)); > 428cb15d5b0031 Ville Syrjälä 2022-01-21 1026 base = intel_de_read(dev_priv, DSPSURF(i9xx_plane)) & DISP_ADDR_MASK; > 005e95377249cb Matt Roper 2021-03-19 1027 } else if (DISPLAY_VER(dev_priv) >= 4) { > 2a3014490cd18a Dave Airlie 2021-02-05 1028 if (plane_config->tiling) > 2a3014490cd18a Dave Airlie 2021-02-05 1029 offset = intel_de_read(dev_priv, > 2a3014490cd18a Dave Airlie 2021-02-05 1030 DSPTILEOFF(i9xx_plane)); > 2a3014490cd18a Dave Airlie 2021-02-05 1031 else > 2a3014490cd18a Dave Airlie 2021-02-05 1032 offset = intel_de_read(dev_priv, > 2a3014490cd18a Dave Airlie 2021-02-05 1033 DSPLINOFF(i9xx_plane)); > 428cb15d5b0031 Ville Syrjälä 2022-01-21 1034 base = intel_de_read(dev_priv, DSPSURF(i9xx_plane)) & DISP_ADDR_MASK; > 2a3014490cd18a Dave Airlie 2021-02-05 1035 } else { > 2a3014490cd18a Dave Airlie 2021-02-05 1036 base = intel_de_read(dev_priv, DSPADDR(i9xx_plane)); > > offset not initialized on this path. > > 2a3014490cd18a Dave Airlie 2021-02-05 1037 } > 2a3014490cd18a Dave Airlie 2021-02-05 1038 plane_config->base = base; > 2a3014490cd18a Dave Airlie 2021-02-05 1039 > 40c3d9e9221e23 Jani Nikula 2023-05-26 @1040 drm_WARN_ON(&dev_priv->drm, offset != 0);
diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c index 616654adbfb8..b52a681ca85e 100644 --- a/drivers/gpu/drm/i915/display/i9xx_plane.c +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c @@ -1037,6 +1037,8 @@ i9xx_get_initial_plane_config(struct intel_crtc *crtc, } plane_config->base = base; + drm_WARN_ON(&dev_priv->drm, offset != 0); + val = intel_de_read(dev_priv, PIPESRC(pipe)); fb->width = REG_FIELD_GET(PIPESRC_WIDTH_MASK, val) + 1; fb->height = REG_FIELD_GET(PIPESRC_HEIGHT_MASK, val) + 1; diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c index 36070d86550f..6b01a0b68b97 100644 --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c @@ -2529,6 +2529,7 @@ skl_get_initial_plane_config(struct intel_crtc *crtc, plane_config->base = base; offset = intel_de_read(dev_priv, PLANE_OFFSET(pipe, plane_id)); + drm_WARN_ON(&dev_priv->drm, offset != 0); val = intel_de_read(dev_priv, PLANE_SIZE(pipe, plane_id)); fb->height = REG_FIELD_GET(PLANE_HEIGHT_MASK, val) + 1;
We assume the plane offset is 0. Warn if it's not. This also fixes a warn on unused but set variable offset. Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/i915/display/i9xx_plane.c | 2 ++ drivers/gpu/drm/i915/display/skl_universal_plane.c | 1 + 2 files changed, 3 insertions(+)