Hi Stephen, I love your patch! Perhaps something to improve: [auto build test WARNING on e4e737bb5c170df6135a127739a9e6148ee3da82] url: https://github.com/0day-ci/linux/commits/Stephen-Boyd/component-Make-into-an-aggregate-bus/20211007-034200 base: e4e737bb5c170df6135a127739a9e6148ee3da82 config: hexagon-randconfig-r041-20211006 (attached as .config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project c0039de2953d15815448b4b3c3bafb45607781e0) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/8de4fafdac42c316be0fc23e4176e13043031a38 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Stephen-Boyd/component-Make-into-an-aggregate-bus/20211007-034200 git checkout 8de4fafdac42c316be0fc23e4176e13043031a38 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=hexagon If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): In file included from drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:32: >> include/drm/drm_of.h:45:14: warning: declaration of 'struct aggregate_driver' will not be visible outside of this function [-Wvisibility] struct aggregate_driver *adrv); ^ 1 warning generated. vim +45 include/drm/drm_of.h 30 31 #ifdef CONFIG_OF 32 uint32_t drm_of_crtc_port_mask(struct drm_device *dev, 33 struct device_node *port); 34 uint32_t drm_of_find_possible_crtcs(struct drm_device *dev, 35 struct device_node *port); 36 void drm_of_component_match_add(struct device *master, 37 struct component_match **matchptr, 38 int (*compare)(struct device *, void *), 39 struct device_node *node); 40 int drm_of_component_probe(struct device *dev, 41 int (*compare_of)(struct device *, void *), 42 const struct component_master_ops *m_ops); 43 int drm_of_aggregate_probe(struct device *dev, 44 int (*compare_of)(struct device *, void *), > 45 struct aggregate_driver *adrv); 46 int drm_of_encoder_active_endpoint(struct device_node *node, 47 struct drm_encoder *encoder, 48 struct of_endpoint *endpoint); 49 int drm_of_find_panel_or_bridge(const struct device_node *np, 50 int port, int endpoint, 51 struct drm_panel **panel, 52 struct drm_bridge **bridge); 53 int drm_of_lvds_get_dual_link_pixel_order(const struct device_node *port1, 54 const struct device_node *port2); 55 #else 56 static inline uint32_t drm_of_crtc_port_mask(struct drm_device *dev, 57 struct device_node *port) 58 { 59 return 0; 60 } 61 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org