X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fscsi%2Fpcmcia%2Fnsp_cs.c;h=496c412c88546a854c9d13223c5d7123dc57a38b;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=75648dcb6843b48b57e0d341e356535303978ab9;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/drivers/scsi/pcmcia/nsp_cs.c b/drivers/scsi/pcmcia/nsp_cs.c index 75648dcb6..496c412c8 100644 --- a/drivers/scsi/pcmcia/nsp_cs.c +++ b/drivers/scsi/pcmcia/nsp_cs.c @@ -72,21 +72,13 @@ MODULE_LICENSE("GPL"); /*====================================================================*/ /* Parameters that can be set with 'insmod' */ -static unsigned int irq_mask = 0xffff; -MODULE_PARM (irq_mask, "i"); -MODULE_PARM_DESC(irq_mask, "IRQ mask bits (default: 0xffff)"); - -static int irq_list[4] = { -1 }; -MODULE_PARM (irq_list, "1-4i"); -MODULE_PARM_DESC(irq_list, "Use specified IRQ number. (default: auto select)"); - static int nsp_burst_mode = BURST_MEM32; -MODULE_PARM (nsp_burst_mode, "i"); +module_param(nsp_burst_mode, int, 0); MODULE_PARM_DESC(nsp_burst_mode, "Burst transfer mode (0=io8, 1=io32, 2=mem32(default))"); /* Release IO ports after configuration? */ static int free_ports = 0; -MODULE_PARM (free_ports, "i"); +module_param(free_ports, bool, 0); MODULE_PARM_DESC(free_ports, "Release IO ports after configuration? (default: 0 (=no))"); /* /usr/src/linux/drivers/scsi/hosts.h */ @@ -226,7 +218,7 @@ static int nsp_queuecommand(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *)) nsp_msg(KERN_DEBUG, "CurrentSC!=NULL this can't be happen"); SCpnt->result = DID_BAD_TARGET << 16; nsp_scsi_done(SCpnt); - return SCSI_MLQUEUE_HOST_BUSY; + return 0; } #if 0 @@ -273,7 +265,7 @@ static int nsp_queuecommand(Scsi_Cmnd *SCpnt, void (*done)(Scsi_Cmnd *)) nsp_dbg(NSP_DEBUG_QUEUECOMMAND, "selection fail"); SCpnt->result = DID_BUS_BUSY << 16; nsp_scsi_done(SCpnt); - return SCSI_MLQUEUE_DEVICE_BUSY; + return 0; } @@ -1625,7 +1617,7 @@ static dev_link_t *nsp_cs_attach(void) scsi_info_t *info; client_reg_t client_reg; dev_link_t *link; - int ret, i; + int ret; nsp_hw_data *data = &nsp_data_base; nsp_dbg(NSP_DEBUG_INIT, "in"); @@ -1647,14 +1639,7 @@ static dev_link_t *nsp_cs_attach(void) /* Interrupt setup */ link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; - link->irq.IRQInfo1 = IRQ_INFO2_VALID | IRQ_LEVEL_ID; - if (irq_list[0] == -1) { - link->irq.IRQInfo2 = irq_mask; - } else { - for (i = 0; i < 4; i++) { - link->irq.IRQInfo2 |= BIT(irq_list[i]); - } - } + link->irq.IRQInfo1 = IRQ_LEVEL_ID; /* Interrupt handler */ link->irq.Handler = &nspintr; @@ -1672,7 +1657,6 @@ static dev_link_t *nsp_cs_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.Attributes = INFO_IO_CLIENT | INFO_CARD_SHARE; client_reg.EventMask = CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | @@ -2194,10 +2178,9 @@ static void __exit nsp_cs_exit(void) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,68)) pcmcia_unregister_driver(&nsp_driver); + BUG_ON(dev_list != NULL); #else unregister_pcmcia_driver(&dev_info); -#endif - /* XXX: this really needs to move into generic code.. */ while (dev_list != NULL) { if (dev_list->state & DEV_CONFIG) { @@ -2205,6 +2188,7 @@ static void __exit nsp_cs_exit(void) } nsp_cs_detach(dev_list); } +#endif }