Hi Maxime,

I love your patch! Yet something to improve:

[auto build test ERROR on drm-tip/drm-tip]
[also build test ERROR on drm-intel/for-linux-next next-20210707]
[cannot apply to anholt/for-next v5.13]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Maxime-Ripard/drm-vc4-hdmi-Fix-CEC-access-while-disabled/20210707-172621
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: nios2-allyesconfig (attached as .config)
compiler: nios2-linux-gcc (GCC) 9.3.0
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/4342e12ac48418ce6366423771e887fa9fff89eb
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Maxime-Ripard/drm-vc4-hdmi-Fix-CEC-access-while-disabled/20210707-172621
        git checkout 4342e12ac48418ce6366423771e887fa9fff89eb
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross 
ARCH=nios2 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All errors (new ones prefixed by >>):

   drivers/gpu/drm/vc4/vc4_hdmi.c: In function 'vc4_hdmi_bind':
>> drivers/gpu/drm/vc4/vc4_hdmi.c:2178:8: error: implicit declaration of 
>> function 'vc4_hdmi_runtime_resume'; did you mean 'pm_runtime_resume'? 
>> [-Werror=implicit-function-declaration]
    2178 |  ret = vc4_hdmi_runtime_resume(dev);
         |        ^~~~~~~~~~~~~~~~~~~~~~~
         |        pm_runtime_resume
   At top level:
   drivers/gpu/drm/vc4/vc4_hdmi.c:1402:46: warning: 
'vc4_hdmi_audio_component_drv' defined but not used [-Wunused-const-variable=]
    1402 | static const struct snd_soc_component_driver 
