mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-18 22:14:16 +00:00 
			
		
		
		
	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 commit88e9664434("drm/i915: use localized __diag_ignore_all() instead of per file") and reverted in commit290d161045("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 commit689b097a06("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
					
				
					 5 changed files with 15 additions and 8 deletions
				
			
		|  | @ -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…
	
	Add table
		
		Reference in a new issue
	
	 Jani Nikula
						Jani Nikula