Revert "drm: add new drm_wait_on function to replace macro"
This reverts commit 6e860d08d0
.
As I said not a good plan - this macro will have to stay for now,
trying to do the vbl code with the inline was a bit messy - may need specialised
drm wait on functions
main
parent
8d95f4bd91
commit
a4cddc6596
|
@ -1130,9 +1130,7 @@ extern struct drm_sysfs_class *drm_class;
|
||||||
extern struct proc_dir_entry *drm_proc_root;
|
extern struct proc_dir_entry *drm_proc_root;
|
||||||
|
|
||||||
extern drm_local_map_t *drm_getsarea(struct drm_device *dev);
|
extern drm_local_map_t *drm_getsarea(struct drm_device *dev);
|
||||||
extern int drm_wait_on(drm_device_t *dev, wait_queue_head_t *queue,
|
|
||||||
int timeout, int (*fn)(drm_device_t *dev, void *priv),
|
|
||||||
void *priv);
|
|
||||||
/* Proc support (drm_proc.h) */
|
/* Proc support (drm_proc.h) */
|
||||||
extern int drm_proc_init(drm_device_t * dev,
|
extern int drm_proc_init(drm_device_t * dev,
|
||||||
int minor,
|
int minor,
|
||||||
|
|
|
@ -610,34 +610,6 @@ err_i1:
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(drm_ioctl);
|
EXPORT_SYMBOL(drm_ioctl);
|
||||||
|
|
||||||
int drm_wait_on(drm_device_t *dev, wait_queue_head_t *queue, int timeout,
|
|
||||||
int (*fn)(drm_device_t *dev, void *priv), void *priv)
|
|
||||||
{
|
|
||||||
DECLARE_WAITQUEUE(entry, current);
|
|
||||||
unsigned long end = jiffies + (timeout);
|
|
||||||
int ret = 0;
|
|
||||||
add_wait_queue(queue, &entry);
|
|
||||||
|
|
||||||
for (;;) {
|
|
||||||
__set_current_state(TASK_INTERRUPTIBLE);
|
|
||||||
if ((*fn)(dev, priv))
|
|
||||||
break;
|
|
||||||
if (time_after_eq(jiffies, end)) {
|
|
||||||
ret = -EBUSY;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
schedule_timeout((HZ/100 > 1) ? HZ/100 : 1);
|
|
||||||
if (signal_pending(current)) {
|
|
||||||
ret = -EINTR;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
__set_current_state(TASK_RUNNING);
|
|
||||||
remove_wait_queue(queue, &entry);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(drm_wait_on);
|
|
||||||
|
|
||||||
drm_local_map_t *drm_getsarea(struct drm_device *dev)
|
drm_local_map_t *drm_getsarea(struct drm_device *dev)
|
||||||
{
|
{
|
||||||
drm_map_list_t *entry;
|
drm_map_list_t *entry;
|
||||||
|
|
Loading…
Reference in New Issue