[PATCHv8 09/13] dw-hdmi: use cec_notifier_conn_(un)register

kbuild test robot lkp at intel.com
Tue Jun 25 00:43:58 UTC 2019


Hi Hans,

I love your patch! Yet something to improve:

[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on v5.2-rc6 next-20190621]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Hans-Verkuil/cec-improve-notifier-support-add-connector-info/20190625-043917
base:   git://linuxtv.org/media_tree.git master
config: x86_64-randconfig-x014-201925 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp at intel.com>

All errors (new ones prefixed by >>):

   drivers/gpu/drm/bridge/synopsys/dw-hdmi.c: In function 'dw_hdmi_bridge_attach':
>> drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:2154:30: error: passing argument 1 of 'cec_fill_conn_info_from_drm' from incompatible pointer type [-Werror=incompatible-pointer-types]
     cec_fill_conn_info_from_drm(&conn_info, connector);
                                 ^
   In file included from include/media/cec-notifier.h:13:0,
                    from drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:36:
   include/media/cec.h:381:1: note: expected 'const struct drm_connector *' but argument is of type 'struct cec_connector_info *'
    cec_fill_conn_info_from_drm(const struct drm_connector *connector,
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:2154:42: error: passing argument 2 of 'cec_fill_conn_info_from_drm' from incompatible pointer type [-Werror=incompatible-pointer-types]
     cec_fill_conn_info_from_drm(&conn_info, connector);
                                             ^~~~~~~~~
   In file included from include/media/cec-notifier.h:13:0,
                    from drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:36:
   include/media/cec.h:381:1: note: expected 'struct cec_connector_info *' but argument is of type 'struct drm_connector *'
    cec_fill_conn_info_from_drm(const struct drm_connector *connector,
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   Cyclomatic Complexity 1 include/linux/err.h:ERR_PTR
   Cyclomatic Complexity 1 include/linux/err.h:PTR_ERR
   Cyclomatic Complexity 1 include/linux/spinlock.h:spinlock_check
   Cyclomatic Complexity 1 include/linux/spinlock.h:spin_lock_irq
   Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock_irq
   Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock_irqrestore
   Cyclomatic Complexity 1 include/linux/completion.h:reinit_completion
   Cyclomatic Complexity 1 include/linux/kobject.h:kobject_name
   Cyclomatic Complexity 1 include/linux/device.h:dev_get_drvdata
   Cyclomatic Complexity 1 include/linux/device.h:dev_set_drvdata
   Cyclomatic Complexity 1 include/linux/i2c.h:i2c_get_adapdata
   Cyclomatic Complexity 1 include/linux/i2c.h:i2c_set_adapdata
   Cyclomatic Complexity 1 include/drm/drm_modeset_helper_vtables.h:drm_connector_helper_add
   Cyclomatic Complexity 1 include/media/cec-notifier.h:cec_notifier_conn_register
   Cyclomatic Complexity 1 include/media/cec-notifier.h:cec_notifier_conn_unregister
   Cyclomatic Complexity 1 include/media/cec-notifier.h:cec_notifier_set_phys_addr
   Cyclomatic Complexity 1 include/media/cec-notifier.h:cec_notifier_set_phys_addr_from_edid
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_i2c_func
   Cyclomatic Complexity 2 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_bus_fmt_is_rgb
   Cyclomatic Complexity 2 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_bus_fmt_is_yuv444
   Cyclomatic Complexity 2 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_bus_fmt_is_yuv422
   Cyclomatic Complexity 2 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_bus_fmt_is_yuv420
   Cyclomatic Complexity 5 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_bus_fmt_color_depth
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:is_color_space_conversion
   Cyclomatic Complexity 6 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:is_color_space_decimation
   Cyclomatic Complexity 6 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:is_color_space_interpolation
   Cyclomatic Complexity 35 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_compute_n
   Cyclomatic Complexity 4 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_audio_enable
   Cyclomatic Complexity 4 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_audio_disable
   Cyclomatic Complexity 23 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_support_scdc
   Cyclomatic Complexity 4 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_poweroff
   Cyclomatic Complexity 4 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_update_phy_mask
   Cyclomatic Complexity 7 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_bridge_mode_valid
   Cyclomatic Complexity 4 include/linux/device.h:dev_name
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_modb
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_mask_writeb
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_phy_gen2_pddq
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_phy_gen2_txpwron
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_phy_enable_tmds
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_phy_enable_powerdown
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_phy_sel_data_en_pol
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_phy_sel_interface_control
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_phy_enable_svsret
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_phy_test_clear
   Cyclomatic Complexity 4 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_tx_hdcp_config
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_writeb
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_set_cts_n
   Cyclomatic Complexity 2 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_set_clk_regenerator
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_set_sample_rate
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_clk_regenerator_update_pixel_clock
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_init_clk_regenerator
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_ahb_audio_disable
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_ahb_audio_enable
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_phy_reset
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_phy_i2c_set_addr
   Cyclomatic Complexity 12 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_phy_update_hpd
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_phy_setup_hpd
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_disable_overflow_interrupts
   Cyclomatic Complexity 5 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_enable_video_path
   Cyclomatic Complexity 4 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_enable_audio_clk
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_i2s_audio_disable
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_i2s_audio_enable
   Cyclomatic Complexity 26 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_video_packetize
   Cyclomatic Complexity 14 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_update_csc_coeffs
   Cyclomatic Complexity 9 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_video_csc
   Cyclomatic Complexity 12 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_video_sample
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_cec_disable
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_cec_enable
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_setup_i2c
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_i2c_init
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_readb
   Cyclomatic Complexity 4 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_phy_wait_i2c_done
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_phy_i2c_write
   Cyclomatic Complexity 24 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_phy_configure_dwc_hdmi_3d_tx
   Cyclomatic Complexity 2 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_phy_read_hpd
   Cyclomatic Complexity 4 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_clear_overflow
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:initialize_hdmi_ih_mutes
   Cyclomatic Complexity 6 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_set_high_tmds_clock_ratio
   Cyclomatic Complexity 1 include/drm/drm_scdc_helper.h:drm_scdc_readb
   Cyclomatic Complexity 1 include/drm/drm_scdc_helper.h:drm_scdc_writeb
   Cyclomatic Complexity 28 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_av_composer
   Cyclomatic Complexity 37 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_config_AVI
   Cyclomatic Complexity 10 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:hdmi_config_vendor_specific_infoframe
   Cyclomatic Complexity 25 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_setup
   Cyclomatic Complexity 1 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c:dw_hdmi_poweron

vim +/cec_fill_conn_info_from_drm +2154 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c

  2136	
  2137	static int dw_hdmi_bridge_attach(struct drm_bridge *bridge)
  2138	{
  2139		struct dw_hdmi *hdmi = bridge->driver_private;
  2140		struct drm_encoder *encoder = bridge->encoder;
  2141		struct drm_connector *connector = &hdmi->connector;
  2142		struct cec_connector_info conn_info;
  2143	
  2144		connector->interlace_allowed = 1;
  2145		connector->polled = DRM_CONNECTOR_POLL_HPD;
  2146	
  2147		drm_connector_helper_add(connector, &dw_hdmi_connector_helper_funcs);
  2148	
  2149		drm_connector_init(bridge->dev, connector, &dw_hdmi_connector_funcs,
  2150				   DRM_MODE_CONNECTOR_HDMIA);
  2151	
  2152		drm_connector_attach_encoder(connector, encoder);
  2153	
> 2154		cec_fill_conn_info_from_drm(&conn_info, connector);
  2155	
  2156		hdmi->cec_notifier = cec_notifier_conn_register(hdmi->dev, NULL,
  2157								&conn_info);
  2158		if (!hdmi->cec_notifier)
  2159			return -ENOMEM;
  2160	
  2161		if (hdmi->cec_configured) {
  2162			struct platform_device_info pdevinfo;
  2163			struct dw_hdmi_cec_data cec;
  2164	
  2165			memset(&pdevinfo, 0, sizeof(pdevinfo));
  2166			pdevinfo.parent = hdmi->dev;
  2167			pdevinfo.id = PLATFORM_DEVID_AUTO;
  2168	
  2169			cec.hdmi = hdmi;
  2170			cec.ops = &dw_hdmi_cec_ops;
  2171			cec.irq = hdmi->irq;
  2172	
  2173			pdevinfo.name = "dw-hdmi-cec";
  2174			pdevinfo.data = &cec;
  2175			pdevinfo.size_data = sizeof(cec);
  2176			pdevinfo.dma_mask = 0;
  2177	
  2178			hdmi->cec = platform_device_register_full(&pdevinfo);
  2179		}
  2180	
  2181		return 0;
  2182	}
  2183	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 33736 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20190625/807397aa/attachment-0001.gz>


More information about the dri-devel mailing list