aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/NCR53c406a.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/NCR53c406a.c')
-rw-r--r--drivers/scsi/NCR53c406a.c27
1 files changed, 7 insertions, 20 deletions
diff --git a/drivers/scsi/NCR53c406a.c b/drivers/scsi/NCR53c406a.c
index c685d546f838..79ae73b23680 100644
--- a/drivers/scsi/NCR53c406a.c
+++ b/drivers/scsi/NCR53c406a.c
@@ -182,13 +182,13 @@ static int irq_probe(void);
182static void *bios_base; 182static void *bios_base;
183#endif 183#endif
184 184
185#if PORT_BASE 185#ifdef PORT_BASE
186static int port_base = PORT_BASE; 186static int port_base = PORT_BASE;
187#else 187#else
188static int port_base; 188static int port_base;
189#endif 189#endif
190 190
191#if IRQ_LEV 191#ifdef IRQ_LEV
192static int irq_level = IRQ_LEV; 192static int irq_level = IRQ_LEV;
193#else 193#else
194static int irq_level = -1; /* 0 is 'no irq', so use -1 for 'uninitialized' */ 194static int irq_level = -1; /* 0 is 'no irq', so use -1 for 'uninitialized' */
@@ -722,15 +722,12 @@ static int NCR53c406a_queue(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
722 return 0; 722 return 0;
723} 723}
724 724
725static int NCR53c406a_abort(Scsi_Cmnd * SCpnt)
726{
727 DEB(printk("NCR53c406a_abort called\n"));
728 return FAILED; /* Don't know how to abort */
729}
730
731static int NCR53c406a_host_reset(Scsi_Cmnd * SCpnt) 725static int NCR53c406a_host_reset(Scsi_Cmnd * SCpnt)
732{ 726{
733 DEB(printk("NCR53c406a_reset called\n")); 727 DEB(printk("NCR53c406a_reset called\n"));
728
729 spin_lock_irq(SCpnt->device->host->host_lock);
730
734 outb(C4_IMG, CONFIG4); /* Select reg set 0 */ 731 outb(C4_IMG, CONFIG4); /* Select reg set 0 */
735 outb(CHIP_RESET, CMD_REG); 732 outb(CHIP_RESET, CMD_REG);
736 outb(SCSI_NOP, CMD_REG); /* required after reset */ 733 outb(SCSI_NOP, CMD_REG); /* required after reset */
@@ -738,17 +735,10 @@ static int NCR53c406a_host_reset(Scsi_Cmnd * SCpnt)
738 chip_init(); 735 chip_init();
739 736
740 rtrc(2); 737 rtrc(2);
741 return SUCCESS;
742}
743 738
744static int NCR53c406a_device_reset(Scsi_Cmnd * SCpnt) 739 spin_unlock_irq(SCpnt->device->host->host_lock);
745{
746 return FAILED;
747}
748 740
749static int NCR53c406a_bus_reset(Scsi_Cmnd * SCpnt) 741 return SUCCESS;
750{
751 return FAILED;
752} 742}
753 743
754static int NCR53c406a_biosparm(struct scsi_device *disk, 744static int NCR53c406a_biosparm(struct scsi_device *disk,
@@ -1075,9 +1065,6 @@ static Scsi_Host_Template driver_template =
1075 .release = NCR53c406a_release, 1065 .release = NCR53c406a_release,
1076 .info = NCR53c406a_info /* info */, 1066 .info = NCR53c406a_info /* info */,
1077 .queuecommand = NCR53c406a_queue /* queuecommand */, 1067 .queuecommand = NCR53c406a_queue /* queuecommand */,
1078 .eh_abort_handler = NCR53c406a_abort /* abort */,
1079 .eh_bus_reset_handler = NCR53c406a_bus_reset /* reset */,
1080 .eh_device_reset_handler = NCR53c406a_device_reset /* reset */,
1081 .eh_host_reset_handler = NCR53c406a_host_reset /* reset */, 1068 .eh_host_reset_handler = NCR53c406a_host_reset /* reset */,
1082 .bios_param = NCR53c406a_biosparm /* biosparm */, 1069 .bios_param = NCR53c406a_biosparm /* biosparm */,
1083 .can_queue = 1 /* can_queue */, 1070 .can_queue = 1 /* can_queue */,