tree: https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-5.10 head: 7dc83c91e402f9fac11db9202100373373dba677 commit: 6acf3685b10d6ae7e7ba943a50fc28f73828b9a8 [24/28] FROMLIST: drm/mediatek: add ovl_adaptor support for MT8195 config: arm64-allyesconfig (https://download.01.org/0day-ci/archive/20211130/202111300656.BzHMQyfG-lkp(a)intel.com/config) compiler: aarch64-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 git remote add chrome-os https://chromium.googlesource.com/chromiumos/third_party/kernel git fetch --no-tags chrome-os chromeos-5.10 git checkout 6acf3685b10d6ae7e7ba943a50fc28f73828b9a8 # 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=arm64 SHELL=/bin/bash drivers/gpu/drm/mediatek/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): In file included from include/linux/printk.h:409, from include/linux/kernel.h:16, from include/linux/list.h:9, from include/drm/drm_bridge.h:27, from include/drm/drm_of.h:7, from drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c:7: drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c: In function 'mtk_ovl_adaptor_layer_config': >> drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c:102:22: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'dma_addr_t' {aka 'long long unsigned int'} [-Wformat=] 102 | dev_dbg(dev, "addr 0x%lx, fb w:%d, {%d,%d,%d,%d}\n", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dynamic_debug.h:129:29: note: in definition of macro '__dynamic_func_call' 129 | func(&id, ##__VA_ARGS__); \ | ^~~~~~~~~~~ include/linux/dynamic_debug.h:161:9: note: in expansion of macro '_dynamic_func_call' 161 | _dynamic_func_call(fmt,__dynamic_dev_dbg, \ | ^~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:123:9: note: in expansion of macro 'dynamic_dev_dbg' 123 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~~~~~~~~~ include/linux/dev_printk.h:123:30: note: in expansion of macro 'dev_fmt' 123 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c:102:9: note: in expansion of macro 'dev_dbg' 102 | dev_dbg(dev, "addr 0x%lx, fb w:%d, {%d,%d,%d,%d}\n", | ^~~~~~~ drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c:102:32: note: format string is defined here 102 | dev_dbg(dev, "addr 0x%lx, fb w:%d, {%d,%d,%d,%d}\n", | ~~^ | | | long unsigned int | %llx vim +102 drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c 82 83 void mtk_ovl_adaptor_layer_config(struct device *dev, unsigned int idx, 84 struct mtk_plane_state *state, 85 struct cmdq_pkt *cmdq_pkt) 86 { 87 struct mtk_disp_ovl_adaptor *ovl_adaptor = dev_get_drvdata(dev); 88 struct mtk_plane_pending_state *pending = &state->pending; 89 struct mtk_mdp_rdma_cfg rdma_config = {0}; 90 struct device *rdma_l; 91 struct device *rdma_r; 92 struct device *merge; 93 struct device *ethdr; 94 const struct drm_format_info *fmt_info = drm_format_info(pending->format); 95 bool use_dual_pipe = false; 96 unsigned int align_width; 97 unsigned int l_w = 0; 98 unsigned int r_w = 0; 99 100 dev_dbg(dev, "%s+ idx:%d, enable:%d, fmt:0x%x\n", __func__, idx, 101 pending->enable, pending->format); > 102 dev_dbg(dev, "addr 0x%lx, fb w:%d, {%d,%d,%d,%d}\n", 103 pending->addr, (pending->pitch / fmt_info->cpp[0]), 104 pending->x, pending->y, pending->width, pending->height); 105 106 rdma_l = ovl_adaptor->ovl_adaptor_comp[OVL_ADAPTOR_MDP_RDMA0 + 2 * idx]; 107 rdma_r = ovl_adaptor->ovl_adaptor_comp[OVL_ADAPTOR_MDP_RDMA0 + 2 * idx + 1]; 108 merge = ovl_adaptor->ovl_adaptor_comp[OVL_ADAPTOR_MERGE0 + idx]; 109 ethdr = ovl_adaptor->ovl_adaptor_comp[OVL_ADAPTOR_ETHDR0]; 110 111 if (!pending->enable) { 112 mtk_merge_stop_cmdq(merge, cmdq_pkt); 113 mtk_mdp_rdma_stop(rdma_l, cmdq_pkt); 114 mtk_mdp_rdma_stop(rdma_r, cmdq_pkt); 115 mtk_ethdr_layer_config(ethdr, idx, state, cmdq_pkt); 116 return; 117 } 118 119 /* ETHDR is in 1T2P domain, width needs to be 2 pixels align */ 120 align_width = ALIGN_DOWN(pending->width, 2); 121 122 if (align_width > MTK_OVL_ADAPTOR_RDMA_MAX_WIDTH) 123 use_dual_pipe = true; 124 125 if (use_dual_pipe) { 126 l_w = (align_width / 2) + ((pending->width / 2) % 2); 127 r_w = align_width - l_w; 128 } else { 129 l_w = align_width; 130 } 131 mtk_merge_advance_config(merge, l_w, r_w, pending->height, 0, 0, cmdq_pkt); 132 mtk_mmsys_ddp_config(ovl_adaptor->mmsys_dev, MMSYS_CONFIG_MERGE_ASYNC_WIDTH, 133 idx, align_width / 2, cmdq_pkt); 134 mtk_mmsys_ddp_config(ovl_adaptor->mmsys_dev, MMSYS_CONFIG_MERGE_ASYNC_HEIGHT, 135 idx, pending->height, cmdq_pkt); 136 137 rdma_config.width = l_w; 138 rdma_config.height = pending->height; 139 rdma_config.addr0 = pending->addr; 140 rdma_config.pitch = pending->pitch; 141 rdma_config.fmt = pending->format; 142 rdma_config.color_encoding = pending->color_encoding; 143 mtk_mdp_rdma_config(rdma_l, &rdma_config, cmdq_pkt); 144 145 if (use_dual_pipe) { 146 rdma_config.x_left = l_w; 147 rdma_config.width = r_w; 148 mtk_mdp_rdma_config(rdma_r, &rdma_config, cmdq_pkt); 149 } 150 151 mtk_merge_start_cmdq(merge, cmdq_pkt); 152 153 mtk_mdp_rdma_start(rdma_l, cmdq_pkt); 154 if (use_dual_pipe) 155 mtk_mdp_rdma_start(rdma_r, cmdq_pkt); 156 else 157 mtk_mdp_rdma_stop(rdma_r, cmdq_pkt); 158 159 mtk_ethdr_layer_config(ethdr, idx, state, cmdq_pkt); 160 } 161 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org