diff options
-rw-r--r-- | drivers/scsi/NCR5380.c | 64 | ||||
-rw-r--r-- | drivers/scsi/NCR5380.h | 9 | ||||
-rw-r--r-- | drivers/scsi/atari_NCR5380.c | 65 | ||||
-rw-r--r-- | drivers/scsi/g_NCR5380.c | 45 | ||||
-rw-r--r-- | drivers/scsi/sun3_NCR5380.c | 69 |
5 files changed, 0 insertions, 252 deletions
diff --git a/drivers/scsi/NCR5380.c b/drivers/scsi/NCR5380.c index c4b80219868d..2bb4df0e5551 100644 --- a/drivers/scsi/NCR5380.c +++ b/drivers/scsi/NCR5380.c | |||
@@ -833,18 +833,6 @@ static int NCR5380_init(struct Scsi_Host *instance, int flags) | |||
833 | 833 | ||
834 | INIT_DELAYED_WORK(&hostdata->coroutine, NCR5380_main); | 834 | INIT_DELAYED_WORK(&hostdata->coroutine, NCR5380_main); |
835 | 835 | ||
836 | #ifdef NCR5380_STATS | ||
837 | for (i = 0; i < 8; ++i) { | ||
838 | hostdata->time_read[i] = 0; | ||
839 | hostdata->time_write[i] = 0; | ||
840 | hostdata->bytes_read[i] = 0; | ||
841 | hostdata->bytes_write[i] = 0; | ||
842 | } | ||
843 | hostdata->timebase = 0; | ||
844 | hostdata->pendingw = 0; | ||
845 | hostdata->pendingr = 0; | ||
846 | #endif | ||
847 | |||
848 | /* The CHECK code seems to break the 53C400. Will check it later maybe */ | 836 | /* The CHECK code seems to break the 53C400. Will check it later maybe */ |
849 | if (flags & FLAG_NCR53C400) | 837 | if (flags & FLAG_NCR53C400) |
850 | hostdata->flags = FLAG_HAS_LAST_BYTE_SENT | flags; | 838 | hostdata->flags = FLAG_HAS_LAST_BYTE_SENT | flags; |
@@ -943,25 +931,6 @@ static int NCR5380_queue_command_lck(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *) | |||
943 | } | 931 | } |
944 | #endif /* (NDEBUG & NDEBUG_NO_WRITE) */ | 932 | #endif /* (NDEBUG & NDEBUG_NO_WRITE) */ |
945 | 933 | ||
946 | #ifdef NCR5380_STATS | ||
947 | switch (cmd->cmnd[0]) { | ||
948 | case WRITE: | ||
949 | case WRITE_6: | ||
950 | case WRITE_10: | ||
951 | hostdata->time_write[cmd->device->id] -= (jiffies - hostdata->timebase); | ||
952 | hostdata->bytes_write[cmd->device->id] += scsi_bufflen(cmd); | ||
953 | hostdata->pendingw++; | ||
954 | break; | ||
955 | case READ: | ||
956 | case READ_6: | ||
957 | case READ_10: | ||
958 | hostdata->time_read[cmd->device->id] -= (jiffies - hostdata->timebase); | ||
959 | hostdata->bytes_read[cmd->device->id] += scsi_bufflen(cmd); | ||
960 | hostdata->pendingr++; | ||
961 | break; | ||
962 | } | ||
963 | #endif | ||
964 | |||
965 | /* | 934 | /* |
966 | * We use the host_scribble field as a pointer to the next command | 935 | * We use the host_scribble field as a pointer to the next command |
967 | * in a queue | 936 | * in a queue |
@@ -1207,35 +1176,6 @@ static irqreturn_t NCR5380_intr(int dummy, void *dev_id) | |||
1207 | 1176 | ||
1208 | #endif | 1177 | #endif |
1209 | 1178 | ||
1210 | /** | ||
1211 | * collect_stats - collect stats on a scsi command | ||
1212 | * @hostdata: adapter | ||
1213 | * @cmd: command being issued | ||
1214 | * | ||
1215 | * Update the statistical data by parsing the command in question | ||
1216 | */ | ||
1217 | |||
1218 | static void collect_stats(struct NCR5380_hostdata *hostdata, Scsi_Cmnd * cmd) | ||
1219 | { | ||
1220 | #ifdef NCR5380_STATS | ||
1221 | switch (cmd->cmnd[0]) { | ||
1222 | case WRITE: | ||
1223 | case WRITE_6: | ||
1224 | case WRITE_10: | ||
1225 | hostdata->time_write[scmd_id(cmd)] += (jiffies - hostdata->timebase); | ||
1226 | hostdata->pendingw--; | ||
1227 | break; | ||
1228 | case READ: | ||
1229 | case READ_6: | ||
1230 | case READ_10: | ||
1231 | hostdata->time_read[scmd_id(cmd)] += (jiffies - hostdata->timebase); | ||
1232 | hostdata->pendingr--; | ||
1233 | break; | ||
1234 | } | ||
1235 | #endif | ||
1236 | } | ||
1237 | |||
1238 | |||
1239 | /* | 1179 | /* |
1240 | * Function : int NCR5380_select (struct Scsi_Host *instance, Scsi_Cmnd *cmd) | 1180 | * Function : int NCR5380_select (struct Scsi_Host *instance, Scsi_Cmnd *cmd) |
1241 | * | 1181 | * |
@@ -1464,7 +1404,6 @@ part2: | |||
1464 | return -1; | 1404 | return -1; |
1465 | } | 1405 | } |
1466 | cmd->result = DID_BAD_TARGET << 16; | 1406 | cmd->result = DID_BAD_TARGET << 16; |
1467 | collect_stats(hostdata, cmd); | ||
1468 | cmd->scsi_done(cmd); | 1407 | cmd->scsi_done(cmd); |
1469 | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); | 1408 | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
1470 | dprintk(NDEBUG_SELECTION, "scsi%d : target did not respond within 250ms\n", instance->host_no); | 1409 | dprintk(NDEBUG_SELECTION, "scsi%d : target did not respond within 250ms\n", instance->host_no); |
@@ -2216,7 +2155,6 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) { | |||
2216 | cmd->next_link->tag = cmd->tag; | 2155 | cmd->next_link->tag = cmd->tag; |
2217 | cmd->result = cmd->SCp.Status | (cmd->SCp.Message << 8); | 2156 | cmd->result = cmd->SCp.Status | (cmd->SCp.Message << 8); |
2218 | dprintk(NDEBUG_LINKED, "scsi%d : target %d lun %llu linked request done, calling scsi_done().\n", instance->host_no, cmd->device->id, cmd->device->lun); | 2157 | dprintk(NDEBUG_LINKED, "scsi%d : target %d lun %llu linked request done, calling scsi_done().\n", instance->host_no, cmd->device->id, cmd->device->lun); |
2219 | collect_stats(hostdata, cmd); | ||
2220 | cmd->scsi_done(cmd); | 2158 | cmd->scsi_done(cmd); |
2221 | cmd = hostdata->connected; | 2159 | cmd = hostdata->connected; |
2222 | break; | 2160 | break; |
@@ -2268,7 +2206,6 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) { | |||
2268 | hostdata->issue_queue = (Scsi_Cmnd *) cmd; | 2206 | hostdata->issue_queue = (Scsi_Cmnd *) cmd; |
2269 | dprintk(NDEBUG_QUEUES, "scsi%d : REQUEST SENSE added to head of issue queue\n", instance->host_no); | 2207 | dprintk(NDEBUG_QUEUES, "scsi%d : REQUEST SENSE added to head of issue queue\n", instance->host_no); |
2270 | } else { | 2208 | } else { |
2271 | collect_stats(hostdata, cmd); | ||
2272 | cmd->scsi_done(cmd); | 2209 | cmd->scsi_done(cmd); |
2273 | } | 2210 | } |
2274 | 2211 | ||
@@ -2415,7 +2352,6 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) { | |||
2415 | hostdata->busy[cmd->device->id] &= ~(1 << (cmd->device->lun & 0xFF)); | 2352 | hostdata->busy[cmd->device->id] &= ~(1 << (cmd->device->lun & 0xFF)); |
2416 | hostdata->connected = NULL; | 2353 | hostdata->connected = NULL; |
2417 | cmd->result = DID_ERROR << 16; | 2354 | cmd->result = DID_ERROR << 16; |
2418 | collect_stats(hostdata, cmd); | ||
2419 | cmd->scsi_done(cmd); | 2355 | cmd->scsi_done(cmd); |
2420 | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); | 2356 | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
2421 | return; | 2357 | return; |
diff --git a/drivers/scsi/NCR5380.h b/drivers/scsi/NCR5380.h index 4b0c628952ee..d811775ffd9d 100644 --- a/drivers/scsi/NCR5380.h +++ b/drivers/scsi/NCR5380.h | |||
@@ -272,15 +272,6 @@ struct NCR5380_hostdata { | |||
272 | int select_time; /* timer in select for target response */ | 272 | int select_time; /* timer in select for target response */ |
273 | volatile Scsi_Cmnd *selecting; | 273 | volatile Scsi_Cmnd *selecting; |
274 | struct delayed_work coroutine; /* our co-routine */ | 274 | struct delayed_work coroutine; /* our co-routine */ |
275 | #ifdef NCR5380_STATS | ||
276 | unsigned timebase; /* Base for time calcs */ | ||
277 | long time_read[8]; /* time to do reads */ | ||
278 | long time_write[8]; /* time to do writes */ | ||
279 | unsigned long bytes_read[8]; /* bytes read */ | ||
280 | unsigned long bytes_write[8]; /* bytes written */ | ||
281 | unsigned pendingr; | ||
282 | unsigned pendingw; | ||
283 | #endif | ||
284 | struct scsi_eh_save ses; | 275 | struct scsi_eh_save ses; |
285 | }; | 276 | }; |
286 | 277 | ||
diff --git a/drivers/scsi/atari_NCR5380.c b/drivers/scsi/atari_NCR5380.c index f69d36327a7d..6177830ef0d9 100644 --- a/drivers/scsi/atari_NCR5380.c +++ b/drivers/scsi/atari_NCR5380.c | |||
@@ -888,34 +888,6 @@ static int NCR5380_queue_command_lck(Scsi_Cmnd *cmd, void (*done)(Scsi_Cmnd *)) | |||
888 | } | 888 | } |
889 | #endif /* (NDEBUG & NDEBUG_NO_WRITE) */ | 889 | #endif /* (NDEBUG & NDEBUG_NO_WRITE) */ |
890 | 890 | ||
891 | #ifdef NCR5380_STATS | ||
892 | # if 0 | ||
893 | if (!hostdata->connected && !hostdata->issue_queue && | ||
894 | !hostdata->disconnected_queue) { | ||
895 | hostdata->timebase = jiffies; | ||
896 | } | ||
897 | # endif | ||
898 | # ifdef NCR5380_STAT_LIMIT | ||
899 | if (scsi_bufflen(cmd) > NCR5380_STAT_LIMIT) | ||
900 | # endif | ||
901 | switch (cmd->cmnd[0]) { | ||
902 | case WRITE: | ||
903 | case WRITE_6: | ||
904 | case WRITE_10: | ||
905 | hostdata->time_write[cmd->device->id] -= (jiffies - hostdata->timebase); | ||
906 | hostdata->bytes_write[cmd->device->id] += scsi_bufflen(cmd); | ||
907 | hostdata->pendingw++; | ||
908 | break; | ||
909 | case READ: | ||
910 | case READ_6: | ||
911 | case READ_10: | ||
912 | hostdata->time_read[cmd->device->id] -= (jiffies - hostdata->timebase); | ||
913 | hostdata->bytes_read[cmd->device->id] += scsi_bufflen(cmd); | ||
914 | hostdata->pendingr++; | ||
915 | break; | ||
916 | } | ||
917 | #endif | ||
918 | |||
919 | /* | 891 | /* |
920 | * We use the host_scribble field as a pointer to the next command | 892 | * We use the host_scribble field as a pointer to the next command |
921 | * in a queue | 893 | * in a queue |
@@ -1309,31 +1281,6 @@ static irqreturn_t NCR5380_intr(int irq, void *dev_id) | |||
1309 | return IRQ_RETVAL(handled); | 1281 | return IRQ_RETVAL(handled); |
1310 | } | 1282 | } |
1311 | 1283 | ||
1312 | #ifdef NCR5380_STATS | ||
1313 | static void collect_stats(struct NCR5380_hostdata* hostdata, Scsi_Cmnd *cmd) | ||
1314 | { | ||
1315 | # ifdef NCR5380_STAT_LIMIT | ||
1316 | if (scsi_bufflen(cmd) > NCR5380_STAT_LIMIT) | ||
1317 | # endif | ||
1318 | switch (cmd->cmnd[0]) { | ||
1319 | case WRITE: | ||
1320 | case WRITE_6: | ||
1321 | case WRITE_10: | ||
1322 | hostdata->time_write[cmd->device->id] += (jiffies - hostdata->timebase); | ||
1323 | /*hostdata->bytes_write[cmd->device->id] += scsi_bufflen(cmd);*/ | ||
1324 | hostdata->pendingw--; | ||
1325 | break; | ||
1326 | case READ: | ||
1327 | case READ_6: | ||
1328 | case READ_10: | ||
1329 | hostdata->time_read[cmd->device->id] += (jiffies - hostdata->timebase); | ||
1330 | /*hostdata->bytes_read[cmd->device->id] += scsi_bufflen(cmd);*/ | ||
1331 | hostdata->pendingr--; | ||
1332 | break; | ||
1333 | } | ||
1334 | } | ||
1335 | #endif | ||
1336 | |||
1337 | /* | 1284 | /* |
1338 | * Function : int NCR5380_select (struct Scsi_Host *instance, Scsi_Cmnd *cmd) | 1285 | * Function : int NCR5380_select (struct Scsi_Host *instance, Scsi_Cmnd *cmd) |
1339 | * | 1286 | * |
@@ -1598,9 +1545,6 @@ static int NCR5380_select(struct Scsi_Host *instance, Scsi_Cmnd *cmd) | |||
1598 | return -1; | 1545 | return -1; |
1599 | } | 1546 | } |
1600 | cmd->result = DID_BAD_TARGET << 16; | 1547 | cmd->result = DID_BAD_TARGET << 16; |
1601 | #ifdef NCR5380_STATS | ||
1602 | collect_stats(hostdata, cmd); | ||
1603 | #endif | ||
1604 | #ifdef SUPPORT_TAGS | 1548 | #ifdef SUPPORT_TAGS |
1605 | cmd_free_tag(cmd); | 1549 | cmd_free_tag(cmd); |
1606 | #endif | 1550 | #endif |
@@ -2127,9 +2071,6 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) | |||
2127 | dprintk(NDEBUG_LINKED, "scsi%d: target %d lun %llu linked request " | 2071 | dprintk(NDEBUG_LINKED, "scsi%d: target %d lun %llu linked request " |
2128 | "done, calling scsi_done().\n", | 2072 | "done, calling scsi_done().\n", |
2129 | HOSTNO, cmd->device->id, cmd->device->lun); | 2073 | HOSTNO, cmd->device->id, cmd->device->lun); |
2130 | #ifdef NCR5380_STATS | ||
2131 | collect_stats(hostdata, cmd); | ||
2132 | #endif | ||
2133 | cmd->scsi_done(cmd); | 2074 | cmd->scsi_done(cmd); |
2134 | cmd = hostdata->connected; | 2075 | cmd = hostdata->connected; |
2135 | break; | 2076 | break; |
@@ -2209,9 +2150,6 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) | |||
2209 | dprintk(NDEBUG_QUEUES, "scsi%d: REQUEST SENSE added to head of " | 2150 | dprintk(NDEBUG_QUEUES, "scsi%d: REQUEST SENSE added to head of " |
2210 | "issue queue\n", H_NO(cmd)); | 2151 | "issue queue\n", H_NO(cmd)); |
2211 | } else { | 2152 | } else { |
2212 | #ifdef NCR5380_STATS | ||
2213 | collect_stats(hostdata, cmd); | ||
2214 | #endif | ||
2215 | cmd->scsi_done(cmd); | 2153 | cmd->scsi_done(cmd); |
2216 | } | 2154 | } |
2217 | 2155 | ||
@@ -2396,9 +2334,6 @@ static void NCR5380_information_transfer(struct Scsi_Host *instance) | |||
2396 | #endif | 2334 | #endif |
2397 | hostdata->connected = NULL; | 2335 | hostdata->connected = NULL; |
2398 | cmd->result = DID_ERROR << 16; | 2336 | cmd->result = DID_ERROR << 16; |
2399 | #ifdef NCR5380_STATS | ||
2400 | collect_stats(hostdata, cmd); | ||
2401 | #endif | ||
2402 | cmd->scsi_done(cmd); | 2337 | cmd->scsi_done(cmd); |
2403 | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); | 2338 | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
2404 | falcon_release_lock_if_possible(hostdata); | 2339 | falcon_release_lock_if_possible(hostdata); |
diff --git a/drivers/scsi/g_NCR5380.c b/drivers/scsi/g_NCR5380.c index a2b70fb4c67f..9040023ed1c0 100644 --- a/drivers/scsi/g_NCR5380.c +++ b/drivers/scsi/g_NCR5380.c | |||
@@ -69,8 +69,6 @@ | |||
69 | #define NCR53C400_PSEUDO_DMA 1 | 69 | #define NCR53C400_PSEUDO_DMA 1 |
70 | #define PSEUDO_DMA | 70 | #define PSEUDO_DMA |
71 | #define NCR53C400 | 71 | #define NCR53C400 |
72 | #define NCR5380_STATS | ||
73 | #undef NCR5380_STAT_LIMIT | ||
74 | #endif | 72 | #endif |
75 | 73 | ||
76 | #include <asm/io.h> | 74 | #include <asm/io.h> |
@@ -779,9 +777,6 @@ static int generic_NCR5380_show_info(struct seq_file *m, struct Scsi_Host *scsi_ | |||
779 | int i; | 777 | int i; |
780 | Scsi_Cmnd *ptr; | 778 | Scsi_Cmnd *ptr; |
781 | struct NCR5380_hostdata *hostdata; | 779 | struct NCR5380_hostdata *hostdata; |
782 | #ifdef NCR5380_STATS | ||
783 | struct scsi_device *dev; | ||
784 | #endif | ||
785 | 780 | ||
786 | NCR5380_setup(scsi_ptr); | 781 | NCR5380_setup(scsi_ptr); |
787 | hostdata = (struct NCR5380_hostdata *) scsi_ptr->hostdata; | 782 | hostdata = (struct NCR5380_hostdata *) scsi_ptr->hostdata; |
@@ -805,46 +800,6 @@ static int generic_NCR5380_show_info(struct seq_file *m, struct Scsi_Host *scsi_ | |||
805 | else | 800 | else |
806 | PRINTP("on interrupt %d\n" ANDP scsi_ptr->irq); | 801 | PRINTP("on interrupt %d\n" ANDP scsi_ptr->irq); |
807 | 802 | ||
808 | #ifdef NCR5380_STATS | ||
809 | if (hostdata->connected || hostdata->issue_queue || hostdata->disconnected_queue) | ||
810 | PRINTP("There are commands pending, transfer rates may be crud\n"); | ||
811 | if (hostdata->pendingr) | ||
812 | PRINTP(" %d pending reads" ANDP hostdata->pendingr); | ||
813 | if (hostdata->pendingw) | ||
814 | PRINTP(" %d pending writes" ANDP hostdata->pendingw); | ||
815 | if (hostdata->pendingr || hostdata->pendingw) | ||
816 | PRINTP("\n"); | ||
817 | shost_for_each_device(dev, scsi_ptr) { | ||
818 | unsigned long br = hostdata->bytes_read[dev->id]; | ||
819 | unsigned long bw = hostdata->bytes_write[dev->id]; | ||
820 | long tr = hostdata->time_read[dev->id] / HZ; | ||
821 | long tw = hostdata->time_write[dev->id] / HZ; | ||
822 | |||
823 | PRINTP(" T:%d %s " ANDP dev->id ANDP scsi_device_type(dev->type)); | ||
824 | for (i = 0; i < 8; i++) | ||
825 | if (dev->vendor[i] >= 0x20) | ||
826 | seq_putc(m, dev->vendor[i]); | ||
827 | seq_putc(m, ' '); | ||
828 | for (i = 0; i < 16; i++) | ||
829 | if (dev->model[i] >= 0x20) | ||
830 | seq_putc(m, dev->model[i]); | ||
831 | seq_putc(m, ' '); | ||
832 | for (i = 0; i < 4; i++) | ||
833 | if (dev->rev[i] >= 0x20) | ||
834 | seq_putc(m, dev->rev[i]); | ||
835 | seq_putc(m, ' '); | ||
836 | |||
837 | PRINTP("\n%10ld kb read in %5ld secs" ANDP br / 1024 ANDP tr); | ||
838 | if (tr) | ||
839 | PRINTP(" @ %5ld bps" ANDP br / tr); | ||
840 | |||
841 | PRINTP("\n%10ld kb written in %5ld secs" ANDP bw / 1024 ANDP tw); | ||
842 | if (tw) | ||
843 | PRINTP(" @ %5ld bps" ANDP bw / tw); | ||
844 | PRINTP("\n"); | ||
845 | } | ||
846 | #endif | ||
847 | |||
848 | status = NCR5380_read(STATUS_REG); | 803 | status = NCR5380_read(STATUS_REG); |
849 | if (!(status & SR_REQ)) | 804 | if (!(status & SR_REQ)) |
850 | PRINTP("REQ not asserted, phase unknown.\n"); | 805 | PRINTP("REQ not asserted, phase unknown.\n"); |
diff --git a/drivers/scsi/sun3_NCR5380.c b/drivers/scsi/sun3_NCR5380.c index f52bda71dfb9..b00d97557cff 100644 --- a/drivers/scsi/sun3_NCR5380.c +++ b/drivers/scsi/sun3_NCR5380.c | |||
@@ -836,36 +836,6 @@ static int NCR5380_queue_command_lck(struct scsi_cmnd *cmd, | |||
836 | } | 836 | } |
837 | #endif /* (NDEBUG & NDEBUG_NO_WRITE) */ | 837 | #endif /* (NDEBUG & NDEBUG_NO_WRITE) */ |
838 | 838 | ||
839 | |||
840 | #ifdef NCR5380_STATS | ||
841 | # if 0 | ||
842 | if (!hostdata->connected && !hostdata->issue_queue && | ||
843 | !hostdata->disconnected_queue) { | ||
844 | hostdata->timebase = jiffies; | ||
845 | } | ||
846 | # endif | ||
847 | # ifdef NCR5380_STAT_LIMIT | ||
848 | if (scsi_bufflen(cmd) > NCR5380_STAT_LIMIT) | ||
849 | # endif | ||
850 | switch (cmd->cmnd[0]) | ||
851 | { | ||
852 | case WRITE: | ||
853 | case WRITE_6: | ||
854 | case WRITE_10: | ||
855 | hostdata->time_write[cmd->device->id] -= (jiffies - hostdata->timebase); | ||
856 | hostdata->bytes_write[cmd->device->id] += scsi_bufflen(cmd); | ||
857 | hostdata->pendingw++; | ||
858 | break; | ||
859 | case READ: | ||
860 | case READ_6: | ||
861 | case READ_10: | ||
862 | hostdata->time_read[cmd->device->id] -= (jiffies - hostdata->timebase); | ||
863 | hostdata->bytes_read[cmd->device->id] += scsi_bufflen(cmd); | ||
864 | hostdata->pendingr++; | ||
865 | break; | ||
866 | } | ||
867 | #endif | ||
868 | |||
869 | /* | 839 | /* |
870 | * We use the host_scribble field as a pointer to the next command | 840 | * We use the host_scribble field as a pointer to the next command |
871 | * in a queue | 841 | * in a queue |
@@ -1246,33 +1216,6 @@ static irqreturn_t NCR5380_intr (int irq, void *dev_id) | |||
1246 | return IRQ_RETVAL(handled); | 1216 | return IRQ_RETVAL(handled); |
1247 | } | 1217 | } |
1248 | 1218 | ||
1249 | #ifdef NCR5380_STATS | ||
1250 | static void collect_stats(struct NCR5380_hostdata *hostdata, | ||
1251 | struct scsi_cmnd *cmd) | ||
1252 | { | ||
1253 | # ifdef NCR5380_STAT_LIMIT | ||
1254 | if (scsi_bufflen(cmd) > NCR5380_STAT_LIMIT) | ||
1255 | # endif | ||
1256 | switch (cmd->cmnd[0]) | ||
1257 | { | ||
1258 | case WRITE: | ||
1259 | case WRITE_6: | ||
1260 | case WRITE_10: | ||
1261 | hostdata->time_write[cmd->device->id] += (jiffies - hostdata->timebase); | ||
1262 | /*hostdata->bytes_write[cmd->device->id] += scsi_bufflen(cmd);*/ | ||
1263 | hostdata->pendingw--; | ||
1264 | break; | ||
1265 | case READ: | ||
1266 | case READ_6: | ||
1267 | case READ_10: | ||
1268 | hostdata->time_read[cmd->device->id] += (jiffies - hostdata->timebase); | ||
1269 | /*hostdata->bytes_read[cmd->device->id] += scsi_bufflen(cmd);*/ | ||
1270 | hostdata->pendingr--; | ||
1271 | break; | ||
1272 | } | ||
1273 | } | ||
1274 | #endif | ||
1275 | |||
1276 | /* | 1219 | /* |
1277 | * Function : int NCR5380_select(struct Scsi_Host *instance, | 1220 | * Function : int NCR5380_select(struct Scsi_Host *instance, |
1278 | * struct scsi_cmnd *cmd) | 1221 | * struct scsi_cmnd *cmd) |
@@ -1538,9 +1481,6 @@ static int NCR5380_select(struct Scsi_Host *instance, struct scsi_cmnd *cmd) | |||
1538 | return -1; | 1481 | return -1; |
1539 | } | 1482 | } |
1540 | cmd->result = DID_BAD_TARGET << 16; | 1483 | cmd->result = DID_BAD_TARGET << 16; |
1541 | #ifdef NCR5380_STATS | ||
1542 | collect_stats(hostdata, cmd); | ||
1543 | #endif | ||
1544 | #ifdef SUPPORT_TAGS | 1484 | #ifdef SUPPORT_TAGS |
1545 | cmd_free_tag( cmd ); | 1485 | cmd_free_tag( cmd ); |
1546 | #endif | 1486 | #endif |
@@ -2090,9 +2030,6 @@ static void NCR5380_information_transfer (struct Scsi_Host *instance) | |||
2090 | dprintk(NDEBUG_LINKED, "scsi%d: target %d lun %llu linked request " | 2030 | dprintk(NDEBUG_LINKED, "scsi%d: target %d lun %llu linked request " |
2091 | "done, calling scsi_done().\n", | 2031 | "done, calling scsi_done().\n", |
2092 | HOSTNO, cmd->device->id, cmd->device->lun); | 2032 | HOSTNO, cmd->device->id, cmd->device->lun); |
2093 | #ifdef NCR5380_STATS | ||
2094 | collect_stats(hostdata, cmd); | ||
2095 | #endif | ||
2096 | cmd->scsi_done(cmd); | 2033 | cmd->scsi_done(cmd); |
2097 | cmd = hostdata->connected; | 2034 | cmd = hostdata->connected; |
2098 | break; | 2035 | break; |
@@ -2174,9 +2111,6 @@ static void NCR5380_information_transfer (struct Scsi_Host *instance) | |||
2174 | dprintk(NDEBUG_QUEUES, "scsi%d: REQUEST SENSE added to head of " | 2111 | dprintk(NDEBUG_QUEUES, "scsi%d: REQUEST SENSE added to head of " |
2175 | "issue queue\n", H_NO(cmd)); | 2112 | "issue queue\n", H_NO(cmd)); |
2176 | } else { | 2113 | } else { |
2177 | #ifdef NCR5380_STATS | ||
2178 | collect_stats(hostdata, cmd); | ||
2179 | #endif | ||
2180 | cmd->scsi_done(cmd); | 2114 | cmd->scsi_done(cmd); |
2181 | } | 2115 | } |
2182 | 2116 | ||
@@ -2359,9 +2293,6 @@ static void NCR5380_information_transfer (struct Scsi_Host *instance) | |||
2359 | #endif | 2293 | #endif |
2360 | hostdata->connected = NULL; | 2294 | hostdata->connected = NULL; |
2361 | cmd->result = DID_ERROR << 16; | 2295 | cmd->result = DID_ERROR << 16; |
2362 | #ifdef NCR5380_STATS | ||
2363 | collect_stats(hostdata, cmd); | ||
2364 | #endif | ||
2365 | cmd->scsi_done(cmd); | 2296 | cmd->scsi_done(cmd); |
2366 | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); | 2297 | NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask); |
2367 | return; | 2298 | return; |