}
}
+static struct tasklet_struct cm206_tasklet;
+
/* The interrupt handler. When the cm260 generates an interrupt, very
much care has to be taken in reading out the registers in the right
order; in case of a receive_buffer_full interrupt, first the
if (cd->background
&& (cd->adapter_last - cd->adapter_first == cd->max_sectors
|| cd->fifo_overflowed))
- mark_bh(CM206_BH); /* issue a stop read command */
+ tasklet_schedule(&cm206_tasklet); /* issue a stop read command */
stats(interrupt);
}
4 c_stop waits for receive_buffer_full: 0xff
*/
-void cm206_bh(void)
+static void cm206_tasklet_func(unsigned long ignore)
{
debug(("bh: %d\n", cd->background));
switch (cd->background) {
}
}
+static DECLARE_TASKLET(cm206_tasklet, cm206_tasklet_func, 0);
+
/* This command clears the dsb_possible_media_change flag, so we must
* retain it.
*/
blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), do_cm206_request,
&cm206_lock);
blk_queue_hardsect_size(BLK_DEFAULT_QUEUE(MAJOR_NR), 2048);
- init_bh(CM206_BH, cm206_bh);
memset(cd, 0, sizeof(*cd)); /* give'm some reasonable value */
cd->sector_last = -1; /* flag no data buffered */