Hi Abhinav, I love your patch! Yet something to improve: [auto build test ERROR on drm/drm-next] [also build test ERROR on drm-intel/for-linux-next drm-tip/drm-tip drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next v5.17-rc2 next-20220204] [cannot apply to 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/0day-ci/linux/commits/Abhinav-Kumar/Add-writeback-block-support-for-DPU/20220205-052314 base: git://anongit.freedesktop.org/drm/drm drm-next config: alpha-allmodconfig (https://download.01.org/0day-ci/archive/20220205/202202051024.YsBmVFJj-lkp(a)intel.com/config) compiler: alpha-linux-gcc (GCC) 11.2.0 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 # https://github.com/0day-ci/linux/commit/f8d22ab34d37c8a6e089b8efe49bbc0c20232230 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Abhinav-Kumar/Add-writeback-block-support-for-DPU/20220205-052314 git checkout f8d22ab34d37c8a6e089b8efe49bbc0c20232230 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=alpha SHELL=/bin/bash drivers/gpu/drm/msm/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c: In function 'dpu_wb_conn_prepare_job': >> drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c:30:45: error: incompatible type for argument 1 of 'dpu_encoder_prepare_wb_job' 30 | dpu_encoder_prepare_wb_job(connector->encoder, job); | ~~~~~~~~~^~~~~~~~~ | | | struct drm_encoder In file included from drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h:19, from drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h:16, from drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c:6: drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h:179:53: note: expected 'struct drm_encoder *' but argument is of type 'struct drm_encoder' 179 | void dpu_encoder_prepare_wb_job(struct drm_encoder *drm_enc, | ~~~~~~~~~~~~~~~~~~~~^~~~~~~ drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c: In function 'dpu_wb_conn_cleanup_job': >> drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c:41:45: error: incompatible type for argument 1 of 'dpu_encoder_cleanup_wb_job' 41 | dpu_encoder_cleanup_wb_job(connector->encoder, job); | ~~~~~~~~~^~~~~~~~~ | | | struct drm_encoder In file included from drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h:19, from drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h:16, from drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c:6: drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h:187:53: note: expected 'struct drm_encoder *' but argument is of type 'struct drm_encoder' 187 | void dpu_encoder_cleanup_wb_job(struct drm_encoder *drm_enc, | ~~~~~~~~~~~~~~~~~~~~^~~~~~~ drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c: In function 'dpu_writeback_init': >> drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c:59:34: error: incompatible types when assigning to type 'struct drm_connector' from type 'struct drm_connector *' 59 | dpu_wb_conn->base.base = &dpu_wb_conn->connector; | ^ >> drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c:60:37: error: incompatible types when assigning to type 'struct drm_encoder' from type 'struct drm_encoder *' 60 | dpu_wb_conn->base.encoder = enc; | ^~~ >> drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c:62:51: error: incompatible type for argument 1 of 'drm_connector_helper_add' 62 | drm_connector_helper_add(dpu_wb_conn->base.base, &dpu_wb_conn_helper_funcs); | ~~~~~~~~~~~~~~~~~^~~~~ | | | struct drm_connector In file included from include/drm/drm_atomic_helper.h:32, from drivers/gpu/drm/msm/msm_drv.h:29, from drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h:14, from drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c:6: include/drm/drm_modeset_helper_vtables.h:1153:67: note: expected 'struct drm_connector *' but argument is of type 'struct drm_connector' 1153 | static inline void drm_connector_helper_add(struct drm_connector *connector, | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c:68:52: error: incompatible types when assigning to type 'struct drm_connector *' from type 'struct drm_connector' 68 | priv->connectors[priv->num_connectors++] = dpu_wb_conn->base.base; | ^~~~~~~~~~~ vim +/dpu_encoder_prepare_wb_job +30 drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c 23 24 static int dpu_wb_conn_prepare_job(struct drm_writeback_connector *connector, 25 struct drm_writeback_job *job) 26 { 27 if (!job->fb) 28 return 0; 29 > 30 dpu_encoder_prepare_wb_job(connector->encoder, job); 31 32 return 0; 33 } 34 35 static void dpu_wb_conn_cleanup_job(struct drm_writeback_connector *connector, 36 struct drm_writeback_job *job) 37 { 38 if (!job->fb) 39 return; 40 > 41 dpu_encoder_cleanup_wb_job(connector->encoder, job); 42 } 43 44 static const struct drm_connector_helper_funcs dpu_wb_conn_helper_funcs = { 45 .get_modes = dpu_wb_conn_get_modes, 46 .prepare_writeback_job = dpu_wb_conn_prepare_job, 47 .cleanup_writeback_job = dpu_wb_conn_cleanup_job, 48 }; 49 50 int dpu_writeback_init(struct drm_device *dev, struct drm_encoder *enc, 51 const struct drm_encoder_helper_funcs *enc_helper_funcs, const u32 *format_list, 52 u32 num_formats) 53 { 54 struct msm_drm_private *priv = dev->dev_private; 55 struct dpu_wb_connector *dpu_wb_conn; 56 int rc = 0; 57 58 dpu_wb_conn = devm_kzalloc(dev->dev, sizeof(*dpu_wb_conn), GFP_KERNEL); > 59 dpu_wb_conn->base.base = &dpu_wb_conn->connector; > 60 dpu_wb_conn->base.encoder = enc; 61 > 62 drm_connector_helper_add(dpu_wb_conn->base.base, &dpu_wb_conn_helper_funcs); --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org