OSDN Git Service

drm/gma500: Remove struct psb_gtt.sem sempahore
authorThomas Zimmermann <tzimmermann@suse.de>
Tue, 8 Mar 2022 19:52:14 +0000 (20:52 +0100)
committerPatrik Jakobsson <patrik.r.jakobsson@gmail.com>
Wed, 16 Mar 2022 16:42:19 +0000 (17:42 +0100)
The semaphore at struct psb_mmu_driver.sem protects access to the MMU
fields. Additional locking with struct psb_gtt.sem is unnecessary. Remove
the field and related code.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220308195222.13471-5-tzimmermann@suse.de
drivers/gpu/drm/gma500/gtt.c
drivers/gpu/drm/gma500/gtt.h
drivers/gpu/drm/gma500/psb_drv.c

index 4202e88..c7b7cb1 100644 (file)
@@ -125,12 +125,6 @@ void psb_gtt_remove_pages(struct drm_psb_private *pdev, const struct resource *r
        mutex_unlock(&pdev->gtt_mutex);
 }
 
-static void psb_gtt_alloc(struct drm_device *dev)
-{
-       struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
-       init_rwsem(&dev_priv->gtt.sem);
-}
-
 void psb_gtt_takedown(struct drm_device *dev)
 {
        struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
@@ -166,7 +160,6 @@ int psb_gtt_init(struct drm_device *dev, int resume)
        if (!resume) {
                mutex_init(&dev_priv->gtt_mutex);
                mutex_init(&dev_priv->mmap_mutex);
-               psb_gtt_alloc(dev);
        }
 
        pg = &dev_priv->gtt;
index ff1dcdd..3150053 100644 (file)
@@ -22,7 +22,6 @@ struct psb_gtt {
        unsigned gatt_pages;
        unsigned long stolen_size;
        unsigned long vram_stolen_size;
-       struct rw_semaphore sem;
 };
 
 /* Exported functions */
index eeb681b..7227a8e 100644 (file)
@@ -184,13 +184,11 @@ static void psb_driver_unload(struct drm_device *dev)
        if (dev_priv->mmu) {
                struct psb_gtt *pg = &dev_priv->gtt;
 
-               down_read(&pg->sem);
                psb_mmu_remove_pfn_sequence(
                        psb_mmu_get_default_pd
                        (dev_priv->mmu),
                        pg->mmu_gatt_start,
                        dev_priv->vram_stolen_size >> PAGE_SHIFT);
-               up_read(&pg->sem);
                psb_mmu_driver_takedown(dev_priv->mmu);
                dev_priv->mmu = NULL;
        }
@@ -345,12 +343,10 @@ static int psb_driver_load(struct drm_device *dev, unsigned long flags)
                return ret;
 
        /* Add stolen memory to SGX MMU */
-       down_read(&pg->sem);
        ret = psb_mmu_insert_pfn_sequence(psb_mmu_get_default_pd(dev_priv->mmu),
                                          dev_priv->stolen_base >> PAGE_SHIFT,
                                          pg->gatt_start,
                                          pg->stolen_size >> PAGE_SHIFT, 0);
-       up_read(&pg->sem);
 
        psb_mmu_set_pd_context(psb_mmu_get_default_pd(dev_priv->mmu), 0);
        psb_mmu_set_pd_context(dev_priv->pf_pd, 1);