Hi Jean-Jacques, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [cannot apply to v5.4-rc2 next-20191010] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Jean-Jacques-Hiblot/drm-omap-OMAP_BO-flags/20191011-134859 config: arm-allmodconfig (attached as .config) compiler: arm-linux-gnueabi-gcc (GCC) 7.4.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.4.0 make.cross ARCH=arm If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): drivers/gpu/drm/omapdrm/omap_gem.c: In function 'omap_gem_new': >> drivers/gpu/drm/omapdrm/omap_gem.c:1310:3: error: implicit declaration of function 'dma_free_writecombine'; did you mean 'pgprot_writecombine'? [-Werror=implicit-function-declaration] dma_free_writecombine(dev->dev, size, ^~~~~~~~~~~~~~~~~~~~~ pgprot_writecombine cc1: some warnings being treated as errors vim +1310 drivers/gpu/drm/omapdrm/omap_gem.c 1179 1180 /** 1181 * omap_gem_new() - Create a new GEM buffer 1182 * @dev: The DRM device 1183 * @gsize: The requested size for the GEM buffer. If the buffer is tiled 1184 * (2D buffer), the size is a pair of values: height and width 1185 * expressed in pixels. If the buffers is not tiled, it is expressed 1186 * in bytes. 1187 * @flags: Flags give additionnal information about the allocation: 1188 * OMAP_BO_TILED_x: use the TILER (2D buffers). The TILER container 1189 * unit can be 8, 16 or 32 bits. Cache is always disabled for 1190 * tiled buffers. 1191 * OMAP_BO_SCANOUT: Scannout buffer, consummable by the DSS 1192 * OMAP_BO_CACHED: Buffer CPU caching mode: cached 1193 * OMAP_BO_WC: Buffer CPU caching mode: write-combined 1194 * OMAP_BO_UNCACHED: Buffer CPU caching mode: uncached 1195 * OMAP_BO_MEM_CONTIG: The driver will use dma_alloc to get the memory. 1196 * This can be used to avoid DMM if the userspace knows it needs 1197 * more than 128M of memory at the same time. 1198 * OMAP_BO_MEM_DMM: The driver will use DMM to get the memory. There's 1199 * not much use for this flag at the moment, as on platforms with 1200 * DMM it is used by default, but it's here for completeness. 1201 * OMAP_BO_MEM_PIN: The driver will pin the memory at alloc time, and 1202 * keep it pinned. This can be used to 1) get an error at alloc 1203 * time if DMM space is full, and 2) get rid of the constant 1204 * pin/unpin operations which may have some effect on performance. 1205 * 1206 * Return: The GEM buffer or NULL if the allocation failed 1207 */ 1208 struct drm_gem_object *omap_gem_new(struct drm_device *dev, 1209 union omap_gem_size gsize, u32 flags) 1210 { 1211 struct omap_drm_private *priv = dev->dev_private; 1212 struct omap_gem_object *omap_obj; 1213 struct drm_gem_object *obj; 1214 struct address_space *mapping; 1215 size_t size; 1216 int ret; 1217 1218 if (!omap_gem_validate_flags(dev, flags)) 1219 return NULL; 1220 1221 /* Validate the flags and compute the memory and cache flags. */ 1222 if (flags & OMAP_BO_TILED_MASK) { 1223 /* 1224 * Tiled buffers are always shmem paged backed. When they are 1225 * scanned out, they are remapped into DMM/TILER. 1226 */ 1227 flags |= OMAP_BO_MEM_SHMEM; 1228 1229 /* 1230 * Currently don't allow cached buffers. There is some caching 1231 * stuff that needs to be handled better. 1232 */ 1233 flags &= ~(OMAP_BO_CACHED|OMAP_BO_WC|OMAP_BO_UNCACHED); 1234 flags |= tiler_get_cpu_cache_flags(); 1235 } else if ((flags & OMAP_BO_MEM_CONTIG) || 1236 ((flags & OMAP_BO_SCANOUT) && !priv->has_dmm)) { 1237 /* 1238 * If we don't have DMM, we must allocate scanout buffers 1239 * from contiguous DMA memory. 1240 */ 1241 flags |= OMAP_BO_MEM_DMA_API; 1242 } else if (!(flags & OMAP_BO_MEM_DMABUF)) { 1243 /* 1244 * All other buffers not backed by dma_buf are shmem-backed. 1245 */ 1246 flags |= OMAP_BO_MEM_SHMEM; 1247 } 1248 1249 /* Allocate the initialize the OMAP GEM object. */ 1250 omap_obj = kzalloc(sizeof(*omap_obj), GFP_KERNEL); 1251 if (!omap_obj) 1252 return NULL; 1253 1254 obj = &omap_obj->base; 1255 omap_obj->flags = flags; 1256 mutex_init(&omap_obj->lock); 1257 1258 if (flags & OMAP_BO_TILED_MASK) { 1259 /* 1260 * For tiled buffers align dimensions to slot boundaries and 1261 * calculate size based on aligned dimensions. 1262 */ 1263 tiler_align(gem2fmt(flags), &gsize.tiled.width, 1264 &gsize.tiled.height); 1265 1266 size = tiler_size(gem2fmt(flags), gsize.tiled.width, 1267 gsize.tiled.height); 1268 1269 omap_obj->width = gsize.tiled.width; 1270 omap_obj->height = gsize.tiled.height; 1271 } else { 1272 size = PAGE_ALIGN(gsize.bytes); 1273 } 1274 1275 /* Initialize the GEM object. */ 1276 if (!(flags & OMAP_BO_MEM_SHMEM)) { 1277 drm_gem_private_object_init(dev, obj, size); 1278 } else { 1279 ret = drm_gem_object_init(dev, obj, size); 1280 if (ret) 1281 goto err_free; 1282 1283 mapping = obj->filp->f_mapping; 1284 mapping_set_gfp_mask(mapping, GFP_USER | __GFP_DMA32); 1285 } 1286 1287 /* Allocate memory if needed. */ 1288 if (flags & OMAP_BO_MEM_DMA_API) { 1289 omap_obj->vaddr = dma_alloc_wc(dev->dev, size, 1290 &omap_obj->dma_addr, 1291 GFP_KERNEL); 1292 if (!omap_obj->vaddr) 1293 goto err_release; 1294 } 1295 1296 if (flags & OMAP_BO_MEM_PIN) { 1297 ret = omap_gem_pin(obj, NULL); 1298 if (ret) 1299 goto err_free_dma; 1300 } 1301 1302 mutex_lock(&priv->list_lock); 1303 list_add(&omap_obj->mm_list, &priv->obj_list); 1304 mutex_unlock(&priv->list_lock); 1305 1306 return obj; 1307 1308 err_free_dma: 1309 if (flags & OMAP_BO_MEM_DMA_API) > 1310 dma_free_writecombine(dev->dev, size, 1311 omap_obj->vaddr, omap_obj->dma_addr); 1312 err_release: 1313 drm_gem_object_release(obj); 1314 err_free: 1315 kfree(omap_obj); 1316 return NULL; 1317 } 1318 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel