mirror of https://gitee.com/openkylin/linux.git
drm/amd/display: Remove timer handler.
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>
This commit is contained in:
parent
d45d97b243
commit
ef4bccbdbf
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue