]> git.hungrycats.org Git - linux/commitdiff
[PATCH] Convert cm206 to a tasklet
authorMatthew Wilcox <willy@debian.org>
Thu, 20 Jun 2002 05:02:14 +0000 (22:02 -0700)
committerLinus Torvalds <torvalds@home.transmeta.com>
Thu, 20 Jun 2002 05:02:14 +0000 (22:02 -0700)
Removes CM206_BH (patch approved by maintainer).
Deletes the no-longer-used BH entries from the enum.  Explicit numbers
added so as not to destroy binary compatibility needlessly.

drivers/cdrom/cm206.c
include/linux/interrupt.h

index 2b9cf52239d91574de68e2988b09232e8008f443..0b5facfd1c2826f63bf86c595f299d418b83253a 100644 (file)
@@ -345,6 +345,8 @@ inline void clear_ur(void)
        }
 }
 
+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
@@ -432,7 +434,7 @@ static void cm206_interrupt(int sig, void *dev_id, struct pt_regs *regs)
        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);
 }
 
@@ -701,7 +703,7 @@ int read_sector(int start)
    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) {
@@ -745,6 +747,8 @@ void cm206_bh(void)
        }
 }
 
+static DECLARE_TASKLET(cm206_tasklet, cm206_tasklet_func, 0);
+
 /* This command clears the dsb_possible_media_change flag, so we must 
  * retain it.
  */
@@ -1503,7 +1507,6 @@ int __init cm206_init(void)
        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 */
index 90446b0d75e5cc77506c5c854a00b2e8ecbc0992..fbc10eab16f471b8b4e65286e5e0f6b4ad32e4dd 100644 (file)
@@ -28,20 +28,17 @@ struct irqaction {
    
 enum {
        TIMER_BH = 0,
-       TQUEUE_BH,
-       DIGI_BH,
-       SERIAL_BH,
-       RISCOM8_BH,
-       SPECIALIX_BH,
-       AURORA_BH,
-       ESP_BH,
-       SCSI_BH,
-       IMMEDIATE_BH,
-       CYCLADES_BH,
-       CM206_BH,
-       JS_BH,
-       MACSERIAL_BH,
-       ISICOM_BH
+       TQUEUE_BH = 1,
+       DIGI_BH = 2,
+       SERIAL_BH = 3,
+       RISCOM8_BH = 4,
+       SPECIALIX_BH = 5,
+       AURORA_BH = 6,
+       ESP_BH = 7,
+       IMMEDIATE_BH = 9,
+       CYCLADES_BH = 10,
+       MACSERIAL_BH = 13,
+       ISICOM_BH = 14
 };
 
 #include <asm/hardirq.h>