Message ID | 20240104160301.185915-5-jfalempe@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/panic: Add a drm panic handler | expand |
Hi Jocelyn, kernel test robot noticed the following build warnings: [auto build test WARNING on 50a3c772bd927dd409c484832ddd9f6bf00b7389] url: https://github.com/intel-lab-lkp/linux/commits/Jocelyn-Falempe/drm-format-helper-Add-drm_fb_blit_from_r1-and-drm_fb_fill/20240105-001038 base: 50a3c772bd927dd409c484832ddd9f6bf00b7389 patch link: https://lore.kernel.org/r/20240104160301.185915-5-jfalempe%40redhat.com patch subject: [PATCH v7 4/9] drm/panic: Add drm_panic_is_format_supported() config: hexagon-randconfig-r071-20240105 (https://download.01.org/0day-ci/archive/20240105/202401051328.IW9dwjX4-lkp@intel.com/config) compiler: clang version 18.0.0git (https://github.com/llvm/llvm-project 7e186d366d6c7def0543acc255931f617e76dff0) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240105/202401051328.IW9dwjX4-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/202401051328.IW9dwjX4-lkp@intel.com/ All warnings (new ones prefixed by >>): In file included from drivers/gpu/drm/drm_drv.c:38: In file included from include/drm/drm_accel.h:11: In file included from include/drm/drm_file.h:39: In file included from include/drm/drm_prime.h:37: In file included from include/linux/scatterlist.h:9: In file included from arch/hexagon/include/asm/io.h:337: include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 547 | val = __raw_readb(PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 560 | val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr)); | ~~~~~~~~~~ ^ include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu' 37 | #define __le16_to_cpu(x) ((__force __u16)(__le16)(x)) | ^ In file included from drivers/gpu/drm/drm_drv.c:38: In file included from include/drm/drm_accel.h:11: In file included from include/drm/drm_file.h:39: In file included from include/drm/drm_prime.h:37: In file included from include/linux/scatterlist.h:9: In file included from arch/hexagon/include/asm/io.h:337: include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 573 | val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr)); | ~~~~~~~~~~ ^ include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu' 35 | #define __le32_to_cpu(x) ((__force __u32)(__le32)(x)) | ^ In file included from drivers/gpu/drm/drm_drv.c:38: In file included from include/drm/drm_accel.h:11: In file included from include/drm/drm_file.h:39: In file included from include/drm/drm_prime.h:37: In file included from include/linux/scatterlist.h:9: In file included from arch/hexagon/include/asm/io.h:337: include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 584 | __raw_writeb(value, PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 594 | __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 604 | __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr); | ~~~~~~~~~~ ^ In file included from drivers/gpu/drm/drm_drv.c:46: >> include/drm/drm_panic.h:97:6: warning: no previous prototype for function 'drm_panic_is_format_supported' [-Wmissing-prototypes] 97 | bool drm_panic_is_format_supported(u32 format) {return false; } | ^ include/drm/drm_panic.h:97:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 97 | bool drm_panic_is_format_supported(u32 format) {return false; } | ^ | static 7 warnings generated. vim +/drm_panic_is_format_supported +97 include/drm/drm_panic.h 96 > 97 bool drm_panic_is_format_supported(u32 format) {return false; } 98
diff --git a/drivers/gpu/drm/drm_panic.c b/drivers/gpu/drm/drm_panic.c index 362a696ec48a..c68167cd4c08 100644 --- a/drivers/gpu/drm/drm_panic.c +++ b/drivers/gpu/drm/drm_panic.c @@ -348,6 +348,19 @@ void drm_panic_unregister(struct drm_device *dev) } EXPORT_SYMBOL(drm_panic_unregister); +/** + * drm_panic_is_format_supported() + * @format: a fourcc color code + * Returns: true if supported, false otherwise. + * + * Check if drm_panic will be able to use this color format. + */ +bool drm_panic_is_format_supported(u32 format) +{ + return drm_fb_convert_from_xrgb8888(0xffffff, format) != 0; +} +EXPORT_SYMBOL(drm_panic_is_format_supported); + /** * drm_panic_init() - Initialize drm-panic subsystem * diff --git a/include/drm/drm_panic.h b/include/drm/drm_panic.h index bcf392b6fa1b..1549c8eb8dcc 100644 --- a/include/drm/drm_panic.h +++ b/include/drm/drm_panic.h @@ -84,6 +84,8 @@ void drm_panic_exit(void); void drm_panic_register(struct drm_device *dev); void drm_panic_unregister(struct drm_device *dev); +bool drm_panic_is_format_supported(u32 format); + #else static inline void drm_panic_init(void) {} @@ -92,6 +94,8 @@ static inline void drm_panic_exit(void) {} static inline void drm_panic_register(struct drm_device *dev) {} static inline void drm_panic_unregister(struct drm_device *dev) {} +bool drm_panic_is_format_supported(u32 format) {return false; } + #endif #endif /* __DRM_PANIC_H__ */
So driver knows early if drm_panic will be able to display something on the current scanout buffer. Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com> --- drivers/gpu/drm/drm_panic.c | 13 +++++++++++++ include/drm/drm_panic.h | 4 ++++ 2 files changed, 17 insertions(+)