Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 5669
b: refs/heads/master
c: a866a5f
h: refs/heads/master
i:
  5667: 77f317a
v: v3
  • Loading branch information
Linus Torvalds committed Aug 5, 2005
1 parent 41e1b8f commit 0188528
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 23 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b7656e7f2944984befa3ab99a5b99f99a23b302b
refs/heads/master: a866a5f4eab10080ca25785fcf53ad67cde28bed
7 changes: 5 additions & 2 deletions trunk/drivers/char/rtc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1209,6 +1209,7 @@ static int rtc_proc_open(struct inode *inode, struct file *file)

void rtc_get_rtc_time(struct rtc_time *rtc_tm)
{
unsigned long uip_watchdog = jiffies;
unsigned char ctrl;
#ifdef CONFIG_MACH_DECSTATION
unsigned int real_year;
Expand All @@ -1224,8 +1225,10 @@ void rtc_get_rtc_time(struct rtc_time *rtc_tm)
* Once the read clears, read the RTC time (again via ioctl). Easy.
*/

if (rtc_is_updating() != 0)
msleep(20);
while (rtc_is_updating() != 0 && jiffies - uip_watchdog < 2*HZ/100) {
barrier();
cpu_relax();
}

/*
* Only the values that we read from the RTC are set. We leave
Expand Down
2 changes: 0 additions & 2 deletions trunk/drivers/sbus/char/vfc.h
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,6 @@ struct vfc_dev {
struct vfc_regs *phys_regs;
unsigned int control_reg;
struct semaphore device_lock_sem;
struct timer_list poll_timer;
wait_queue_head_t poll_wait;
int instance;
int busy;
unsigned long which_io;
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/sbus/char/vfc_dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,6 @@ int init_vfc_devstruct(struct vfc_dev *dev, int instance)
dev->instance=instance;
init_MUTEX(&dev->device_lock_sem);
dev->control_reg=0;
init_waitqueue_head(&dev->poll_wait);
dev->busy=0;
return 0;
}
Expand Down
19 changes: 2 additions & 17 deletions trunk/drivers/sbus/char/vfc_i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,25 +79,10 @@ int vfc_pcf8584_init(struct vfc_dev *dev)
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)
{
DEFINE_WAIT(wait);
init_timer(&dev->poll_timer);
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);
set_current_state(TASK_UNINTERRUPTIBLE);
schedule_timeout(usecs_to_jiffies(usecs));
}

void inline vfc_i2c_delay(struct vfc_dev *dev)
Expand Down

0 comments on commit 0188528

Please sign in to comment.