diff options
Diffstat (limited to 'drivers/block')
-rw-r--r-- | drivers/block/README.fd | 7 | ||||
-rw-r--r-- | drivers/block/ataflop.c | 2 | ||||
-rw-r--r-- | drivers/block/floppy.c | 5 | ||||
-rw-r--r-- | drivers/block/ide-probe.c | 4 | ||||
-rw-r--r-- | drivers/block/ide.h | 3 | ||||
-rw-r--r-- | drivers/block/rd.c | 7 | ||||
-rw-r--r-- | drivers/block/swim3.c | 2 |
7 files changed, 21 insertions, 9 deletions
diff --git a/drivers/block/README.fd b/drivers/block/README.fd index 3ceb16c0b..d05120c59 100644 --- a/drivers/block/README.fd +++ b/drivers/block/README.fd @@ -179,6 +179,13 @@ floppy=fifo Uses a less noisy way to clear the disk change line (which doesn't involve seeks). Implied by daring. + floppy=<nr>,irq + Sets the floppy IRQ to <nr> instead of 6 + + floppy=<nr>,dma + Sets the floppy DMA channel to <nr> instead of 2 + + Supporting utilities and additional documentation: ================================================== diff --git a/drivers/block/ataflop.c b/drivers/block/ataflop.c index 7a08808f2..77add0b3a 100644 --- a/drivers/block/ataflop.c +++ b/drivers/block/ataflop.c @@ -1981,7 +1981,7 @@ static int floppy_release( struct inode * inode, struct file * filp ) if (!filp || (filp->f_mode & (2 | OPEN_WRITE_BIT))) /* if the file is mounted OR (writable now AND writable at open time) Linus: Does this cover all cases? */ - block_fsync (inode, filp); + block_fsync (filp, filp->f_dentry); if (fd_ref[drive] < 0) fd_ref[drive] = 0; diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index 04ea60ff8..7af5aeee1 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c @@ -3502,7 +3502,7 @@ static int floppy_release(struct inode * inode, struct file * filp) if (!filp || (filp->f_mode & (2 | OPEN_WRITE_BIT))) /* if the file is mounted OR (writable now AND writable at * open time) Linus: Does this cover all cases? */ - block_fsync(inode,filp); + block_fsync(filp, filp->f_dentry); if (UDRS->fd_ref < 0) UDRS->fd_ref=0; @@ -3865,6 +3865,9 @@ static struct param_table { { "all_drives", 0, &allowed_drive_mask, 0xff, 0 }, /* obsolete */ { "asus_pci", 0, &allowed_drive_mask, 0x33, 0}, + { "irq", 0, &FLOPPY_IRQ, 6, 0 }, + { "dma", 0, &FLOPPY_DMA, 2, 0 }, + { "daring", daring, 0, 1, 0}, { "two_fdc", 0, &FDC2, 0x370, 0 }, diff --git a/drivers/block/ide-probe.c b/drivers/block/ide-probe.c index 25b3d54fa..ddaf1b0c6 100644 --- a/drivers/block/ide-probe.c +++ b/drivers/block/ide-probe.c @@ -1,5 +1,5 @@ /* - * linux/drivers/block/ide-probe.c Version 1.01 Jan 26, 1997 + * linux/drivers/block/ide-probe.c Version 1.02 Jul 29, 1997 * * Copyright (C) 1994-1996 Linus Torvalds & authors (see below) */ @@ -38,6 +38,8 @@ * * Version 1.00 move drive probing code from ide.c to ide-probe.c * Version 1.01 fix compilation problem for m68k + * Version 1.02 increase WAIT_PIDENTIFY to avoid CD-ROM locking at boot + * by Andrea Arcangeli <arcangeli@mbox.queen.it> */ #undef REALLY_SLOW_IO /* most systems can safely undef this */ diff --git a/drivers/block/ide.h b/drivers/block/ide.h index ecfdc12ea..eb3f54a55 100644 --- a/drivers/block/ide.h +++ b/drivers/block/ide.h @@ -158,7 +158,8 @@ typedef unsigned char byte; /* used everywhere */ #else #define WAIT_READY (3*HZ/100) /* 30msec - should be instantaneous */ #endif /* CONFIG_APM */ -#define WAIT_PIDENTIFY (1*HZ) /* 1sec - should be less than 3ms (?) */ +#define WAIT_PIDENTIFY (10*HZ) /* 10sec - should be less than 3ms (?) + if all ATAPI CD is closed at boot */ #define WAIT_WORSTCASE (30*HZ) /* 30sec - worst case when spinning up */ #define WAIT_CMD (10*HZ) /* 10sec - maximum wait for an IRQ to happen */ #define WAIT_MIN_SLEEP (2*HZ/100) /* 20msec - minimum sleep time */ diff --git a/drivers/block/rd.c b/drivers/block/rd.c index b8239df9b..759dbbca8 100644 --- a/drivers/block/rd.c +++ b/drivers/block/rd.c @@ -360,7 +360,7 @@ identify_ramdisk_image(kdev_t device, struct file *fp, int start_block)) * Read block 0 to test for gzipped kernel */ if (fp->f_op->llseek) - fp->f_op->llseek(fp->f_dentry->d_inode, fp, start_block * BLOCK_SIZE, 0); + fp->f_op->llseek(fp, start_block * BLOCK_SIZE, 0); fp->f_pos = start_block * BLOCK_SIZE; fp->f_op->read(fp->f_dentry->d_inode, fp, buf, size); @@ -390,8 +390,7 @@ identify_ramdisk_image(kdev_t device, struct file *fp, int start_block)) * Read block 1 to test for minix and ext2 superblock */ if (fp->f_op->llseek) - fp->f_op->llseek(fp->f_dentry->d_inode, fp, - (start_block+1) * BLOCK_SIZE, 0); + fp->f_op->llseek(fp, (start_block+1) * BLOCK_SIZE, 0); fp->f_pos = (start_block+1) * BLOCK_SIZE; fp->f_op->read(fp->f_dentry->d_inode, fp, buf, size); @@ -421,7 +420,7 @@ identify_ramdisk_image(kdev_t device, struct file *fp, int start_block)) done: if (fp->f_op->llseek) - fp->f_op->llseek(fp->f_dentry->d_inode, fp, start_block * BLOCK_SIZE, 0); + fp->f_op->llseek(fp, start_block * BLOCK_SIZE, 0); fp->f_pos = start_block * BLOCK_SIZE; if ((nblocks > 0) && blk_size[MAJOR(device)]) { diff --git a/drivers/block/swim3.c b/drivers/block/swim3.c index 4dc442673..12be2e362 100644 --- a/drivers/block/swim3.c +++ b/drivers/block/swim3.c @@ -842,7 +842,7 @@ static int floppy_release(struct inode *inode, struct file *filp) return -ENXIO; fs = &floppy_states[0]; if (filp == 0 || (filp->f_mode & (2 | OPEN_WRITE_BIT))) - block_fsync(inode, filp); + block_fsync(filp, filp->f_dentry); sw = fs->swim3; if (fs->ref_count > 0 && --fs->ref_count == 0) { swim3_action(fs, MOTOR_OFF); |