On Sat, 07 Nov 2020, Sam Ravnborg wrote: > Hi Lee, > > On Fri, Nov 06, 2020 at 09:49:40PM +0000, Lee Jones wrote: > > Unfortunately, a suitable one didn't already exist. > > > > Fixes the following W=1 kernel build warning(s): > > > > drivers/gpu/drm/radeon/radeon_device.c:637:6: warning: no previous prototype for ‘radeon_device_is_virtual’ [-Wmissing-prototypes] > > 637 | bool radeon_device_is_virtual(void) > > | ^~~~~~~~~~~~~~~~~~~~~~~~ > > > > Cc: Alex Deucher <alexander.deucher@xxxxxxx> > > Cc: "Christian König" <christian.koenig@xxxxxxx> > > Cc: David Airlie <airlied@xxxxxxxx> > > Cc: Daniel Vetter <daniel@xxxxxxxx> > > Cc: Sumit Semwal <sumit.semwal@xxxxxxxxxx> > > Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx > > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx > > Cc: linux-media@xxxxxxxxxxxxxxx > > Cc: linaro-mm-sig@xxxxxxxxxxxxxxxx > > Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx> > > --- > > drivers/gpu/drm/radeon/radeon_device.c | 1 + > > drivers/gpu/drm/radeon/radeon_device.h | 32 ++++++++++++++++++++++++++ > > drivers/gpu/drm/radeon/radeon_drv.c | 3 +-- > > 3 files changed, 34 insertions(+), 2 deletions(-) > > create mode 100644 drivers/gpu/drm/radeon/radeon_device.h > > Other public functions in radeon_device.c have their prototype in > radeon.h - for example radeon_is_px() > > Add radeon_device_is_virtual() there so we avoiid this new header. Oh yes, I remember why this wasn't a suitable solution now: The macro "radeon_init" in radeon.h clashes with the init function of the same name in radeon_drv.c: In file included from drivers/gpu/drm/radeon/radeon_drv.c:53: drivers/gpu/drm/radeon/radeon_drv.c:620:31: error: expected identifier or ‘(’ before ‘void’ 620 | static int __init radeon_init(void) | ^~~~ drivers/gpu/drm/radeon/radeon.h:2705:28: note: in definition of macro ‘radeon_init’ 2705 | #define radeon_init(rdev) (rdev)->asic->init((rdev)) | ^~~~ In file included from drivers/gpu/drm/radeon/radeon_drv.c:35: drivers/gpu/drm/radeon/radeon_drv.c: In function ‘__inittest’: drivers/gpu/drm/radeon/radeon_drv.c:653:13: error: ‘radeon_init’ undeclared (first use in this function); did you mean ‘radeon_exit’? 653 | module_init(radeon_init); | ^~~~~~~~~~~ include/linux/module.h:133:11: note: in definition of macro ‘module_init’ 133 | { return initfn; } | ^~~~~~ drivers/gpu/drm/radeon/radeon_drv.c:653:13: note: each undeclared identifier is reported only once for each function it appears in 653 | module_init(radeon_init); | ^~~~~~~~~~~ include/linux/module.h:133:11: note: in definition of macro ‘module_init’ 133 | { return initfn; } | ^~~~~~ In file included from include/linux/compiler_types.h:65, from <command-line>: drivers/gpu/drm/radeon/radeon_drv.c: At top level: drivers/gpu/drm/radeon/radeon_drv.c:653:13: error: ‘radeon_init’ undeclared here (not in a function); did you mean ‘radeon_exit’? 653 | module_init(radeon_init); | ^~~~~~~~~~~ include/linux/compiler_attributes.h:109:65: note: in definition of macro ‘__copy’ 109 | # define __copy(symbol) __attribute__((__copy__(symbol))) | ^~~~~~ drivers/gpu/drm/radeon/radeon_drv.c:653:1: note: in expansion of macro ‘module_init’ 653 | module_init(radeon_init); | ^~~~~~~~~~~ In file included from drivers/gpu/drm/radeon/radeon_drv.c:35: include/linux/module.h:134:6: error: ‘init_module’ aliased to undefined symbol ‘radeon_init’ 134 | int init_module(void) __copy(initfn) __attribute__((alias(#initfn))); | ^~~~~~~~~~~ drivers/gpu/drm/radeon/radeon_drv.c:653:1: note: in expansion of macro ‘module_init’ 653 | module_init(radeon_init); | ^~~~~~~~~~~ How would you like me to move forward? -- Lee Jones [李琼斯] Senior Technical Lead - Developer Services Linaro.org │ Open source software for Arm SoCs Follow Linaro: Facebook | Twitter | Blog