X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fblock%2Fparide%2Fpcd.c;h=c852eed91e4b6d82cdea3950271abc17e7f4762d;hb=97bf2856c6014879bd04983a3e9dfcdac1e7fe85;hp=4ab5efad0fe599e6f549cfc50a20c9d7a4d98516;hpb=9213980e6a70d8473e0ffd4b39ab5b6caaba9ff5;p=linux-2.6.git diff --git a/drivers/block/paride/pcd.c b/drivers/block/paride/pcd.c index 4ab5efad0..c852eed91 100644 --- a/drivers/block/paride/pcd.c +++ b/drivers/block/paride/pcd.c @@ -142,34 +142,14 @@ enum {D_PRT, D_PRO, D_UNI, D_MOD, D_SLV, D_DLY}; static spinlock_t pcd_lock; -#ifndef MODULE - -#include "setup.h" - -static STT pcd_stt[6] = { - {"drive0", 6, drive0}, - {"drive1", 6, drive1}, - {"drive2", 6, drive2}, - {"drive3", 6, drive3}, - {"disable", 1, &disable}, - {"nice", 1, &nice} -}; - -void pcd_setup(char *str, int *ints) -{ - generic_setup(pcd_stt, 6, str); -} - -#endif - -MODULE_PARM(verbose, "i"); -MODULE_PARM(major, "i"); -MODULE_PARM(name, "s"); -MODULE_PARM(nice, "i"); -MODULE_PARM(drive0, "1-6i"); -MODULE_PARM(drive1, "1-6i"); -MODULE_PARM(drive2, "1-6i"); -MODULE_PARM(drive3, "1-6i"); +module_param(verbose, bool, 0644); +module_param(major, int, 0); +module_param(name, charp, 0); +module_param(nice, int, 0); +module_param_array(drive0, int, NULL, 0); +module_param_array(drive1, int, NULL, 0); +module_param_array(drive2, int, NULL, 0); +module_param_array(drive3, int, NULL, 0); #include "paride.h" #include "pseudo.h" @@ -218,7 +198,7 @@ struct pcd_unit { struct gendisk *disk; }; -struct pcd_unit pcd[PCD_UNITS]; +static struct pcd_unit pcd[PCD_UNITS]; static char pcd_scratch[64]; static char pcd_buffer[2048]; /* raw block buffer */ @@ -259,7 +239,7 @@ static int pcd_block_ioctl(struct inode *inode, struct file *file, unsigned cmd, unsigned long arg) { struct pcd_unit *cd = inode->i_bdev->bd_disk->private_data; - return cdrom_ioctl(&cd->info, inode, cmd, arg); + return cdrom_ioctl(file, &cd->info, inode, cmd, arg); } static int pcd_block_media_changed(struct gendisk *disk) @@ -536,8 +516,7 @@ static int pcd_tray_move(struct cdrom_device_info *cdi, int position) static void pcd_sleep(int cs) { - current->state = TASK_INTERRUPTIBLE; - schedule_timeout(cs); + schedule_timeout_interruptible(cs); } static int pcd_reset(struct pcd_unit *cd) @@ -752,7 +731,7 @@ static void do_pcd_request(request_queue_t * q) pcd_count = pcd_req->current_nr_sectors; pcd_buf = pcd_req->buffer; pcd_busy = 1; - ps_set_intr(do_pcd_read, 0, 0, nice); + ps_set_intr(do_pcd_read, NULL, 0, nice); return; } else end_request(pcd_req, 0); @@ -933,12 +912,12 @@ static int __init pcd_init(void) int unit; if (disable) - return -1; + return -EINVAL; pcd_init_units(); if (pcd_detect()) - return -1; + return -ENODEV; /* get the atapi capabilities page */ pcd_probe_capabilities(); @@ -946,7 +925,7 @@ static int __init pcd_init(void) if (register_blkdev(major, name)) { for (unit = 0, cd = pcd; unit < PCD_UNITS; unit++, cd++) put_disk(cd->disk); - return -1; + return -EBUSY; } pcd_queue = blk_init_queue(do_pcd_request, &pcd_lock); @@ -954,7 +933,7 @@ static int __init pcd_init(void) unregister_blkdev(major, name); for (unit = 0, cd = pcd; unit < PCD_UNITS; unit++, cd++) put_disk(cd->disk); - return -1; + return -ENOMEM; } for (unit = 0, cd = pcd; unit < PCD_UNITS; unit++, cd++) {