vc4_hdmi_audio_component_drv = {
         |                                              
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +2178 drivers/gpu/drm/vc4/vc4_hdmi.c

  2110  
  2111  static int vc4_hdmi_bind(struct device *dev, struct device *master, 
void *data)
  2112  {
  2113          const struct vc4_hdmi_variant *variant = 
of_device_get_match_data(dev);
  2114          struct platform_device *pdev = to_platform_device(dev);
  2115          struct drm_device *drm = dev_get_drvdata(master);
  2116          struct vc4_hdmi *vc4_hdmi;
  2117          struct drm_encoder *encoder;
  2118          struct device_node *ddc_node;
  2119          int ret;
  2120  
  2121          vc4_hdmi = devm_kzalloc(dev, sizeof(*vc4_hdmi), GFP_KERNEL);
  2122          if (!vc4_hdmi)
  2123                  return -ENOMEM;
  2124          INIT_DELAYED_WORK(&vc4_hdmi->scrambling_work, 
vc4_hdmi_scrambling_wq);
  2125  
  2126          dev_set_drvdata(dev, vc4_hdmi);
  2127          encoder = &vc4_hdmi->encoder.base.base;
  2128          vc4_hdmi->encoder.base.type = variant->encoder_type;
  2129          vc4_hdmi->encoder.base.pre_crtc_configure = 
vc4_hdmi_encoder_pre_crtc_configure;
  2130          vc4_hdmi->encoder.base.pre_crtc_enable = 
vc4_hdmi_encoder_pre_crtc_enable;
  2131          vc4_hdmi->encoder.base.post_crtc_enable = 
vc4_hdmi_encoder_post_crtc_enable;
  2132          vc4_hdmi->encoder.base.post_crtc_disable = 
vc4_hdmi_encoder_post_crtc_disable;
  2133          vc4_hdmi->encoder.base.post_crtc_powerdown = 
vc4_hdmi_encoder_post_crtc_powerdown;
  2134          vc4_hdmi->pdev = pdev;
  2135          vc4_hdmi->variant = variant;
  2136  
  2137          ret = variant->init_resources(vc4_hdmi);
  2138          if (ret)
  2139                  return ret;
  2140  
  2141          ddc_node = of_parse_phandle(dev->of_node, "ddc", 0);
  2142          if (!ddc_node) {
  2143                  DRM_ERROR("Failed to find ddc node in device tree\n");
  2144                  return -ENODEV;
  2145          }
  2146  
  2147          vc4_hdmi->ddc = of_find_i2c_adapter_by_node(ddc_node);
  2148          of_node_put(ddc_node);
  2149          if (!vc4_hdmi->ddc) {
  2150                  DRM_DEBUG("Failed to get ddc i2c adapter by node\n");
  2151                  return -EPROBE_DEFER;
  2152          }
  2153  
  2154          /* Only use the GPIO HPD pin if present in the DT, otherwise
  2155           * we'll use the HDMI core's register.
  2156           */
  2157          vc4_hdmi->hpd_gpio = devm_gpiod_get_optional(dev, "hpd", 
GPIOD_IN);
  2158          if (IS_ERR(vc4_hdmi->hpd_gpio)) {
  2159                  ret = PTR_ERR(vc4_hdmi->hpd_gpio);
  2160                  goto err_put_ddc;
  2161          }
  2162  
  2163          vc4_hdmi->disable_wifi_frequencies =
  2164                  of_property_read_bool(dev->of_node, 
"wifi-2.4ghz-coexistence");
  2165  
  2166          if (variant->max_pixel_clock == 600000000) {
  2167                  struct vc4_dev *vc4 = to_vc4_dev(drm);
  2168                  long max_rate = clk_round_rate(vc4->hvs->core_clk, 
550000000);
  2169  
  2170                  if (max_rate < 550000000)
  2171                          vc4_hdmi->disable_4kp60 = true;
  2172          }
  2173  
  2174          /*
  2175           * We need to have the device powered up at this point to call
  2176           * our reset hook and for the CEC init.
  2177           */
> 2178          ret = vc4_hdmi_runtime_resume(dev);
  2179          if (ret)
  2180                  goto err_put_ddc;
  2181  
  2182          pm_runtime_get_noresume(dev);
  2183          pm_runtime_set_active(dev);
  2184          pm_runtime_enable(dev);
  2185  
  2186          if (vc4_hdmi->variant->reset)
  2187                  vc4_hdmi->variant->reset(vc4_hdmi);
  2188  
  2189          if ((of_device_is_compatible(dev->of_node, 
"brcm,bcm2711-hdmi0") ||
  2190               of_device_is_compatible(dev->of_node, 
"brcm,bcm2711-hdmi1")) &&
  2191              HDMI_READ(HDMI_VID_CTL) & VC4_HD_VID_CTL_ENABLE) {
  2192                  clk_prepare_enable(vc4_hdmi->pixel_clock);
  2193                  clk_prepare_enable(vc4_hdmi->hsm_clock);
  2194                  clk_prepare_enable(vc4_hdmi->pixel_bvb_clock);
  2195          }
  2196  
  2197          drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS);
  2198          drm_encoder_helper_add(encoder, &vc4_hdmi_encoder_helper_funcs);
  2199  
  2200          ret = vc4_hdmi_connector_init(drm, vc4_hdmi);
  2201          if (ret)
  2202                  goto err_destroy_encoder;
  2203  
  2204          ret = vc4_hdmi_hotplug_init(vc4_hdmi);
  2205          if (ret)
  2206                  goto err_destroy_conn;
  2207  
  2208          ret = vc4_hdmi_cec_init(vc4_hdmi);
  2209          if (ret)
  2210                  goto err_destroy_conn;
  2211  
  2212          ret = vc4_hdmi_audio_init(vc4_hdmi);
  2213          if (ret)
  2214                  goto err_free_cec;
  2215  
  2216          vc4_debugfs_add_file(drm, variant->debugfs_name,
  2217                               vc4_hdmi_debugfs_regs,
  2218                               vc4_hdmi);
  2219  
  2220          pm_runtime_put_sync(dev);
  2221  
  2222          return 0;
  2223  
  2224  err_free_cec:
  2225          vc4_hdmi_cec_exit(vc4_hdmi);
  2226  err_destroy_conn:
  2227          vc4_hdmi_connector_destroy(&vc4_hdmi->connector);
  2228  err_destroy_encoder:
  2229          drm_encoder_cleanup(encoder);
  2230          pm_runtime_put_sync(dev);
  2231          pm_runtime_disable(dev);
  2232  err_put_ddc:
  2233          put_device(&vc4_hdmi->ddc->dev);
  2234  
  2235          return ret;
  2236  }
  2237  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to