OSDN Git Service

drm/gma500: Never wait for blits
authorPatrik Jakobsson <patrik.r.jakobsson@gmail.com>
Mon, 1 Feb 2021 13:26:17 +0000 (14:26 +0100)
committerPatrik Jakobsson <patrik.r.jakobsson@gmail.com>
Tue, 9 Feb 2021 12:07:44 +0000 (13:07 +0100)
Blits cannot happen anymore since we removed the 2d accel code. Stop
checking for a busy blitter and remove the remaining blitter code.

Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20210201132617.1233-6-patrik.r.jakobsson@gmail.com
drivers/gpu/drm/gma500/Makefile
drivers/gpu/drm/gma500/blitter.c [deleted file]
drivers/gpu/drm/gma500/blitter.h [deleted file]
drivers/gpu/drm/gma500/gtt.c

index 160b75e..63012bf 100644 (file)
@@ -5,7 +5,6 @@
 
 gma500_gfx-y += \
          backlight.o \
-         blitter.o \
          cdv_device.o \
          cdv_intel_crt.o \
          cdv_intel_display.o \
diff --git a/drivers/gpu/drm/gma500/blitter.c b/drivers/gpu/drm/gma500/blitter.c
deleted file mode 100644 (file)
index cb2504a..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * Copyright (c) 2014, Patrik Jakobsson
- * All Rights Reserved.
- *
- * Authors: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
- */
-
-#include "psb_drv.h"
-
-#include "blitter.h"
-#include "psb_reg.h"
-
-/* Wait for the blitter to be completely idle */
-int gma_blt_wait_idle(struct drm_psb_private *dev_priv)
-{
-       unsigned long stop = jiffies + HZ;
-       int busy = 1;
-
-       /* NOP for Cedarview */
-       if (IS_CDV(dev_priv->dev))
-               return 0;
-
-       /* First do a quick check */
-       if ((PSB_RSGX32(PSB_CR_2D_SOCIF) == _PSB_C2_SOCIF_EMPTY) &&
-           ((PSB_RSGX32(PSB_CR_2D_BLIT_STATUS) & _PSB_C2B_STATUS_BUSY) == 0))
-               return 0;
-
-       do {
-               busy = (PSB_RSGX32(PSB_CR_2D_SOCIF) != _PSB_C2_SOCIF_EMPTY);
-       } while (busy && !time_after_eq(jiffies, stop));
-
-       if (busy)
-               return -EBUSY;
-
-       do {
-               busy = ((PSB_RSGX32(PSB_CR_2D_BLIT_STATUS) &
-                       _PSB_C2B_STATUS_BUSY) != 0);
-       } while (busy && !time_after_eq(jiffies, stop));
-
-       /* If still busy, we probably have a hang */
-       return (busy) ? -EBUSY : 0;
-}
diff --git a/drivers/gpu/drm/gma500/blitter.h b/drivers/gpu/drm/gma500/blitter.h
deleted file mode 100644 (file)
index 8d67dab..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * Copyright (c) 2014, Patrik Jakobsson
- * All Rights Reserved.
- *
- * Authors: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
- */
-
-#ifndef __BLITTER_H
-#define __BLITTER_H
-
-struct drm_psb_private;
-
-extern int gma_blt_wait_idle(struct drm_psb_private *dev_priv);
-
-#endif
index e884750..df9b611 100644 (file)
@@ -11,7 +11,6 @@
 
 #include <asm/set_memory.h>
 
-#include "blitter.h"
 #include "psb_drv.h"
 
 
@@ -229,18 +228,9 @@ void psb_gtt_unpin(struct gtt_range *gt)
        struct drm_device *dev = gt->gem.dev;
        struct drm_psb_private *dev_priv = dev->dev_private;
        u32 gpu_base = dev_priv->gtt.gatt_start;
-       int ret;
 
-       /* While holding the gtt_mutex no new blits can be initiated */
        mutex_lock(&dev_priv->gtt_mutex);
 
-       /* Wait for any possible usage of the memory to be finished */
-       ret = gma_blt_wait_idle(dev_priv);
-       if (ret) {
-               DRM_ERROR("Failed to idle the blitter, unpin failed!");
-               goto out;
-       }
-
        WARN_ON(!gt->in_gart);
 
        gt->in_gart--;
@@ -251,7 +241,6 @@ void psb_gtt_unpin(struct gtt_range *gt)
                psb_gtt_detach_pages(gt);
        }
 
-out:
        mutex_unlock(&dev_priv->gtt_mutex);
 }