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

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Christoph Hellwig and committed by David S. Miller 3873658b d95a1b48

+2 -20
-2
drivers/sbus/char/vfc.h
··· 129 129 struct vfc_regs *phys_regs; 130 130 unsigned int control_reg; 131 131 struct semaphore device_lock_sem; 132 - struct timer_list poll_timer; 133 - wait_queue_head_t poll_wait; 134 132 int instance; 135 133 int busy; 136 134 unsigned long which_io;
-1
drivers/sbus/char/vfc_dev.c
··· 137 137 dev->instance=instance; 138 138 init_MUTEX(&dev->device_lock_sem); 139 139 dev->control_reg=0; 140 - init_waitqueue_head(&dev->poll_wait); 141 140 dev->busy=0; 142 141 return 0; 143 142 }
+2 -17
drivers/sbus/char/vfc_i2c.c
··· 79 79 return 0; 80 80 } 81 81 82 - void vfc_i2c_delay_wakeup(struct vfc_dev *dev) 83 - { 84 - /* Used to profile code and eliminate too many delays */ 85 - VFC_I2C_DEBUG_PRINTK(("vfc%d: Delaying\n", dev->instance)); 86 - wake_up(&dev->poll_wait); 87 - } 88 - 89 82 void vfc_i2c_delay_no_busy(struct vfc_dev *dev, unsigned long usecs) 90 83 { 91 - DEFINE_WAIT(wait); 92 - init_timer(&dev->poll_timer); 93 - dev->poll_timer.expires = jiffies + usecs_to_jiffies(usecs); 94 - dev->poll_timer.data=(unsigned long)dev; 95 - dev->poll_timer.function=(void *)(unsigned long)vfc_i2c_delay_wakeup; 96 - add_timer(&dev->poll_timer); 97 - prepare_to_wait(&dev->poll_wait, &wait, TASK_UNINTERRUPTIBLE); 98 - schedule(); 99 - del_timer(&dev->poll_timer); 100 - finish_wait(&dev->poll_wait, &wait); 84 + set_current_state(TASK_UNINTERRUPTIBLE); 85 + schedule_timeout(usecs_to_jiffies(usecs)); 101 86 } 102 87 103 88 void inline vfc_i2c_delay(struct vfc_dev *dev)