Re: [v3 5/5] drm/msm/disp/dpu1: add PSR support for eDP interface in dpu driver
From: kernel test robot
Date: Wed Jun 22 2022 - 17:22:19 EST
Hi Vinod,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on drm/drm-next]
[also build test WARNING on drm-exynos/exynos-drm-next drm-tip/drm-tip tegra-drm/drm/tegra/for-next linus/master v5.19-rc3 next-20220622]
[cannot apply to drm-intel/for-linux-next airlied/drm-next]
[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/intel-lab-lkp/linux/commits/Vinod-Polimera/drm-msm-dp-Add-basic-PSR-support-for-eDP/20220621-195406
base: git://anongit.freedesktop.org/drm/drm drm-next
config: arm64-randconfig-r025-20220622 (https://download.01.org/0day-ci/archive/20220623/202206230551.H0oXeV2E-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 8b8d126598ce7bd5243da7f94f69fa1104288bee)
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
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# https://github.com/intel-lab-lkp/linux/commit/2c3c31343481a4faf2402cf513c85fb7d75ce205
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Vinod-Polimera/drm-msm-dp-Add-basic-PSR-support-for-eDP/20220621-195406
git checkout 2c3c31343481a4faf2402cf513c85fb7d75ce205
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All warnings (new ones prefixed by >>):
>> drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c:1064:3: warning: add explicit braces to avoid dangling else [-Wdangling-else]
drm_for_each_encoder_mask(encoder, crtc->dev, crtc->state->encoder_mask)
^
include/drm/drm_encoder.h:314:3: note: expanded from macro 'drm_for_each_encoder_mask'
for_each_if ((encoder_mask) & drm_encoder_mask(encoder))
^
include/drm/drm_util.h:63:53: note: expanded from macro 'for_each_if'
#define for_each_if(condition) if (!(condition)) {} else
^
1 warning generated.
vim +1064 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 1032
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 1033 static void dpu_crtc_enable(struct drm_crtc *crtc,
351f950db4ab28 Maxime Ripard 2020-10-08 1034 struct drm_atomic_state *state)
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 1035 {
e12e5263bf1d8d Rob Clark 2020-09-07 1036 struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 1037 struct drm_encoder *encoder;
35c719da95c0d2 Rob Clark 2020-08-11 1038 bool request_bandwidth = false;
2c3c31343481a4 Vinod Polimera 2022-06-21 1039 struct drm_crtc_state *old_crtc_state;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 1040
2c3c31343481a4 Vinod Polimera 2022-06-21 1041 old_crtc_state = drm_atomic_get_old_crtc_state(state, crtc);
b77d0f0d4ee757 Sean Paul 2018-11-16 1042 pm_runtime_get_sync(crtc->dev->dev);
b77d0f0d4ee757 Sean Paul 2018-11-16 1043
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 1044 DRM_DEBUG_KMS("crtc%d\n", crtc->base.id);
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 1045
241b507c166fef Rob Clark 2019-08-20 1046 drm_for_each_encoder_mask(encoder, crtc->dev, crtc->state->encoder_mask) {
241b507c166fef Rob Clark 2019-08-20 1047 /* in video mode, we hold an extra bandwidth reference
241b507c166fef Rob Clark 2019-08-20 1048 * as we cannot drop bandwidth at frame-done if any
241b507c166fef Rob Clark 2019-08-20 1049 * crtc is being used in video mode.
241b507c166fef Rob Clark 2019-08-20 1050 */
241b507c166fef Rob Clark 2019-08-20 1051 if (dpu_encoder_get_intf_mode(encoder) == INTF_MODE_VIDEO)
241b507c166fef Rob Clark 2019-08-20 1052 request_bandwidth = true;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 1053 dpu_encoder_register_frame_event_callback(encoder,
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 1054 dpu_crtc_frame_event_cb, (void *)crtc);
241b507c166fef Rob Clark 2019-08-20 1055 }
241b507c166fef Rob Clark 2019-08-20 1056
241b507c166fef Rob Clark 2019-08-20 1057 if (request_bandwidth)
241b507c166fef Rob Clark 2019-08-20 1058 atomic_inc(&_dpu_crtc_get_kms(crtc)->bandwidth_ref);
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 1059
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 1060 trace_dpu_crtc_enable(DRMID(crtc), true, dpu_crtc);
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 1061 dpu_crtc->enabled = true;
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 1062
2c3c31343481a4 Vinod Polimera 2022-06-21 1063 if (!old_crtc_state->self_refresh_active)
a796ba2cb3dde3 Sean Paul 2018-11-16 @1064 drm_for_each_encoder_mask(encoder, crtc->dev, crtc->state->encoder_mask)
a796ba2cb3dde3 Sean Paul 2018-11-16 1065 dpu_encoder_assign_crtc(encoder, crtc);
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 1066
2f2eb723b50b4d Rajesh Yadav 2018-07-13 1067 /* Enable/restore vblank irq handling */
2f2eb723b50b4d Rajesh Yadav 2018-07-13 1068 drm_crtc_vblank_on(crtc);
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 1069 }
25fdd5933e4c0f Jeykumar Sankaran 2018-06-27 1070
--
0-DAY CI Kernel Test Service
https://01.org/lkp