OSDN Git Service

drm/amd/display: Remove timer handler.
authorAndrey Grodzovsky <andrey.grodzovsky@amd.com>
Fri, 19 Jan 2018 21:35:06 +0000 (16:35 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 19 Feb 2018 19:18:45 +0000 (14:18 -0500)
Dead code, looks obsolete.

Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c

index b3b5a40..2a24d25 100644 (file)
@@ -117,10 +117,6 @@ struct amdgpu_display_manager {
        /* this spin lock synchronizes access to 'irq_handler_list_table' */
        spinlock_t irq_handler_list_table_lock;
 
-       /* Timer-related data. */
-       struct list_head timer_handler_list;
-       struct workqueue_struct *timer_workqueue;
-
        struct backlight_device *backlight_dev;
 
        const struct dc_link *backlight_link;
index 1874b6c..0ee425b 100644 (file)
@@ -51,11 +51,6 @@ struct amdgpu_dm_irq_handler_data {
        enum dc_irq_source irq_source;
 };
 
-struct amdgpu_dm_timer_handler_data {
-       struct handler_common_data hcd;
-       struct delayed_work d_work;
-};
-
 #define DM_IRQ_TABLE_LOCK(adev, flags) \
        spin_lock_irqsave(&adev->dm.irq_handler_list_table_lock, flags)
 
@@ -169,62 +164,6 @@ static struct list_head *remove_irq_handler(struct amdgpu_device *adev,
        return hnd_list;
 }
 
-/* If 'handler_in == NULL' then remove ALL handlers. */
-static void remove_timer_handler(struct amdgpu_device *adev,
-                                struct amdgpu_dm_timer_handler_data *handler_in)
-{
-       struct amdgpu_dm_timer_handler_data *handler_temp;
-       struct list_head *handler_list;
-       struct list_head *entry, *tmp;
-       unsigned long irq_table_flags;
-       bool handler_removed = false;
-
-       DM_IRQ_TABLE_LOCK(adev, irq_table_flags);
-
-       handler_list = &adev->dm.timer_handler_list;
-
-       list_for_each_safe(entry, tmp, handler_list) {
-               /* Note that list_for_each_safe() guarantees that
-                * handler_temp is NOT null. */
-               handler_temp = list_entry(entry,
-                               struct amdgpu_dm_timer_handler_data, hcd.list);
-
-               if (handler_in == NULL || handler_in == handler_temp) {
-                       list_del(&handler_temp->hcd.list);
-                       DM_IRQ_TABLE_UNLOCK(adev, irq_table_flags);
-
-                       DRM_DEBUG_KMS("DM_IRQ: removing timer handler: %p\n",
-                                       handler_temp);
-
-                       if (handler_in == NULL) {
-                               /* Since it is still in the queue, it must
-                                * be cancelled. */
-                               cancel_delayed_work_sync(&handler_temp->d_work);
-                       }
-
-                       kfree(handler_temp);
-                       handler_removed = true;
-
-                       DM_IRQ_TABLE_LOCK(adev, irq_table_flags);
-               }
-
-               /* Remove ALL handlers. */
-               if (handler_in == NULL)
-                       continue;
-
-               /* Remove a SPECIFIC handler.
-                * Found our handler - we can stop here. */
-               if (handler_in == handler_temp)
-                       break;
-       }
-
-       DM_IRQ_TABLE_UNLOCK(adev, irq_table_flags);
-
-       if (handler_in != NULL && handler_removed == false)
-               DRM_ERROR("DM_IRQ: handler: %p is not in the list!\n",
-                               handler_in);
-}
-
 static bool
 validate_irq_registration_params(struct dc_interrupt_params *int_params,
                                 void (*ih)(void *))
@@ -382,16 +321,6 @@ int amdgpu_dm_irq_init(struct amdgpu_device *adev)
                INIT_LIST_HEAD(&adev->dm.irq_handler_list_high_tab[src]);
        }
 
-       INIT_LIST_HEAD(&adev->dm.timer_handler_list);
-
-       /* allocate and initialize the workqueue for DM timer */
-       adev->dm.timer_workqueue = create_singlethread_workqueue(
-                       "dm_timer_queue");
-       if (adev->dm.timer_workqueue == NULL) {
-               DRM_ERROR("DM_IRQ: unable to create timer queue!\n");
-               return -1;
-       }
-
        return 0;
 }
 
@@ -410,11 +339,6 @@ void amdgpu_dm_irq_fini(struct amdgpu_device *adev)
                lh = &adev->dm.irq_handler_list_low_tab[src];
                flush_work(&lh->work);
        }
-
-       /* Cancel ALL timers and release handlers (if any). */
-       remove_timer_handler(adev, NULL);
-       /* Release the queue itself. */
-       destroy_workqueue(adev->dm.timer_workqueue);
 }
 
 int amdgpu_dm_irq_suspend(struct amdgpu_device *adev)