forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
....@@ -25,9 +25,11 @@
2525 *
2626 **************************************************************************/
2727
28
-#include "vmwgfx_drv.h"
29
-#include <drm/drmP.h>
28
+#include <linux/sched/signal.h>
29
+
3030 #include <drm/ttm/ttm_placement.h>
31
+
32
+#include "vmwgfx_drv.h"
3133
3234 struct vmw_temp_set_context {
3335 SVGA3dCmdHeader header;
....@@ -393,12 +395,8 @@
393395 WARN(1, "Command buffer has not been allocated.\n");
394396 ret = NULL;
395397 }
396
- if (IS_ERR_OR_NULL(ret)) {
397
- DRM_ERROR("Fifo reserve failure of %u bytes.\n",
398
- (unsigned) bytes);
399
- dump_stack();
398
+ if (IS_ERR_OR_NULL(ret))
400399 return NULL;
401
- }
402400
403401 return ret;
404402 }
....@@ -542,7 +540,7 @@
542540 int ret = 0;
543541 uint32_t bytes = sizeof(u32) + sizeof(*cmd_fence);
544542
545
- fm = vmw_fifo_reserve(dev_priv, bytes);
543
+ fm = VMW_FIFO_RESERVE(dev_priv, bytes);
546544 if (unlikely(fm == NULL)) {
547545 *seqno = atomic_read(&dev_priv->marker_seq);
548546 ret = -ENOMEM;
....@@ -601,12 +599,9 @@
601599 SVGA3dCmdWaitForQuery body;
602600 } *cmd;
603601
604
- cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd));
605
-
606
- if (unlikely(cmd == NULL)) {
607
- DRM_ERROR("Out of fifo space for dummy query.\n");
602
+ cmd = VMW_FIFO_RESERVE(dev_priv, sizeof(*cmd));
603
+ if (unlikely(cmd == NULL))
608604 return -ENOMEM;
609
- }
610605
611606 cmd->header.id = SVGA_3D_CMD_WAIT_FOR_QUERY;
612607 cmd->header.size = sizeof(cmd->body);
....@@ -615,7 +610,7 @@
615610
616611 if (bo->mem.mem_type == TTM_PL_VRAM) {
617612 cmd->body.guestResult.gmrId = SVGA_GMR_FRAMEBUFFER;
618
- cmd->body.guestResult.offset = bo->offset;
613
+ cmd->body.guestResult.offset = bo->mem.start << PAGE_SHIFT;
619614 } else {
620615 cmd->body.guestResult.gmrId = bo->mem.start;
621616 cmd->body.guestResult.offset = 0;
....@@ -650,12 +645,9 @@
650645 SVGA3dCmdWaitForGBQuery body;
651646 } *cmd;
652647
653
- cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd));
654
-
655
- if (unlikely(cmd == NULL)) {
656
- DRM_ERROR("Out of fifo space for dummy query.\n");
648
+ cmd = VMW_FIFO_RESERVE(dev_priv, sizeof(*cmd));
649
+ if (unlikely(cmd == NULL))
657650 return -ENOMEM;
658
- }
659651
660652 cmd->header.id = SVGA_3D_CMD_WAIT_FOR_GB_QUERY;
661653 cmd->header.size = sizeof(cmd->body);
....@@ -696,9 +688,4 @@
696688 return vmw_fifo_emit_dummy_gb_query(dev_priv, cid);
697689
698690 return vmw_fifo_emit_dummy_legacy_query(dev_priv, cid);
699
-}
700
-
701
-void *vmw_fifo_reserve(struct vmw_private *dev_priv, uint32_t bytes)
702
-{
703
- return vmw_fifo_reserve_dx(dev_priv, bytes, SVGA3D_INVALID_ID);
704691 }