git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
drivers
/
scsi
/
NCR53c406a.c
diff --git
a/drivers/scsi/NCR53c406a.c
b/drivers/scsi/NCR53c406a.c
index
c685d54
..
ae37d3a
100644
(file)
--- a/
drivers/scsi/NCR53c406a.c
+++ b/
drivers/scsi/NCR53c406a.c
@@
-62,7
+62,7
@@
#define SYNC_MODE 0 /* Synchronous transfer mode */
#define SYNC_MODE 0 /* Synchronous transfer mode */
-#if DEBUG
+#if
def
DEBUG
#undef NCR53C406A_DEBUG
#define NCR53C406A_DEBUG 1
#endif
#undef NCR53C406A_DEBUG
#define NCR53C406A_DEBUG 1
#endif
@@
-182,13
+182,13
@@
static int irq_probe(void);
static void *bios_base;
#endif
static void *bios_base;
#endif
-#if PORT_BASE
+#if
def
PORT_BASE
static int port_base = PORT_BASE;
#else
static int port_base;
#endif
static int port_base = PORT_BASE;
#else
static int port_base;
#endif
-#if IRQ_LEV
+#if
def
IRQ_LEV
static int irq_level = IRQ_LEV;
#else
static int irq_level = -1; /* 0 is 'no irq', so use -1 for 'uninitialized' */
static int irq_level = IRQ_LEV;
#else
static int irq_level = -1; /* 0 is 'no irq', so use -1 for 'uninitialized' */
@@
-447,7
+447,7
@@
static __inline__ int NCR53c406a_pio_write(unsigned char *request, unsigned int
}
#endif /* USE_PIO */
}
#endif /* USE_PIO */
-static int __init NCR53c406a_detect(
Scsi_Host_T
emplate * tpnt)
+static int __init NCR53c406a_detect(
struct scsi_host_t
emplate * tpnt)
{
int present = 0;
struct Scsi_Host *shpnt = NULL;
{
int present = 0;
struct Scsi_Host *shpnt = NULL;
@@
-710,7
+710,7
@@
static int NCR53c406a_queue(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
/* We are locked here already by the mid layer */
REG0;
/* We are locked here already by the mid layer */
REG0;
- outb(
SCpnt->device->id, DEST_ID);
/* set destination */
+ outb(
scmd_id(SCpnt), DEST_ID);
/* set destination */
outb(FLUSH_FIFO, CMD_REG); /* reset the fifos */
for (i = 0; i < SCpnt->cmd_len; i++) {
outb(FLUSH_FIFO, CMD_REG); /* reset the fifos */
for (i = 0; i < SCpnt->cmd_len; i++) {
@@
-722,15
+722,12
@@
static int NCR53c406a_queue(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
return 0;
}
return 0;
}
-static int NCR53c406a_abort(Scsi_Cmnd * SCpnt)
-{
- DEB(printk("NCR53c406a_abort called\n"));
- return FAILED; /* Don't know how to abort */
-}
-
static int NCR53c406a_host_reset(Scsi_Cmnd * SCpnt)
{
DEB(printk("NCR53c406a_reset called\n"));
static int NCR53c406a_host_reset(Scsi_Cmnd * SCpnt)
{
DEB(printk("NCR53c406a_reset called\n"));
+
+ spin_lock_irq(SCpnt->device->host->host_lock);
+
outb(C4_IMG, CONFIG4); /* Select reg set 0 */
outb(CHIP_RESET, CMD_REG);
outb(SCSI_NOP, CMD_REG); /* required after reset */
outb(C4_IMG, CONFIG4); /* Select reg set 0 */
outb(CHIP_RESET, CMD_REG);
outb(SCSI_NOP, CMD_REG); /* required after reset */
@@
-738,17
+735,10
@@
static int NCR53c406a_host_reset(Scsi_Cmnd * SCpnt)
chip_init();
rtrc(2);
chip_init();
rtrc(2);
- return SUCCESS;
-}
-static int NCR53c406a_device_reset(Scsi_Cmnd * SCpnt)
-{
- return FAILED;
-}
+ spin_unlock_irq(SCpnt->device->host->host_lock);
-static int NCR53c406a_bus_reset(Scsi_Cmnd * SCpnt)
-{
- return FAILED;
+ return SUCCESS;
}
static int NCR53c406a_biosparm(struct scsi_device *disk,
}
static int NCR53c406a_biosparm(struct scsi_device *disk,
@@
-1067,7
+1057,7
@@
MODULE_LICENSE("GPL");
* Use SG_NONE if DMA mode is enabled!
*/
* Use SG_NONE if DMA mode is enabled!
*/
-static
Scsi_Host_Template driver_template =
+static
struct scsi_host_template driver_template =
{
.proc_name = "NCR53c406a" /* proc_name */,
.name = "NCR53c406a" /* name */,
{
.proc_name = "NCR53c406a" /* proc_name */,
.name = "NCR53c406a" /* name */,
@@
-1075,9
+1065,6
@@
static Scsi_Host_Template driver_template =
.release = NCR53c406a_release,
.info = NCR53c406a_info /* info */,
.queuecommand = NCR53c406a_queue /* queuecommand */,
.release = NCR53c406a_release,
.info = NCR53c406a_info /* info */,
.queuecommand = NCR53c406a_queue /* queuecommand */,
- .eh_abort_handler = NCR53c406a_abort /* abort */,
- .eh_bus_reset_handler = NCR53c406a_bus_reset /* reset */,
- .eh_device_reset_handler = NCR53c406a_device_reset /* reset */,
.eh_host_reset_handler = NCR53c406a_host_reset /* reset */,
.bios_param = NCR53c406a_biosparm /* biosparm */,
.can_queue = 1 /* can_queue */,
.eh_host_reset_handler = NCR53c406a_host_reset /* reset */,
.bios_param = NCR53c406a_biosparm /* biosparm */,
.can_queue = 1 /* can_queue */,