Hi Zack, I love your patch! Perhaps something to improve: [auto build test WARNING on drm-tip/drm-tip] [also build test WARNING on linus/master next-20210505] [cannot apply to drm-intel/for-linux-next drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next drm/drm-next v5.12] [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/Zack-Rusin/drm-vmwgfx-SVGA-v3-and-arm64-support/20210505-120026 base: git://anongit.freedesktop.org/drm/drm-tip drm-tip config: x86_64-randconfig-c003-20210505 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/4acf63c8eca79f6073ada0994b0e2a03c8fcfb71 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Zack-Rusin/drm-vmwgfx-SVGA-v3-and-arm64-support/20210505-120026 git checkout 4acf63c8eca79f6073ada0994b0e2a03c8fcfb71 # save the attached .config to linux build tree make W=1 W=1 ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>): drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c:477: warning: expecting prototype for vmw_fifo_commit_flush(). Prototype was for vmw_cmd_commit_flush() instead drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c:492: warning: expecting prototype for vmw_fifo_flush(). Prototype was for vmw_cmd_flush() instead >> drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c:650: warning: expecting prototype for vmw_cmd_emit_dummy_gb_query(). Prototype was for vmw_cmd_emit_dummy_query() instead drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c:667: warning: Function parameter or member 'vmw' not described in 'vmw_cmd_supported' drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c:667: warning: Excess function parameter 'dev_priv' description in 'vmw_cmd_supported' cocci warnings: (new ones prefixed by >>) >> drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c:674:25-26: WARNING comparing pointer to 0 Please review and possibly fold the followup patch. vim +650 drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 468 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 469 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 470 /** 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 471 * vmw_fifo_commit_flush - Commit fifo space and flush any buffered commands. 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 472 * 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 473 * @dev_priv: Pointer to device private structure. 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 474 * @bytes: Number of bytes to commit. 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 475 */ 8426ed9c4b42f4 drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2020-11-18 476 void vmw_cmd_commit_flush(struct vmw_private *dev_priv, uint32_t bytes) 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 @477 { 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 478 if (dev_priv->cman) 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 479 vmw_cmdbuf_commit(dev_priv->cman, bytes, NULL, true); 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 480 else 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 481 vmw_local_fifo_commit(dev_priv, bytes); 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 482 } 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 483 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 484 /** 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 485 * vmw_fifo_flush - Flush any buffered commands and make sure command processing 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 486 * starts. 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 487 * 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 488 * @dev_priv: Pointer to device private structure. 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 489 * @interruptible: Whether to wait interruptible if function needs to sleep. 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 490 */ 8426ed9c4b42f4 drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2020-11-18 491 int vmw_cmd_flush(struct vmw_private *dev_priv, bool interruptible) 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 492 { 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 493 might_sleep(); 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 494 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 495 if (dev_priv->cman) 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 496 return vmw_cmdbuf_cur_flush(dev_priv->cman, interruptible); 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 497 else 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 498 return 0; 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 499 } 3eab3d9eef6504 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-25 500 8426ed9c4b42f4 drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2020-11-18 501 int vmw_cmd_send_fence(struct vmw_private *dev_priv, uint32_t *seqno) fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 502 { fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 503 struct svga_fifo_cmd_fence *cmd_fence; b9eb1a6174e58e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-04-02 504 u32 *fm; fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 505 int ret = 0; b9eb1a6174e58e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-04-02 506 uint32_t bytes = sizeof(u32) + sizeof(*cmd_fence); fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 507 8426ed9c4b42f4 drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2020-11-18 508 fm = VMW_CMD_RESERVE(dev_priv, bytes); fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 509 if (unlikely(fm == NULL)) { 6bcd8d3c782b7b drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-09-01 510 *seqno = atomic_read(&dev_priv->marker_seq); fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 511 ret = -ENOMEM; 6bcd8d3c782b7b drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-09-01 512 (void)vmw_fallback_wait(dev_priv, false, true, *seqno, fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 513 false, 3*HZ); fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 514 goto out_err; fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 515 } fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 516 fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 517 do { 6bcd8d3c782b7b drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-09-01 518 *seqno = atomic_add_return(1, &dev_priv->marker_seq); 6bcd8d3c782b7b drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-09-01 519 } while (*seqno == 0); fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 520 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 521 if (!(vmw_fifo_caps(dev_priv) & SVGA_FIFO_CAP_FENCE)) { fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 522 fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 523 /* fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 524 * Don't request hardware to send a fence. The fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 525 * waiting code in vmwgfx_irq.c will emulate this. fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 526 */ fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 527 8426ed9c4b42f4 drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2020-11-18 528 vmw_cmd_commit(dev_priv, 0); fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 529 return 0; fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 530 } fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 531 b9eb1a6174e58e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-04-02 532 *fm++ = SVGA_CMD_FENCE; b9eb1a6174e58e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-04-02 533 cmd_fence = (struct svga_fifo_cmd_fence *) fm; b9eb1a6174e58e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-04-02 534 cmd_fence->fence = *seqno; 8426ed9c4b42f4 drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2020-11-18 535 vmw_cmd_commit_flush(dev_priv, bytes); 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 536 vmw_update_seqno(dev_priv); fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 537 fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 538 out_err: fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 539 return ret; fb1d9738ca053e drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Jakob Bornecrantz 2009-12-10 540 } e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 541 e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 542 /** 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 543 * vmw_cmd_emit_dummy_legacy_query - emits a dummy query to the fifo using ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 544 * legacy query commands. e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 545 * e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 546 * @dev_priv: The device private structure. e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 547 * @cid: The hardware context id used for the query. e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 548 * 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 549 * See the vmw_cmd_emit_dummy_query documentation. e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 550 */ 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 551 static int vmw_cmd_emit_dummy_legacy_query(struct vmw_private *dev_priv, e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 552 uint32_t cid) e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 553 { e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 554 /* e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 555 * A query wait without a preceding query end will e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 556 * actually finish all queries for this cid e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 557 * without writing to the query result structure. e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 558 */ e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 559 459d0fa7359654 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-26 560 struct ttm_buffer_object *bo = &dev_priv->dummy_query_bo->base; e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 561 struct { e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 562 SVGA3dCmdHeader header; e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 563 SVGA3dCmdWaitForQuery body; e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 564 } *cmd; e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 565 8426ed9c4b42f4 drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2020-11-18 566 cmd = VMW_CMD_RESERVE(dev_priv, sizeof(*cmd)); 11c454196610ae drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Deepak Rawat 2019-02-14 567 if (unlikely(cmd == NULL)) e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 568 return -ENOMEM; e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 569 e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 570 cmd->header.id = SVGA_3D_CMD_WAIT_FOR_QUERY; e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 571 cmd->header.size = sizeof(cmd->body); e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 572 cmd->body.cid = cid; e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 573 cmd->body.type = SVGA3D_QUERYTYPE_OCCLUSION; e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 574 e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 575 if (bo->mem.mem_type == TTM_PL_VRAM) { e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 576 cmd->body.guestResult.gmrId = SVGA_GMR_FRAMEBUFFER; 0b17fc08e396d0 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Nirmoy Das 2020-06-24 577 cmd->body.guestResult.offset = bo->mem.start << PAGE_SHIFT; e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 578 } else { e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 579 cmd->body.guestResult.gmrId = bo->mem.start; e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 580 cmd->body.guestResult.offset = 0; e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 581 } e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 582 8426ed9c4b42f4 drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2020-11-18 583 vmw_cmd_commit(dev_priv, sizeof(*cmd)); e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 584 e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 585 return 0; e2fa3a76839ada drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2011-10-04 586 } ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 587 ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 588 /** 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 589 * vmw_cmd_emit_dummy_gb_query - emits a dummy query to the fifo using ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 590 * guest-backed resource query commands. ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 591 * ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 592 * @dev_priv: The device private structure. ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 593 * @cid: The hardware context id used for the query. ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 594 * 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 595 * See the vmw_cmd_emit_dummy_query documentation. ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 596 */ 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 597 static int vmw_cmd_emit_dummy_gb_query(struct vmw_private *dev_priv, ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 598 uint32_t cid) ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 599 { ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 600 /* ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 601 * A query wait without a preceding query end will ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 602 * actually finish all queries for this cid ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 603 * without writing to the query result structure. ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 604 */ ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 605 459d0fa7359654 drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2015-06-26 606 struct ttm_buffer_object *bo = &dev_priv->dummy_query_bo->base; ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 607 struct { ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 608 SVGA3dCmdHeader header; ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 609 SVGA3dCmdWaitForGBQuery body; ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 610 } *cmd; ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 611 8426ed9c4b42f4 drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2020-11-18 612 cmd = VMW_CMD_RESERVE(dev_priv, sizeof(*cmd)); 11c454196610ae drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Deepak Rawat 2019-02-14 613 if (unlikely(cmd == NULL)) ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 614 return -ENOMEM; ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 615 ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 616 cmd->header.id = SVGA_3D_CMD_WAIT_FOR_GB_QUERY; ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 617 cmd->header.size = sizeof(cmd->body); ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 618 cmd->body.cid = cid; ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 619 cmd->body.type = SVGA3D_QUERYTYPE_OCCLUSION; ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 620 BUG_ON(bo->mem.mem_type != VMW_PL_MOB); ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 621 cmd->body.mobid = bo->mem.start; ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 622 cmd->body.offset = 0; ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 623 8426ed9c4b42f4 drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2020-11-18 624 vmw_cmd_commit(dev_priv, sizeof(*cmd)); ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 625 ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 626 return 0; ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 627 } ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 628 ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 629 ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 630 /** 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 631 * vmw_cmd_emit_dummy_gb_query - emits a dummy query to the fifo using ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 632 * appropriate resource query commands. ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 633 * ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 634 * @dev_priv: The device private structure. ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 635 * @cid: The hardware context id used for the query. ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 636 * ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 637 * This function is used to emit a dummy occlusion query with ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 638 * no primitives rendered between query begin and query end. ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 639 * It's used to provide a query barrier, in order to know that when ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 640 * this query is finished, all preceding queries are also finished. ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 641 * ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 642 * A Query results structure should have been initialized at the start ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 643 * of the dev_priv->dummy_query_bo buffer object. And that buffer object ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 644 * must also be either reserved or pinned when this function is called. ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 645 * ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 646 * Returns -ENOMEM on failure to reserve fifo space. ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 647 */ 8426ed9c4b42f4 drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2020-11-18 648 int vmw_cmd_emit_dummy_query(struct vmw_private *dev_priv, ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 649 uint32_t cid) ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 @650 { ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 651 if (dev_priv->has_mob) 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 652 return vmw_cmd_emit_dummy_gb_query(dev_priv, cid); 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 653 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 654 return vmw_cmd_emit_dummy_legacy_query(dev_priv, cid); 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 655 } 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 656 ddcda24e3bec1d drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c Thomas Hellstrom 2012-11-21 657 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 658 /** 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 659 * vmw_cmd_supported - returns true if the given device supports 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 660 * command queues. 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 661 * 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 662 * @dev_priv: The device private structure. 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 663 * 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 664 * Returns true if we can issue commands. 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 665 */ 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 666 bool vmw_cmd_supported(struct vmw_private *vmw) 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 667 { 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 668 if ((vmw->capabilities & (SVGA_CAP_COMMAND_BUFFERS | 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 669 SVGA_CAP_CMD_BUFFERS_2)) != 0) 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 670 return true; 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 671 /* 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 672 * We have FIFO cmd's 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 673 */ 4acf63c8eca79f drivers/gpu/drm/vmwgfx/vmwgfx_cmd.c Zack Rusin 2021-05-04 @674 return vmw->fifo_mem != 0; --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel