[xlnx:master 117/322] drivers/gpu/drm/xylon/xylon_crtc.c:224:3: error: implicit declaration of function 'drm_vblank_put'
kbuild test robot
fengguang.wu at intel.com
Wed Feb 15 12:14:28 PST 2017
Hi Michal,
FYI, the error/warning still remains.
tree: https://github.com/Xilinx/linux-xlnx master
head: 3b135b44d6c189c52994efe4ca1502cca8382633
commit: 15add85f47f37fde03343fb06bb7240dc61155e6 [117/322] Merge tag 'v4.8' into master
config: x86_64-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
git checkout 15add85f47f37fde03343fb06bb7240dc61155e6
# save the attached .config to linux build tree
make ARCH=x86_64
All errors (new ones prefixed by >>):
drivers/gpu/drm/xylon/xylon_crtc.c: In function 'xylon_drm_crtc_cancel_page_flip':
>> drivers/gpu/drm/xylon/xylon_crtc.c:223:14: error: 'struct drm_pending_event' has no member named 'destroy'
event->base.destroy(&event->base);
^
>> drivers/gpu/drm/xylon/xylon_crtc.c:224:3: error: implicit declaration of function 'drm_vblank_put' [-Werror=implicit-function-declaration]
drm_vblank_put(dev, 0);
^~~~~~~~~~~~~~
drivers/gpu/drm/xylon/xylon_crtc.c: In function 'xylon_drm_crtc_vblank_handler':
>> drivers/gpu/drm/xylon/xylon_crtc.c:339:3: error: implicit declaration of function 'drm_send_vblank_event' [-Werror=implicit-function-declaration]
drm_send_vblank_event(dev, 0, event);
^~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/drm_vblank_put +224 drivers/gpu/drm/xylon/xylon_crtc.c
e8c87b41 Davor Joja 2014-03-24 217 unsigned long flags;
e8c87b41 Davor Joja 2014-03-24 218
e8c87b41 Davor Joja 2014-03-24 219 spin_lock_irqsave(&dev->event_lock, flags);
e8c87b41 Davor Joja 2014-03-24 220 event = crtc->event;
e8c87b41 Davor Joja 2014-03-24 221 if (event && (event->base.file_priv == file)) {
e8c87b41 Davor Joja 2014-03-24 222 crtc->event = NULL;
e8c87b41 Davor Joja 2014-03-24 @223 event->base.destroy(&event->base);
e8c87b41 Davor Joja 2014-03-24 @224 drm_vblank_put(dev, 0);
e8c87b41 Davor Joja 2014-03-24 225 }
e8c87b41 Davor Joja 2014-03-24 226 spin_unlock_irqrestore(&dev->event_lock, flags);
e8c87b41 Davor Joja 2014-03-24 227 }
e8c87b41 Davor Joja 2014-03-24 228
e8c87b41 Davor Joja 2014-03-24 229 static int xylon_drm_crtc_page_flip(struct drm_crtc *base_crtc,
e8c87b41 Davor Joja 2014-03-24 230 struct drm_framebuffer *fb,
e8c87b41 Davor Joja 2014-03-24 231 struct drm_pending_vblank_event *event,
e8c87b41 Davor Joja 2014-03-24 232 u32 page_flip_flags)
e8c87b41 Davor Joja 2014-03-24 233 {
e8c87b41 Davor Joja 2014-03-24 234 struct drm_device *dev = base_crtc->dev;
e8c87b41 Davor Joja 2014-03-24 235 struct xylon_drm_crtc *crtc = to_xylon_crtc(base_crtc);
e8c87b41 Davor Joja 2014-03-24 236 unsigned long flags;
e8c87b41 Davor Joja 2014-03-24 237 int ret;
e8c87b41 Davor Joja 2014-03-24 238
e8c87b41 Davor Joja 2014-03-24 239 spin_lock_irqsave(&dev->event_lock, flags);
e8c87b41 Davor Joja 2014-03-24 240 if (crtc->event != NULL) {
e8c87b41 Davor Joja 2014-03-24 241 spin_unlock_irqrestore(&dev->event_lock, flags);
e8c87b41 Davor Joja 2014-03-24 242 return -EBUSY;
e8c87b41 Davor Joja 2014-03-24 243 }
e8c87b41 Davor Joja 2014-03-24 244 spin_unlock_irqrestore(&dev->event_lock, flags);
e8c87b41 Davor Joja 2014-03-24 245
0c49ff42 Davor Joja 2014-11-18 246 ret = xylon_drm_plane_fb_set(base_crtc->primary, fb,
e8c87b41 Davor Joja 2014-03-24 247 0, 0,
e8c87b41 Davor Joja 2014-03-24 248 base_crtc->hwmode.hdisplay,
e8c87b41 Davor Joja 2014-03-24 249 base_crtc->hwmode.vdisplay,
e8c87b41 Davor Joja 2014-03-24 250 base_crtc->x, base_crtc->y,
e8c87b41 Davor Joja 2014-03-24 251 base_crtc->hwmode.hdisplay,
e8c87b41 Davor Joja 2014-03-24 252 base_crtc->hwmode.vdisplay);
e8c87b41 Davor Joja 2014-03-24 253 if (ret) {
e8c87b41 Davor Joja 2014-03-24 254 DRM_ERROR("failed mode set plane\n");
e8c87b41 Davor Joja 2014-03-24 255 return ret;
e8c87b41 Davor Joja 2014-03-24 256 }
e8c87b41 Davor Joja 2014-03-24 257
0c49ff42 Davor Joja 2014-11-18 258 xylon_drm_plane_commit(base_crtc->primary);
e8c87b41 Davor Joja 2014-03-24 259
b2f5a183 Davor Joja 2014-09-15 260 base_crtc->primary->fb = fb;
e8c87b41 Davor Joja 2014-03-24 261
e8c87b41 Davor Joja 2014-03-24 262 if (event) {
e8c87b41 Davor Joja 2014-03-24 263 event->pipe = 0;
15add85f Michal Simek 2017-01-24 264 drm_crtc_vblank_get(0);
e8c87b41 Davor Joja 2014-03-24 265 spin_lock_irqsave(&dev->event_lock, flags);
e8c87b41 Davor Joja 2014-03-24 266 crtc->event = event;
e8c87b41 Davor Joja 2014-03-24 267 spin_unlock_irqrestore(&dev->event_lock, flags);
e8c87b41 Davor Joja 2014-03-24 268 }
e8c87b41 Davor Joja 2014-03-24 269
e8c87b41 Davor Joja 2014-03-24 270 return 0;
e8c87b41 Davor Joja 2014-03-24 271 }
e8c87b41 Davor Joja 2014-03-24 272
e8c87b41 Davor Joja 2014-03-24 273 static int xylon_drm_crtc_set_property(struct drm_crtc *base_crtc,
e8c87b41 Davor Joja 2014-03-24 274 struct drm_property *property,
e99d4bb3 Davor Joja 2014-06-23 275 u64 value)
e8c87b41 Davor Joja 2014-03-24 276 {
e8c87b41 Davor Joja 2014-03-24 277 struct xylon_drm_crtc *crtc = to_xylon_crtc(base_crtc);
e99d4bb3 Davor Joja 2014-06-23 278 struct xylon_drm_crtc_properties *props = &crtc->properties;
e8c87b41 Davor Joja 2014-03-24 279 struct xylon_drm_plane_op op;
e99d4bb3 Davor Joja 2014-06-23 280 u32 val = (u32)value;
cb225630 Davor Joja 2014-07-11 281 s64 x = -1;
cb225630 Davor Joja 2014-07-11 282 s64 y = -1;
e99d4bb3 Davor Joja 2014-06-23 283
e99d4bb3 Davor Joja 2014-06-23 284 if (property == props->bg_color) {
e99d4bb3 Davor Joja 2014-06-23 285 op.id = XYLON_DRM_PLANE_OP_ID_BACKGROUND_COLOR;
e99d4bb3 Davor Joja 2014-06-23 286 op.param = val;
e99d4bb3 Davor Joja 2014-06-23 287 } else if (property == props->layer_update) {
e99d4bb3 Davor Joja 2014-06-23 288 xylon_cvc_ctrl(crtc->cvc, LOGICVC_LAYER_UPDATE,
e99d4bb3 Davor Joja 2014-06-23 289 (bool)val);
e99d4bb3 Davor Joja 2014-06-23 290 } else if (property == props->pixel_data_polarity) {
e99d4bb3 Davor Joja 2014-06-23 291 xylon_cvc_ctrl(crtc->cvc, LOGICVC_PIXEL_DATA_INVERT,
e99d4bb3 Davor Joja 2014-06-23 292 (bool)val);
e99d4bb3 Davor Joja 2014-06-23 293 } else if (property == props->pixel_data_trigger) {
e99d4bb3 Davor Joja 2014-06-23 294 xylon_cvc_ctrl(crtc->cvc, LOGICVC_PIXEL_DATA_TRIGGER_INVERT,
e99d4bb3 Davor Joja 2014-06-23 295 (bool)val);
e8c87b41 Davor Joja 2014-03-24 296 } else {
e8c87b41 Davor Joja 2014-03-24 297 return -EINVAL;
e8c87b41 Davor Joja 2014-03-24 298 }
e8c87b41 Davor Joja 2014-03-24 299
cb225630 Davor Joja 2014-07-11 300 if (x > -1 && y > -1) {
0c49ff42 Davor Joja 2014-11-18 301 if (xylon_drm_plane_fb_set(base_crtc->primary,
b2f5a183 Davor Joja 2014-09-15 302 base_crtc->primary->fb,
cb225630 Davor Joja 2014-07-11 303 (u32)x, (u32)y,
cb225630 Davor Joja 2014-07-11 304 base_crtc->hwmode.hdisplay - x,
cb225630 Davor Joja 2014-07-11 305 base_crtc->hwmode.vdisplay - y,
cb225630 Davor Joja 2014-07-11 306 base_crtc->x, base_crtc->y,
cb225630 Davor Joja 2014-07-11 307 base_crtc->hwmode.hdisplay - x,
cb225630 Davor Joja 2014-07-11 308 base_crtc->hwmode.vdisplay - y))
cb225630 Davor Joja 2014-07-11 309 DRM_ERROR("failed set position\n");
cb225630 Davor Joja 2014-07-11 310 else
0c49ff42 Davor Joja 2014-11-18 311 xylon_drm_plane_commit(base_crtc->primary);
cb225630 Davor Joja 2014-07-11 312 } else {
0c49ff42 Davor Joja 2014-11-18 313 xylon_drm_plane_op(base_crtc->primary, &op);
cb225630 Davor Joja 2014-07-11 314 }
e8c87b41 Davor Joja 2014-03-24 315
e8c87b41 Davor Joja 2014-03-24 316 return 0;
e8c87b41 Davor Joja 2014-03-24 317 }
e8c87b41 Davor Joja 2014-03-24 318
e8c87b41 Davor Joja 2014-03-24 319 static struct drm_crtc_funcs xylon_drm_crtc_funcs = {
e8c87b41 Davor Joja 2014-03-24 320 .destroy = xylon_drm_crtc_destroy,
e8c87b41 Davor Joja 2014-03-24 321 .set_config = drm_crtc_helper_set_config,
e8c87b41 Davor Joja 2014-03-24 322 .page_flip = xylon_drm_crtc_page_flip,
e8c87b41 Davor Joja 2014-03-24 323 .set_property = xylon_drm_crtc_set_property,
e8c87b41 Davor Joja 2014-03-24 324 };
e8c87b41 Davor Joja 2014-03-24 325
e8c87b41 Davor Joja 2014-03-24 326 static void xylon_drm_crtc_vblank_handler(struct drm_crtc *base_crtc)
e8c87b41 Davor Joja 2014-03-24 327 {
e8c87b41 Davor Joja 2014-03-24 328 struct drm_device *dev = base_crtc->dev;
e8c87b41 Davor Joja 2014-03-24 329 struct drm_pending_vblank_event *event;
e8c87b41 Davor Joja 2014-03-24 330 struct xylon_drm_crtc *crtc = to_xylon_crtc(base_crtc);
e8c87b41 Davor Joja 2014-03-24 331 unsigned long flags;
e8c87b41 Davor Joja 2014-03-24 332
e8c87b41 Davor Joja 2014-03-24 333 drm_handle_vblank(dev, 0);
e8c87b41 Davor Joja 2014-03-24 334
e8c87b41 Davor Joja 2014-03-24 335 spin_lock_irqsave(&dev->event_lock, flags);
e8c87b41 Davor Joja 2014-03-24 336 event = crtc->event;
e8c87b41 Davor Joja 2014-03-24 337 crtc->event = NULL;
e8c87b41 Davor Joja 2014-03-24 338 if (event) {
e8c87b41 Davor Joja 2014-03-24 @339 drm_send_vblank_event(dev, 0, event);
e8c87b41 Davor Joja 2014-03-24 340 drm_vblank_put(dev, 0);
e8c87b41 Davor Joja 2014-03-24 341 }
e8c87b41 Davor Joja 2014-03-24 342 spin_unlock_irqrestore(&dev->event_lock, flags);
:::::: The code at line 224 was first introduced by commit
:::::: e8c87b415c98ef5f5ceecbe62cc53f956cd9cd94 gpu: drm: xylon: Add a crtc support
:::::: TO: Davor Joja <davorjoja at logicbricks.com>
:::::: CC: Michal Simek <michal.simek at xilinx.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 55703 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170216/b45ff483/attachment-0001.gz>
More information about the linux-arm-kernel
mailing list