[PATCH v3] drm/rockchip: cdn-dp: Convert to drm bridge

kernel test robot lkp at intel.com
Tue May 27 16:41:25 UTC 2025


Hi Chaoyi,

kernel test robot noticed the following build errors:

[auto build test ERROR on rockchip/for-next]
[also build test ERROR on linus/master v6.15 next-20250527]
[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#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Chaoyi-Chen/drm-rockchip-cdn-dp-Convert-to-drm-bridge/20250527-161941
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git for-next
patch link:    https://lore.kernel.org/r/20250527081447.304-1-kernel%40airkyi.com
patch subject: [PATCH v3] drm/rockchip: cdn-dp: Convert to drm bridge
config: i386-buildonly-randconfig-002-20250527 (https://download.01.org/0day-ci/archive/20250528/202505280026.8VDl0TWN-lkp@intel.com/config)
compiler: clang version 20.1.2 (https://github.com/llvm/llvm-project 58df0ef89dd64126512e4ee27b4ac3fd8ddf6247)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250528/202505280026.8VDl0TWN-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 at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202505280026.8VDl0TWN-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/gpu/drm/rockchip/cdn-dp-core.c:783:17: error: incompatible pointer types passing 'struct drm_device *' to parameter of type 'const struct device *' [-Werror,-Wincompatible-pointer-types]
     783 |                 DRM_DEV_ERROR(bridge->dev, "Invalid format %d\n", daifmt->fmt);
         |                               ^~~~~~~~~~~
   include/drm/drm_print.h:504:17: note: expanded from macro 'DRM_DEV_ERROR'
     504 |         drm_dev_printk(dev, KERN_ERR, "*ERROR* " fmt, ##__VA_ARGS__)
         |                        ^~~
   include/drm/drm_print.h:488:42: note: passing argument to parameter 'dev' here
     488 | void drm_dev_printk(const struct device *dev, const char *level,
         |                                          ^
>> drivers/gpu/drm/rockchip/cdn-dp-core.c:844:3: error: field designator 'dp_audio_prepare' does not refer to any field in type 'const struct drm_bridge_funcs'; did you mean 'hdmi_audio_prepare'?
     844 |         .dp_audio_prepare = cdn_dp_audio_prepare,
         |          ^~~~~~~~~~~~~~~~
         |          hdmi_audio_prepare
   include/drm/drm_bridge.h:702:8: note: 'hdmi_audio_prepare' declared here
     702 |         int (*hdmi_audio_prepare)(struct drm_connector *connector,
         |               ^
>> drivers/gpu/drm/rockchip/cdn-dp-core.c:845:3: error: field designator 'dp_audio_mute_stream' does not refer to any field in type 'const struct drm_bridge_funcs'; did you mean 'hdmi_audio_mute_stream'?
     845 |         .dp_audio_mute_stream = cdn_dp_audio_mute_stream,
         |          ^~~~~~~~~~~~~~~~~~~~
         |          hdmi_audio_mute_stream
   include/drm/drm_bridge.h:728:8: note: 'hdmi_audio_mute_stream' declared here
     728 |         int (*hdmi_audio_mute_stream)(struct drm_connector *connector,
         |               ^
>> drivers/gpu/drm/rockchip/cdn-dp-core.c:846:3: error: field designator 'dp_audio_shutdown' does not refer to any field in type 'const struct drm_bridge_funcs'; did you mean 'hdmi_audio_shutdown'?
     846 |         .dp_audio_shutdown = cdn_dp_audio_shutdown,
         |          ^~~~~~~~~~~~~~~~~
         |          hdmi_audio_shutdown
   include/drm/drm_bridge.h:716:9: note: 'hdmi_audio_shutdown' declared here
     716 |         void (*hdmi_audio_shutdown)(struct drm_connector *connector,
         |                ^
>> drivers/gpu/drm/rockchip/cdn-dp-core.c:1011:4: error: use of undeclared identifier 'DRM_BRIDGE_OP_DP_AUDIO'
    1011 |                         DRM_BRIDGE_OP_DP_AUDIO;
         |                         ^
>> drivers/gpu/drm/rockchip/cdn-dp-core.c:1046:9: error: use of undeclared label 'err_free_connector'
    1046 |                         goto err_free_connector;
         |                              ^
   drivers/gpu/drm/rockchip/cdn-dp-core.c:1114:7: error: call to undeclared function 'devm_drm_bridge_alloc'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1114 |         dp = devm_drm_bridge_alloc(dev, struct cdn_dp_device, bridge,
         |              ^
   drivers/gpu/drm/rockchip/cdn-dp-core.c:1114:7: note: did you mean 'devm_drm_bridge_add'?
   include/drm/drm_bridge.h:945:5: note: 'devm_drm_bridge_add' declared here
     945 | int devm_drm_bridge_add(struct device *dev, struct drm_bridge *bridge);
         |     ^
   drivers/gpu/drm/rockchip/cdn-dp-core.c:1114:34: error: expected expression
    1114 |         dp = devm_drm_bridge_alloc(dev, struct cdn_dp_device, bridge,
         |                                         ^
   drivers/gpu/drm/rockchip/cdn-dp-core.c:1114:56: error: use of undeclared identifier 'bridge'
    1114 |         dp = devm_drm_bridge_alloc(dev, struct cdn_dp_device, bridge,
         |                                                               ^
   9 errors generated.


vim +783 drivers/gpu/drm/rockchip/cdn-dp-core.c

   755	
   756	static int cdn_dp_audio_prepare(struct drm_connector *connector,
   757					struct drm_bridge *bridge,
   758					struct hdmi_codec_daifmt *daifmt,
   759					struct hdmi_codec_params *params)
   760	{
   761		struct cdn_dp_device *dp = bridge_to_dp(bridge);
   762		struct audio_info audio = {
   763			.sample_width = params->sample_width,
   764			.sample_rate = params->sample_rate,
   765			.channels = params->channels,
   766		};
   767		int ret;
   768	
   769		mutex_lock(&dp->lock);
   770		if (!dp->active) {
   771			ret = -ENODEV;
   772			goto out;
   773		}
   774	
   775		switch (daifmt->fmt) {
   776		case HDMI_I2S:
   777			audio.format = AFMT_I2S;
   778			break;
   779		case HDMI_SPDIF:
   780			audio.format = AFMT_SPDIF;
   781			break;
   782		default:
 > 783			DRM_DEV_ERROR(bridge->dev, "Invalid format %d\n", daifmt->fmt);
   784			ret = -EINVAL;
   785			goto out;
   786		}
   787	
   788		ret = cdn_dp_audio_config(dp, &audio);
   789		if (!ret)
   790			dp->audio_info = audio;
   791	
   792	out:
   793		mutex_unlock(&dp->lock);
   794		return ret;
   795	}
   796	
   797	static void cdn_dp_audio_shutdown(struct drm_connector *connector,
   798					  struct drm_bridge *bridge)
   799	{
   800		struct cdn_dp_device *dp = bridge_to_dp(bridge);
   801		int ret;
   802	
   803		mutex_lock(&dp->lock);
   804		if (!dp->active)
   805			goto out;
   806	
   807		ret = cdn_dp_audio_stop(dp, &dp->audio_info);
   808		if (!ret)
   809			dp->audio_info.format = AFMT_UNUSED;
   810	out:
   811		mutex_unlock(&dp->lock);
   812	}
   813	
   814	static int cdn_dp_audio_mute_stream(struct drm_connector *connector,
   815					    struct drm_bridge *bridge,
   816					    bool enable, int direction)
   817	{
   818		struct cdn_dp_device *dp = bridge_to_dp(bridge);
   819		int ret;
   820	
   821		mutex_lock(&dp->lock);
   822		if (!dp->active) {
   823			ret = -ENODEV;
   824			goto out;
   825		}
   826	
   827		ret = cdn_dp_audio_mute(dp, enable);
   828	
   829	out:
   830		mutex_unlock(&dp->lock);
   831		return ret;
   832	}
   833	
   834	static const struct drm_bridge_funcs cdn_dp_bridge_funcs = {
   835		.atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
   836		.atomic_destroy_state = drm_atomic_helper_bridge_destroy_state,
   837		.atomic_reset = drm_atomic_helper_bridge_reset,
   838		.detect = cdn_dp_bridge_detect,
   839		.edid_read = cdn_dp_bridge_edid_read,
   840		.atomic_enable = cdn_dp_bridge_atomic_enable,
   841		.atomic_disable = cdn_dp_bridge_atomic_disable,
   842		.mode_valid = cdn_dp_bridge_mode_valid,
   843	
 > 844		.dp_audio_prepare = cdn_dp_audio_prepare,
 > 845		.dp_audio_mute_stream = cdn_dp_audio_mute_stream,
 > 846		.dp_audio_shutdown = cdn_dp_audio_shutdown,
   847	};
   848	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


More information about the dri-devel mailing list