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 88e9664434c9 ("drm/i915: use localized __diag_ignore_all() instead of per file") and reverted in commit 290d16104575 ("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 689b097a06ba ("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: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240328102455.944131-1-jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
parent
5a1da42b50
commit
2d2d92bc25
drivers/gpu/drm
@ -32,11 +32,6 @@ endif
|
||||
# Enable -Werror in CI and development
|
||||
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
|
||||
# drivers. Define I915 when building i915.
|
||||
subdir-ccflags-y += -DI915
|
||||
|
@ -17,6 +17,9 @@
|
||||
#include "intel_display_reg_defs.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 = {};
|
||||
|
||||
#define PIPE_A_OFFSET 0x70000
|
||||
@ -768,6 +771,8 @@ static const struct intel_display_device_info xe2_lpd_display = {
|
||||
BIT(INTEL_FBC_C) | BIT(INTEL_FBC_D),
|
||||
};
|
||||
|
||||
__diag_pop();
|
||||
|
||||
/*
|
||||
* 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)
|
||||
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 = {
|
||||
.owner = THIS_MODULE,
|
||||
__FB_DEFAULT_DEFERRED_OPS_RDWR(intel_fbdev),
|
||||
@ -146,6 +149,8 @@ static const struct fb_ops intelfb_ops = {
|
||||
.fb_mmap = intel_fbdev_mmap,
|
||||
};
|
||||
|
||||
__diag_pop();
|
||||
|
||||
static int intelfb_create(struct drm_fb_helper *helper,
|
||||
struct drm_fb_helper_surface_size *sizes)
|
||||
{
|
||||
|
@ -38,6 +38,9 @@
|
||||
#include "i915_reg.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 GEN(x) \
|
||||
.__runtime.graphics.ip.ver = (x), \
|
||||
@ -785,6 +788,8 @@ static const struct intel_device_info mtl_info = {
|
||||
|
||||
#undef PLATFORM
|
||||
|
||||
__diag_pop();
|
||||
|
||||
/*
|
||||
* Make sure any device matches here are from most specific to most
|
||||
* general. For example, since the Quanta match is based on the subsystem
|
||||
|
@ -169,9 +169,6 @@ subdir-ccflags-$(CONFIG_DRM_XE_DISPLAY) += \
|
||||
-Ddrm_i915_gem_object=xe_bo \
|
||||
-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
|
||||
$(obj)/i915-soc/%.o: $(srctree)/drivers/gpu/drm/i915/soc/%.c FORCE
|
||||
$(call cmd,force_checksrc)
|
||||
|
Loading…
x
Reference in New Issue
Block a user