|
@@ -239,10 +239,10 @@ static unsigned short write_postamble[] = {
|
|
|
static void seek_track(struct floppy_state *fs, int n);
|
|
|
static void init_dma(struct dbdma_cmd *cp, int cmd, void *buf, int count);
|
|
|
static void act(struct floppy_state *fs);
|
|
|
-static void scan_timeout(unsigned long data);
|
|
|
-static void seek_timeout(unsigned long data);
|
|
|
-static void settle_timeout(unsigned long data);
|
|
|
-static void xfer_timeout(unsigned long data);
|
|
|
+static void scan_timeout(struct timer_list *t);
|
|
|
+static void seek_timeout(struct timer_list *t);
|
|
|
+static void settle_timeout(struct timer_list *t);
|
|
|
+static void xfer_timeout(struct timer_list *t);
|
|
|
static irqreturn_t swim3_interrupt(int irq, void *dev_id);
|
|
|
/*static void fd_dma_interrupt(int irq, void *dev_id);*/
|
|
|
static int grab_drive(struct floppy_state *fs, enum swim_state state,
|
|
@@ -392,13 +392,12 @@ static void do_fd_request(struct request_queue * q)
|
|
|
}
|
|
|
|
|
|
static void set_timeout(struct floppy_state *fs, int nticks,
|
|
|
- void (*proc)(unsigned long))
|
|
|
+ void (*proc)(struct timer_list *t))
|
|
|
{
|
|
|
if (fs->timeout_pending)
|
|
|
del_timer(&fs->timeout);
|
|
|
fs->timeout.expires = jiffies + nticks;
|
|
|
- fs->timeout.function = proc;
|
|
|
- fs->timeout.data = (unsigned long) fs;
|
|
|
+ fs->timeout.function = (TIMER_FUNC_TYPE)proc;
|
|
|
add_timer(&fs->timeout);
|
|
|
fs->timeout_pending = 1;
|
|
|
}
|
|
@@ -569,9 +568,9 @@ static void act(struct floppy_state *fs)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static void scan_timeout(unsigned long data)
|
|
|
+static void scan_timeout(struct timer_list *t)
|
|
|
{
|
|
|
- struct floppy_state *fs = (struct floppy_state *) data;
|
|
|
+ struct floppy_state *fs = from_timer(fs, t, timeout);
|
|
|
struct swim3 __iomem *sw = fs->swim3;
|
|
|
unsigned long flags;
|
|
|
|
|
@@ -594,9 +593,9 @@ static void scan_timeout(unsigned long data)
|
|
|
spin_unlock_irqrestore(&swim3_lock, flags);
|
|
|
}
|
|
|
|
|
|
-static void seek_timeout(unsigned long data)
|
|
|
+static void seek_timeout(struct timer_list *t)
|
|
|
{
|
|
|
- struct floppy_state *fs = (struct floppy_state *) data;
|
|
|
+ struct floppy_state *fs = from_timer(fs, t, timeout);
|
|
|
struct swim3 __iomem *sw = fs->swim3;
|
|
|
unsigned long flags;
|
|
|
|
|
@@ -614,9 +613,9 @@ static void seek_timeout(unsigned long data)
|
|
|
spin_unlock_irqrestore(&swim3_lock, flags);
|
|
|
}
|
|
|
|
|
|
-static void settle_timeout(unsigned long data)
|
|
|
+static void settle_timeout(struct timer_list *t)
|
|
|
{
|
|
|
- struct floppy_state *fs = (struct floppy_state *) data;
|
|
|
+ struct floppy_state *fs = from_timer(fs, t, timeout);
|
|
|
struct swim3 __iomem *sw = fs->swim3;
|
|
|
unsigned long flags;
|
|
|
|
|
@@ -644,9 +643,9 @@ static void settle_timeout(unsigned long data)
|
|
|
spin_unlock_irqrestore(&swim3_lock, flags);
|
|
|
}
|
|
|
|
|
|
-static void xfer_timeout(unsigned long data)
|
|
|
+static void xfer_timeout(struct timer_list *t)
|
|
|
{
|
|
|
- struct floppy_state *fs = (struct floppy_state *) data;
|
|
|
+ struct floppy_state *fs = from_timer(fs, t, timeout);
|
|
|
struct swim3 __iomem *sw = fs->swim3;
|
|
|
struct dbdma_regs __iomem *dr = fs->dma;
|
|
|
unsigned long flags;
|
|
@@ -1182,7 +1181,7 @@ static int swim3_add_device(struct macio_dev *mdev, int index)
|
|
|
return -EBUSY;
|
|
|
}
|
|
|
|
|
|
- init_timer(&fs->timeout);
|
|
|
+ timer_setup(&fs->timeout, NULL, 0);
|
|
|
|
|
|
swim3_info("SWIM3 floppy controller %s\n",
|
|
|
mdev->media_bay ? "in media bay" : "");
|