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' */
|
/* this spin lock synchronizes access to 'irq_handler_list_table' */
|
||||||
spinlock_t irq_handler_list_table_lock;
|
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;
|
struct backlight_device *backlight_dev;
|
||||||
|
|
||||||
const struct dc_link *backlight_link;
|
const struct dc_link *backlight_link;
|
||||||
|
|
|
@ -51,11 +51,6 @@ struct amdgpu_dm_irq_handler_data {
|
||||||
enum dc_irq_source irq_source;
|
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) \
|
#define DM_IRQ_TABLE_LOCK(adev, flags) \
|
||||||
spin_lock_irqsave(&adev->dm.irq_handler_list_table_lock, 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;
|
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
|
static bool
|
||||||
validate_irq_registration_params(struct dc_interrupt_params *int_params,
|
validate_irq_registration_params(struct dc_interrupt_params *int_params,
|
||||||
void (*ih)(void *))
|
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.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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -410,11 +339,6 @@ void amdgpu_dm_irq_fini(struct amdgpu_device *adev)
|
||||||
lh = &adev->dm.irq_handler_list_low_tab[src];
|
lh = &adev->dm.irq_handler_list_low_tab[src];
|
||||||
flush_work(&lh->work);
|
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)
|
int amdgpu_dm_irq_suspend(struct amdgpu_device *adev)
|
||||||
|
|
Loading…
Reference in New Issue