[PATCH 2/2] drm/amd/display: Remove timer handler.
Harry Wentland
harry.wentland at amd.com
Tue Jan 23 15:29:42 UTC 2018
On 2018-01-19 04:35 PM, Andrey Grodzovsky wrote:
> Dead code, looks obsolete.
>
> Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky at amd.com>
Good cleanup. Thanks.
Series is
Reviewed-by: Harry Wentland <harry.wentland at amd.com>
Harry
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 4 --
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | 76 ----------------------
> 2 files changed, 80 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> index 55ac296..9902132 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> @@ -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;
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
> index 1874b6c..0ee425b 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c
> @@ -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)
>
More information about the amd-gfx
mailing list