Commit 3873658b authored by Christoph Hellwig's avatar Christoph Hellwig Committed by David S. Miller

[SPARC]: Fix up sleep_on() removal in vfc driver.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d95a1b48
...@@ -129,8 +129,6 @@ struct vfc_dev { ...@@ -129,8 +129,6 @@ struct vfc_dev {
struct vfc_regs *phys_regs; struct vfc_regs *phys_regs;
unsigned int control_reg; unsigned int control_reg;
struct semaphore device_lock_sem; struct semaphore device_lock_sem;
struct timer_list poll_timer;
wait_queue_head_t poll_wait;
int instance; int instance;
int busy; int busy;
unsigned long which_io; unsigned long which_io;
......
...@@ -137,7 +137,6 @@ int init_vfc_devstruct(struct vfc_dev *dev, int instance) ...@@ -137,7 +137,6 @@ int init_vfc_devstruct(struct vfc_dev *dev, int instance)
dev->instance=instance; dev->instance=instance;
init_MUTEX(&dev->device_lock_sem); init_MUTEX(&dev->device_lock_sem);
dev->control_reg=0; dev->control_reg=0;
init_waitqueue_head(&dev->poll_wait);
dev->busy=0; dev->busy=0;
return 0; return 0;
} }
......
...@@ -79,25 +79,10 @@ int vfc_pcf8584_init(struct vfc_dev *dev) ...@@ -79,25 +79,10 @@ int vfc_pcf8584_init(struct vfc_dev *dev)
return 0; return 0;
} }
void vfc_i2c_delay_wakeup(struct vfc_dev *dev)
{
/* Used to profile code and eliminate too many delays */
VFC_I2C_DEBUG_PRINTK(("vfc%d: Delaying\n", dev->instance));
wake_up(&dev->poll_wait);
}
void vfc_i2c_delay_no_busy(struct vfc_dev *dev, unsigned long usecs) void vfc_i2c_delay_no_busy(struct vfc_dev *dev, unsigned long usecs)
{ {
DEFINE_WAIT(wait); set_current_state(TASK_UNINTERRUPTIBLE);
init_timer(&dev->poll_timer); schedule_timeout(usecs_to_jiffies(usecs));
dev->poll_timer.expires = jiffies + usecs_to_jiffies(usecs);
dev->poll_timer.data=(unsigned long)dev;
dev->poll_timer.function=(void *)(unsigned long)vfc_i2c_delay_wakeup;
add_timer(&dev->poll_timer);
prepare_to_wait(&dev->poll_wait, &wait, TASK_UNINTERRUPTIBLE);
schedule();
del_timer(&dev->poll_timer);
finish_wait(&dev->poll_wait, &wait);
} }
void inline vfc_i2c_delay(struct vfc_dev *dev) void inline vfc_i2c_delay(struct vfc_dev *dev)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment