[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