Commit 2d2d92bc authored by Jani Nikula's avatar Jani Nikula

drm/i915: use fine grained -Woverride-init disable

Use localized __diag_push(), __diag_ignore_all() with rationale, and
__diag_pop() for specific initializations instead of blanket disabling
of -Woverride-init across several files.

Note that we've tried this before with commit 88e96644 ("drm/i915:
use localized __diag_ignore_all() instead of per file") and reverted in
commit 290d1610 ("Revert "drm/i915: use localized
__diag_ignore_all() instead of per file""). The issue turned out to be
in __diag_ignore_all() and it was fixed by commit 689b097a
("compiler-gcc: Suppress -Wmissing-prototypes warning for all supported
GCC"). So we should be able to pull this off now.

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Reviewed-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240328102455.944131-1-jani.nikula@intel.comSigned-off-by: default avatarJani Nikula <jani.nikula@intel.com>
parent 5a1da42b
...@@ -32,11 +32,6 @@ endif ...@@ -32,11 +32,6 @@ endif
# Enable -Werror in CI and development # Enable -Werror in CI and development
subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror
# Fine grained warnings disable
CFLAGS_i915_pci.o = $(call cc-disable-warning, override-init)
CFLAGS_display/intel_display_device.o = $(call cc-disable-warning, override-init)
CFLAGS_display/intel_fbdev.o = $(call cc-disable-warning, override-init)
# Support compiling the display code separately for both i915 and xe # Support compiling the display code separately for both i915 and xe
# drivers. Define I915 when building i915. # drivers. Define I915 when building i915.
subdir-ccflags-y += -DI915 subdir-ccflags-y += -DI915
......
...@@ -17,6 +17,9 @@ ...@@ -17,6 +17,9 @@
#include "intel_display_reg_defs.h" #include "intel_display_reg_defs.h"
#include "intel_fbc.h" #include "intel_fbc.h"
__diag_push();
__diag_ignore_all("-Woverride-init", "Allow field initialization overrides for display info");
static const struct intel_display_device_info no_display = {}; static const struct intel_display_device_info no_display = {};
#define PIPE_A_OFFSET 0x70000 #define PIPE_A_OFFSET 0x70000
...@@ -768,6 +771,8 @@ static const struct intel_display_device_info xe2_lpd_display = { ...@@ -768,6 +771,8 @@ static const struct intel_display_device_info xe2_lpd_display = {
BIT(INTEL_FBC_C) | BIT(INTEL_FBC_D), BIT(INTEL_FBC_C) | BIT(INTEL_FBC_D),
}; };
__diag_pop();
/* /*
* Separate detection for no display cases to keep the display id array simple. * Separate detection for no display cases to keep the display id array simple.
* *
......
...@@ -135,6 +135,9 @@ static int intel_fbdev_mmap(struct fb_info *info, struct vm_area_struct *vma) ...@@ -135,6 +135,9 @@ static int intel_fbdev_mmap(struct fb_info *info, struct vm_area_struct *vma)
return i915_gem_fb_mmap(obj, vma); return i915_gem_fb_mmap(obj, vma);
} }
__diag_push();
__diag_ignore_all("-Woverride-init", "Allow field initialization overrides for fb ops");
static const struct fb_ops intelfb_ops = { static const struct fb_ops intelfb_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
__FB_DEFAULT_DEFERRED_OPS_RDWR(intel_fbdev), __FB_DEFAULT_DEFERRED_OPS_RDWR(intel_fbdev),
...@@ -146,6 +149,8 @@ static const struct fb_ops intelfb_ops = { ...@@ -146,6 +149,8 @@ static const struct fb_ops intelfb_ops = {
.fb_mmap = intel_fbdev_mmap, .fb_mmap = intel_fbdev_mmap,
}; };
__diag_pop();
static int intelfb_create(struct drm_fb_helper *helper, static int intelfb_create(struct drm_fb_helper *helper,
struct drm_fb_helper_surface_size *sizes) struct drm_fb_helper_surface_size *sizes)
{ {
......
...@@ -38,6 +38,9 @@ ...@@ -38,6 +38,9 @@
#include "i915_reg.h" #include "i915_reg.h"
#include "intel_pci_config.h" #include "intel_pci_config.h"
__diag_push();
__diag_ignore_all("-Woverride-init", "Allow field initialization overrides for device info");
#define PLATFORM(x) .platform = (x) #define PLATFORM(x) .platform = (x)
#define GEN(x) \ #define GEN(x) \
.__runtime.graphics.ip.ver = (x), \ .__runtime.graphics.ip.ver = (x), \
...@@ -785,6 +788,8 @@ static const struct intel_device_info mtl_info = { ...@@ -785,6 +788,8 @@ static const struct intel_device_info mtl_info = {
#undef PLATFORM #undef PLATFORM
__diag_pop();
/* /*
* Make sure any device matches here are from most specific to most * Make sure any device matches here are from most specific to most
* general. For example, since the Quanta match is based on the subsystem * general. For example, since the Quanta match is based on the subsystem
......
...@@ -169,9 +169,6 @@ subdir-ccflags-$(CONFIG_DRM_XE_DISPLAY) += \ ...@@ -169,9 +169,6 @@ subdir-ccflags-$(CONFIG_DRM_XE_DISPLAY) += \
-Ddrm_i915_gem_object=xe_bo \ -Ddrm_i915_gem_object=xe_bo \
-Ddrm_i915_private=xe_device -Ddrm_i915_private=xe_device
CFLAGS_i915-display/intel_fbdev.o = $(call cc-disable-warning, override-init)
CFLAGS_i915-display/intel_display_device.o = $(call cc-disable-warning, override-init)
# Rule to build SOC code shared with i915 # Rule to build SOC code shared with i915
$(obj)/i915-soc/%.o: $(srctree)/drivers/gpu/drm/i915/soc/%.c FORCE $(obj)/i915-soc/%.o: $(srctree)/drivers/gpu/drm/i915/soc/%.c FORCE
$(call cmd,force_checksrc) $(call cmd,force_checksrc)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment