Re: [PATCHv<8> 3/3] ARM:drm ivip Intel FPGA Video and Image Processing Suite

From: kbuild test robot
Date: Tue Jan 16 2018 - 22:52:26 EST


Hi Ong,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm/drm-next]
[also build test ERROR on v4.15-rc8 next-20180116]
[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/Hean-Loong-Ong/Intel-FPGA-Video-and-Image-Processing-Suite/20180117-103626
base: git://people.freedesktop.org/~airlied/linux.git drm-next
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 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
make.cross ARCH=ia64

All error/warnings (new ones prefixed by >>):

In file included from include/linux/cdev.h:8:0,
from include/drm/drmP.h:36,
from drivers/gpu/drm/ivip/intel_vip_core.c:24:
drivers/gpu/drm/ivip/intel_vip_core.c: In function 'intelvipfb_enable':
>> drivers/gpu/drm/ivip/intel_vip_core.c:57:33: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'dma_addr_t {aka long long unsigned int}' [-Wformat=]
dev_info(pipe->plane.dev->dev, "Address 0x%x\n", addr);
^
include/linux/device.h:1355:51: note: in definition of macro 'dev_info'
#define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
^~~
drivers/gpu/drm/ivip/intel_vip_core.c: At top level:
>> drivers/gpu/drm/ivip/intel_vip_core.c:76:15: error: 'drm_fb_cma_create' undeclared here (not in a function); did you mean 'drm_gem_cma_create'?
.fb_create = drm_fb_cma_create,
^~~~~~~~~~~~~~~~~
drm_gem_cma_create
drivers/gpu/drm/ivip/intel_vip_core.c: In function 'intelvipfb_pipe_prepare_fb':
>> drivers/gpu/drm/ivip/intel_vip_core.c:90:9: error: implicit declaration of function 'drm_fb_cma_prepare_fb'; did you mean 'drm_fb_cma_get_gem_obj'? [-Werror=implicit-function-declaration]
return drm_fb_cma_prepare_fb(&pipe->plane, plane_state);
^~~~~~~~~~~~~~~~~~~~~
drm_fb_cma_get_gem_obj
cc1: some warnings being treated as errors

vim +76 drivers/gpu/drm/ivip/intel_vip_core.c

> 24 #include <drm/drmP.h>
25 #include <drm/drm_atomic.h>
26 #include <drm/drm_atomic_helper.h>
27 #include <drm/drm_crtc_helper.h>
28 #include <drm/drm_fb_helper.h>
29 #include <drm/drm_fb_cma_helper.h>
30 #include <drm/drm_gem_cma_helper.h>
31 #include <drm/drm_plane_helper.h>
32 #include <drm/drm_simple_kms_helper.h>
33
34 #include <linux/init.h>
35 #include <linux/kernel.h>
36 #include <linux/module.h>
37
38 #include "intel_vip_drv.h"
39
40 static void intelvipfb_enable(struct drm_simple_display_pipe *pipe,
41 struct drm_crtc_state *crtc_state)
42 {
43 /*
44 * The frameinfo variable has to correspond to the size of the VIP Suite
45 * Frame Reader register 7 which will determine the maximum size used
46 * in this frameinfo
47 */
48
49 u32 frameinfo;
50 struct intelvipfb_priv *priv = pipe->plane.dev->dev_private;
51 void __iomem *base = priv->base;
52 struct drm_plane_state *state = pipe->plane.state;
53 dma_addr_t addr;
54
55 addr = drm_fb_cma_get_gem_addr(state->fb, state, 0);
56
> 57 dev_info(pipe->plane.dev->dev, "Address 0x%x\n", addr);
58
59 frameinfo =
60 readl(base + INTELVIPFB_FRAME_READER) & 0x00ffffff;
61 writel(frameinfo, base + INTELVIPFB_FRAME_INFO);
62 writel(addr, base + INTELVIPFB_FRAME_START);
63 /* Finally set the control register to 1 to start streaming */
64 writel(1, base + INTELVIPFB_CONTROL);
65 }
66
67 static void intelvipfb_disable(struct drm_simple_display_pipe *pipe)
68 {
69 struct intelvipfb_priv *priv = pipe->plane.dev->dev_private;
70 void __iomem *base = priv->base;
71 /* set the control register to 0 to stop streaming */
72 writel(0, base + INTELVIPFB_CONTROL);
73 }
74
75 static const struct drm_mode_config_funcs intelvipfb_mode_config_funcs = {
> 76 .fb_create = drm_fb_cma_create,
77 .atomic_check = drm_atomic_helper_check,
78 .atomic_commit = drm_atomic_helper_commit,
79 };
80
81 static void intelvipfb_setup_mode_config(struct drm_device *drm)
82 {
83 drm_mode_config_init(drm);
84 drm->mode_config.funcs = &intelvipfb_mode_config_funcs;
85 }
86
87 static int intelvipfb_pipe_prepare_fb(struct drm_simple_display_pipe *pipe,
88 struct drm_plane_state *plane_state)
89 {
> 90 return drm_fb_cma_prepare_fb(&pipe->plane, plane_state);
91 }
92

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip