Hi Chandan, Thank you for the patch! Yet something to improve: [auto build test ERROR on robclark/msm-next] [also build test ERROR on v5.0-rc1 next-20190108] [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/Chandan-Uddaraju/List-of-patches-for-DP-drivers-on-SnapDragon/20190109-052537 base: git://people.freedesktop.org/~robclark/linux msm-next config: arm-allmodconfig (attached as .config) compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=arm All error/warnings (new ones prefixed by >>): drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_parse_audio_channel_period': >> drivers/gpu/drm/msm/dp/dp_link.c:75:33: error: 'DP_TEST_AUDIO_PERIOD_CH1' undeclared (first use in this function); did you mean 'DP_TEST_BIT_DEPTH_10'? ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH1); ^~~~~~~~~~~~~~~~~~~~~~~~ DP_TEST_BIT_DEPTH_10 drivers/gpu/drm/msm/dp/dp_link.c:75:33: note: each undeclared identifier is reported only once for each function it appears in drivers/gpu/drm/msm/dp/dp_link.c:82:33: error: 'DP_TEST_AUDIO_PERIOD_CH2' undeclared (first use in this function); did you mean 'DP_TEST_AUDIO_PERIOD_CH1'? ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH2); ^~~~~~~~~~~~~~~~~~~~~~~~ DP_TEST_AUDIO_PERIOD_CH1 drivers/gpu/drm/msm/dp/dp_link.c:90:33: error: 'DP_TEST_AUDIO_PERIOD_CH3' undeclared (first use in this function); did you mean 'DP_TEST_AUDIO_PERIOD_CH2'? ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH3); ^~~~~~~~~~~~~~~~~~~~~~~~ DP_TEST_AUDIO_PERIOD_CH2 drivers/gpu/drm/msm/dp/dp_link.c:97:33: error: 'DP_TEST_AUDIO_PERIOD_CH4' undeclared (first use in this function); did you mean 'DP_TEST_AUDIO_PERIOD_CH3'? ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH4); ^~~~~~~~~~~~~~~~~~~~~~~~ DP_TEST_AUDIO_PERIOD_CH3 drivers/gpu/drm/msm/dp/dp_link.c:104:33: error: 'DP_TEST_AUDIO_PERIOD_CH5' undeclared (first use in this function); did you mean 'DP_TEST_AUDIO_PERIOD_CH4'? ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH5); ^~~~~~~~~~~~~~~~~~~~~~~~ DP_TEST_AUDIO_PERIOD_CH4 drivers/gpu/drm/msm/dp/dp_link.c:111:33: error: 'DP_TEST_AUDIO_PERIOD_CH6' undeclared (first use in this function); did you mean 'DP_TEST_AUDIO_PERIOD_CH5'? ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH6); ^~~~~~~~~~~~~~~~~~~~~~~~ DP_TEST_AUDIO_PERIOD_CH5 drivers/gpu/drm/msm/dp/dp_link.c:118:33: error: 'DP_TEST_AUDIO_PERIOD_CH7' undeclared (first use in this function); did you mean 'DP_TEST_AUDIO_PERIOD_CH6'? ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH7); ^~~~~~~~~~~~~~~~~~~~~~~~ DP_TEST_AUDIO_PERIOD_CH6 drivers/gpu/drm/msm/dp/dp_link.c:125:33: error: 'DP_TEST_AUDIO_PERIOD_CH8' undeclared (first use in this function); did you mean 'DP_TEST_AUDIO_PERIOD_CH7'? ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH8); ^~~~~~~~~~~~~~~~~~~~~~~~ DP_TEST_AUDIO_PERIOD_CH7 drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_parse_audio_pattern_type': drivers/gpu/drm/msm/dp/dp_link.c:143:5: error: 'DP_TEST_AUDIO_PATTERN_TYPE' undeclared (first use in this function); did you mean 'DP_TEST_PHY_PATTERN'? DP_TEST_AUDIO_PATTERN_TYPE, &data); ^~~~~~~~~~~~~~~~~~~~~~~~~~ DP_TEST_PHY_PATTERN drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_parse_audio_mode': >> drivers/gpu/drm/msm/dp/dp_link.c:172:47: error: 'DP_TEST_AUDIO_MODE' undeclared (first use in this function); did you mean 'DP_TEST_LINK_RATE'? rlen = drm_dp_dpcd_readb(link->aux->drm_aux, DP_TEST_AUDIO_MODE, &data); ^~~~~~~~~~~~~~~~~~ DP_TEST_LINK_RATE drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_is_video_audio_test_requested': drivers/gpu/drm/msm/dp/dp_link.c:577:5: error: 'DP_TEST_LINK_AUDIO_PATTERN' undeclared (first use in this function); did you mean 'DP_TEST_LINK_VIDEO_PATTERN'? DP_TEST_LINK_AUDIO_PATTERN | ^~~~~~~~~~~~~~~~~~~~~~~~~~ DP_TEST_LINK_VIDEO_PATTERN drivers/gpu/drm/msm/dp/dp_link.c:578:5: error: 'DP_TEST_LINK_AUDIO_DISABLED_VIDEO' undeclared (first use in this function); did you mean 'DP_TEST_LINK_AUDIO_PATTERN'? DP_TEST_LINK_AUDIO_DISABLED_VIDEO); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DP_TEST_LINK_AUDIO_PATTERN drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_is_video_pattern_requested': drivers/gpu/drm/msm/dp/dp_link.c:974:3: error: 'DP_TEST_LINK_AUDIO_DISABLED_VIDEO' undeclared (first use in this function); did you mean 'DP_TEST_LINK_VIDEO_PATTERN'? DP_TEST_LINK_AUDIO_DISABLED_VIDEO); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DP_TEST_LINK_VIDEO_PATTERN drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_is_audio_pattern_requested': drivers/gpu/drm/msm/dp/dp_link.c:979:41: error: 'DP_TEST_LINK_AUDIO_PATTERN' undeclared (first use in this function); did you mean 'DP_TEST_LINK_VIDEO_PATTERN'? return (link->request.test_requested & DP_TEST_LINK_AUDIO_PATTERN); ^~~~~~~~~~~~~~~~~~~~~~~~~~ DP_TEST_LINK_VIDEO_PATTERN drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_process_request': drivers/gpu/drm/msm/dp/dp_link.c:1052:28: error: 'DP_TEST_LINK_AUDIO_PATTERN' undeclared (first use in this function); did you mean 'DP_TEST_LINK_VIDEO_PATTERN'? dp_link->sink_request |= DP_TEST_LINK_AUDIO_PATTERN; ^~~~~~~~~~~~~~~~~~~~~~~~~~ DP_TEST_LINK_VIDEO_PATTERN drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_get_colorimetry_config': drivers/gpu/drm/msm/dp/dp_link.c:1078:8: error: 'DP_TEST_DYNAMIC_RANGE_VESA' undeclared (first use in this function); did you mean 'DP_TEST_DYNAMIC_RANGE_CEA'? cc = DP_TEST_DYNAMIC_RANGE_VESA; ^~~~~~~~~~~~~~~~~~~~~~~~~~ DP_TEST_DYNAMIC_RANGE_CEA drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_is_video_pattern_requested': drivers/gpu/drm/msm/dp/dp_link.c:975:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ drivers/gpu/drm/msm/dp/dp_link.c: In function 'dp_link_is_audio_pattern_requested': drivers/gpu/drm/msm/dp/dp_link.c:980:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ -- drivers/gpu/drm/msm/dp/dp_power.c: In function 'dp_power_init': >> drivers/gpu/drm/msm/dp/dp_power.c:677:28: warning: 'power' may be used uninitialized in this function [-Wmaybe-uninitialized] pm_runtime_put_sync(&power->pdev->dev); ~~~~~^~~~~~ vim +75 drivers/gpu/drm/msm/dp/dp_link.c c24ff5297 Chandan Uddaraju 2019-01-07 69 c24ff5297 Chandan Uddaraju 2019-01-07 70 static int dp_link_parse_audio_channel_period(struct dp_link_private *link) c24ff5297 Chandan Uddaraju 2019-01-07 71 { c24ff5297 Chandan Uddaraju 2019-01-07 72 int ret = 0; c24ff5297 Chandan Uddaraju 2019-01-07 73 struct dp_link_test_audio *req = &link->dp_link.test_audio; c24ff5297 Chandan Uddaraju 2019-01-07 74 c24ff5297 Chandan Uddaraju 2019-01-07 @75 ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH1); c24ff5297 Chandan Uddaraju 2019-01-07 76 if (ret == -EINVAL) c24ff5297 Chandan Uddaraju 2019-01-07 77 goto exit; c24ff5297 Chandan Uddaraju 2019-01-07 78 c24ff5297 Chandan Uddaraju 2019-01-07 79 req->test_audio_period_ch_1 = ret; c24ff5297 Chandan Uddaraju 2019-01-07 80 DRM_DEBUG_DP("test_audio_period_ch_1 = 0x%x\n", ret); c24ff5297 Chandan Uddaraju 2019-01-07 81 c24ff5297 Chandan Uddaraju 2019-01-07 82 ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH2); c24ff5297 Chandan Uddaraju 2019-01-07 83 if (ret == -EINVAL) c24ff5297 Chandan Uddaraju 2019-01-07 84 goto exit; c24ff5297 Chandan Uddaraju 2019-01-07 85 c24ff5297 Chandan Uddaraju 2019-01-07 86 req->test_audio_period_ch_2 = ret; c24ff5297 Chandan Uddaraju 2019-01-07 87 DRM_DEBUG_DP("test_audio_period_ch_2 = 0x%x\n", ret); c24ff5297 Chandan Uddaraju 2019-01-07 88 c24ff5297 Chandan Uddaraju 2019-01-07 89 /* TEST_AUDIO_PERIOD_CH_3 (Byte 0x275) */ c24ff5297 Chandan Uddaraju 2019-01-07 90 ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH3); c24ff5297 Chandan Uddaraju 2019-01-07 91 if (ret == -EINVAL) c24ff5297 Chandan Uddaraju 2019-01-07 92 goto exit; c24ff5297 Chandan Uddaraju 2019-01-07 93 c24ff5297 Chandan Uddaraju 2019-01-07 94 req->test_audio_period_ch_3 = ret; c24ff5297 Chandan Uddaraju 2019-01-07 95 DRM_DEBUG_DP("test_audio_period_ch_3 = 0x%x\n", ret); c24ff5297 Chandan Uddaraju 2019-01-07 96 c24ff5297 Chandan Uddaraju 2019-01-07 97 ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH4); c24ff5297 Chandan Uddaraju 2019-01-07 98 if (ret == -EINVAL) c24ff5297 Chandan Uddaraju 2019-01-07 99 goto exit; c24ff5297 Chandan Uddaraju 2019-01-07 100 c24ff5297 Chandan Uddaraju 2019-01-07 101 req->test_audio_period_ch_4 = ret; c24ff5297 Chandan Uddaraju 2019-01-07 102 DRM_DEBUG_DP("test_audio_period_ch_4 = 0x%x\n", ret); c24ff5297 Chandan Uddaraju 2019-01-07 103 c24ff5297 Chandan Uddaraju 2019-01-07 104 ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH5); c24ff5297 Chandan Uddaraju 2019-01-07 105 if (ret == -EINVAL) c24ff5297 Chandan Uddaraju 2019-01-07 106 goto exit; c24ff5297 Chandan Uddaraju 2019-01-07 107 c24ff5297 Chandan Uddaraju 2019-01-07 108 req->test_audio_period_ch_5 = ret; c24ff5297 Chandan Uddaraju 2019-01-07 109 DRM_DEBUG_DP("test_audio_period_ch_5 = 0x%x\n", ret); c24ff5297 Chandan Uddaraju 2019-01-07 110 c24ff5297 Chandan Uddaraju 2019-01-07 111 ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH6); c24ff5297 Chandan Uddaraju 2019-01-07 112 if (ret == -EINVAL) c24ff5297 Chandan Uddaraju 2019-01-07 113 goto exit; c24ff5297 Chandan Uddaraju 2019-01-07 114 c24ff5297 Chandan Uddaraju 2019-01-07 115 req->test_audio_period_ch_6 = ret; c24ff5297 Chandan Uddaraju 2019-01-07 116 DRM_DEBUG_DP("test_audio_period_ch_6 = 0x%x\n", ret); c24ff5297 Chandan Uddaraju 2019-01-07 117 c24ff5297 Chandan Uddaraju 2019-01-07 118 ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH7); c24ff5297 Chandan Uddaraju 2019-01-07 119 if (ret == -EINVAL) c24ff5297 Chandan Uddaraju 2019-01-07 120 goto exit; c24ff5297 Chandan Uddaraju 2019-01-07 121 c24ff5297 Chandan Uddaraju 2019-01-07 122 req->test_audio_period_ch_7 = ret; c24ff5297 Chandan Uddaraju 2019-01-07 123 DRM_DEBUG_DP("test_audio_period_ch_7 = 0x%x\n", ret); c24ff5297 Chandan Uddaraju 2019-01-07 124 c24ff5297 Chandan Uddaraju 2019-01-07 125 ret = dp_link_get_period(link, DP_TEST_AUDIO_PERIOD_CH8); c24ff5297 Chandan Uddaraju 2019-01-07 126 if (ret == -EINVAL) c24ff5297 Chandan Uddaraju 2019-01-07 127 goto exit; c24ff5297 Chandan Uddaraju 2019-01-07 128 c24ff5297 Chandan Uddaraju 2019-01-07 129 req->test_audio_period_ch_8 = ret; c24ff5297 Chandan Uddaraju 2019-01-07 130 DRM_DEBUG_DP("test_audio_period_ch_8 = 0x%x\n", ret); c24ff5297 Chandan Uddaraju 2019-01-07 131 exit: c24ff5297 Chandan Uddaraju 2019-01-07 132 return ret; c24ff5297 Chandan Uddaraju 2019-01-07 133 } c24ff5297 Chandan Uddaraju 2019-01-07 134 c24ff5297 Chandan Uddaraju 2019-01-07 135 static int dp_link_parse_audio_pattern_type(struct dp_link_private *link) c24ff5297 Chandan Uddaraju 2019-01-07 136 { c24ff5297 Chandan Uddaraju 2019-01-07 137 int ret = 0; c24ff5297 Chandan Uddaraju 2019-01-07 138 u8 data; c24ff5297 Chandan Uddaraju 2019-01-07 139 ssize_t rlen; c24ff5297 Chandan Uddaraju 2019-01-07 140 int const max_audio_pattern_type = 0x1; c24ff5297 Chandan Uddaraju 2019-01-07 141 c24ff5297 Chandan Uddaraju 2019-01-07 142 rlen = drm_dp_dpcd_readb(link->aux->drm_aux, c24ff5297 Chandan Uddaraju 2019-01-07 @143 DP_TEST_AUDIO_PATTERN_TYPE, &data); c24ff5297 Chandan Uddaraju 2019-01-07 144 if (rlen < 0) { c24ff5297 Chandan Uddaraju 2019-01-07 145 DRM_ERROR("failed to read link audio mode. rlen=%zd\n", rlen); c24ff5297 Chandan Uddaraju 2019-01-07 146 return rlen; c24ff5297 Chandan Uddaraju 2019-01-07 147 } c24ff5297 Chandan Uddaraju 2019-01-07 148 c24ff5297 Chandan Uddaraju 2019-01-07 149 /* Audio Pattern Type - Bits 7:0 */ c24ff5297 Chandan Uddaraju 2019-01-07 150 if ((int)data > max_audio_pattern_type) { c24ff5297 Chandan Uddaraju 2019-01-07 151 DRM_ERROR("invalid audio pattern type = 0x%x\n", data); c24ff5297 Chandan Uddaraju 2019-01-07 152 ret = -EINVAL; c24ff5297 Chandan Uddaraju 2019-01-07 153 goto exit; c24ff5297 Chandan Uddaraju 2019-01-07 154 } c24ff5297 Chandan Uddaraju 2019-01-07 155 c24ff5297 Chandan Uddaraju 2019-01-07 156 link->dp_link.test_audio.test_audio_pattern_type = data; c24ff5297 Chandan Uddaraju 2019-01-07 157 DRM_DEBUG_DP("audio pattern type = 0x%x\n", data); c24ff5297 Chandan Uddaraju 2019-01-07 158 exit: c24ff5297 Chandan Uddaraju 2019-01-07 159 return ret; c24ff5297 Chandan Uddaraju 2019-01-07 160 } c24ff5297 Chandan Uddaraju 2019-01-07 161 c24ff5297 Chandan Uddaraju 2019-01-07 162 static int dp_link_parse_audio_mode(struct dp_link_private *link) c24ff5297 Chandan Uddaraju 2019-01-07 163 { c24ff5297 Chandan Uddaraju 2019-01-07 164 int ret = 0; c24ff5297 Chandan Uddaraju 2019-01-07 165 u8 data; c24ff5297 Chandan Uddaraju 2019-01-07 166 ssize_t rlen; c24ff5297 Chandan Uddaraju 2019-01-07 167 int const max_audio_sampling_rate = 0x6; c24ff5297 Chandan Uddaraju 2019-01-07 168 int const max_audio_channel_count = 0x8; c24ff5297 Chandan Uddaraju 2019-01-07 169 int sampling_rate = 0x0; c24ff5297 Chandan Uddaraju 2019-01-07 170 int channel_count = 0x0; c24ff5297 Chandan Uddaraju 2019-01-07 171 c24ff5297 Chandan Uddaraju 2019-01-07 @172 rlen = drm_dp_dpcd_readb(link->aux->drm_aux, DP_TEST_AUDIO_MODE, &data); c24ff5297 Chandan Uddaraju 2019-01-07 173 if (rlen < 0) { c24ff5297 Chandan Uddaraju 2019-01-07 174 DRM_ERROR("failed to read link audio mode. rlen=%zd\n", rlen); c24ff5297 Chandan Uddaraju 2019-01-07 175 return rlen; c24ff5297 Chandan Uddaraju 2019-01-07 176 } c24ff5297 Chandan Uddaraju 2019-01-07 177 c24ff5297 Chandan Uddaraju 2019-01-07 178 /* Sampling Rate - Bits 3:0 */ c24ff5297 Chandan Uddaraju 2019-01-07 179 sampling_rate = data & 0xF; c24ff5297 Chandan Uddaraju 2019-01-07 180 if (sampling_rate > max_audio_sampling_rate) { c24ff5297 Chandan Uddaraju 2019-01-07 181 DRM_ERROR("sampling rate (0x%x) greater than max (0x%x)\n", c24ff5297 Chandan Uddaraju 2019-01-07 182 sampling_rate, max_audio_sampling_rate); c24ff5297 Chandan Uddaraju 2019-01-07 183 ret = -EINVAL; c24ff5297 Chandan Uddaraju 2019-01-07 184 goto exit; c24ff5297 Chandan Uddaraju 2019-01-07 185 } c24ff5297 Chandan Uddaraju 2019-01-07 186 c24ff5297 Chandan Uddaraju 2019-01-07 187 /* Channel Count - Bits 7:4 */ c24ff5297 Chandan Uddaraju 2019-01-07 188 channel_count = ((data & 0xF0) >> 4) + 1; c24ff5297 Chandan Uddaraju 2019-01-07 189 if (channel_count > max_audio_channel_count) { c24ff5297 Chandan Uddaraju 2019-01-07 190 DRM_ERROR("channel_count (0x%x) greater than max (0x%x)\n", c24ff5297 Chandan Uddaraju 2019-01-07 191 channel_count, max_audio_channel_count); c24ff5297 Chandan Uddaraju 2019-01-07 192 ret = -EINVAL; c24ff5297 Chandan Uddaraju 2019-01-07 193 goto exit; c24ff5297 Chandan Uddaraju 2019-01-07 194 } c24ff5297 Chandan Uddaraju 2019-01-07 195 c24ff5297 Chandan Uddaraju 2019-01-07 196 link->dp_link.test_audio.test_audio_sampling_rate = sampling_rate; c24ff5297 Chandan Uddaraju 2019-01-07 197 link->dp_link.test_audio.test_audio_channel_count = channel_count; c24ff5297 Chandan Uddaraju 2019-01-07 198 DRM_DEBUG_DP("sampling_rate = 0x%x, channel_count = 0x%x\n", c24ff5297 Chandan Uddaraju 2019-01-07 199 sampling_rate, channel_count); c24ff5297 Chandan Uddaraju 2019-01-07 200 exit: c24ff5297 Chandan Uddaraju 2019-01-07 201 return ret; c24ff5297 Chandan Uddaraju 2019-01-07 202 } c24ff5297 Chandan Uddaraju 2019-01-07 203 :::::: The code at line 75 was first introduced by commit :::::: c24ff5297c35cef4b4da979f2889b9291fe59523 drm/msm/dp: add displayPort driver support :::::: TO: Chandan Uddaraju :::::: CC: 0day robot --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation