diff options
author | David Woodhouse <dwmw2@shinybook.infradead.org> | 2005-08-09 11:51:35 -0400 |
---|---|---|
committer | David Woodhouse <dwmw2@shinybook.infradead.org> | 2005-08-09 11:51:35 -0400 |
commit | c973b112c76c9d8fd042991128f218a738cc8d0a (patch) | |
tree | e813b0da5d0a0e19e06de6462d145a29ad683026 /drivers/scsi | |
parent | c5fbc3966f48279dbebfde10248c977014aa9988 (diff) | |
parent | 00dd1e433967872f3997a45d5adf35056fdf2f56 (diff) |
Merge with /shiny/git/linux-2.6/.git
Diffstat (limited to 'drivers/scsi')
29 files changed, 111 insertions, 85 deletions
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig index 96df148ed969..f1e8c4223ed1 100644 --- a/drivers/scsi/Kconfig +++ b/drivers/scsi/Kconfig | |||
@@ -424,7 +424,7 @@ config SCSI_IN2000 | |||
424 | source "drivers/scsi/megaraid/Kconfig.megaraid" | 424 | source "drivers/scsi/megaraid/Kconfig.megaraid" |
425 | 425 | ||
426 | config SCSI_SATA | 426 | config SCSI_SATA |
427 | bool "Serial ATA (SATA) support" | 427 | tristate "Serial ATA (SATA) support" |
428 | depends on SCSI | 428 | depends on SCSI |
429 | help | 429 | help |
430 | This driver family supports Serial ATA host controllers | 430 | This driver family supports Serial ATA host controllers |
diff --git a/drivers/scsi/NCR53c406a.c b/drivers/scsi/NCR53c406a.c index b2002ba6e2aa..79ae73b23680 100644 --- a/drivers/scsi/NCR53c406a.c +++ b/drivers/scsi/NCR53c406a.c | |||
@@ -182,13 +182,13 @@ static int irq_probe(void); | |||
182 | static void *bios_base; | 182 | static void *bios_base; |
183 | #endif | 183 | #endif |
184 | 184 | ||
185 | #if PORT_BASE | 185 | #ifdef PORT_BASE |
186 | static int port_base = PORT_BASE; | 186 | static int port_base = PORT_BASE; |
187 | #else | 187 | #else |
188 | static int port_base; | 188 | static int port_base; |
189 | #endif | 189 | #endif |
190 | 190 | ||
191 | #if IRQ_LEV | 191 | #ifdef IRQ_LEV |
192 | static int irq_level = IRQ_LEV; | 192 | static int irq_level = IRQ_LEV; |
193 | #else | 193 | #else |
194 | static int irq_level = -1; /* 0 is 'no irq', so use -1 for 'uninitialized' */ | 194 | static int irq_level = -1; /* 0 is 'no irq', so use -1 for 'uninitialized' */ |
diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h index 3a11a536c0da..4ab07861b457 100644 --- a/drivers/scsi/aacraid/aacraid.h +++ b/drivers/scsi/aacraid/aacraid.h | |||
@@ -15,11 +15,7 @@ | |||
15 | #define AAC_MAX_LUN (8) | 15 | #define AAC_MAX_LUN (8) |
16 | 16 | ||
17 | #define AAC_MAX_HOSTPHYSMEMPAGES (0xfffff) | 17 | #define AAC_MAX_HOSTPHYSMEMPAGES (0xfffff) |
18 | /* | 18 | #define AAC_MAX_32BIT_SGBCOUNT ((unsigned short)512) |
19 | * max_sectors is an unsigned short, otherwise limit is 0x100000000 / 512 | ||
20 | * Linux has starvation problems if we permit larger than 4MB I/O ... | ||
21 | */ | ||
22 | #define AAC_MAX_32BIT_SGBCOUNT ((unsigned short)8192) | ||
23 | 19 | ||
24 | /* | 20 | /* |
25 | * These macros convert from physical channels to virtual channels | 21 | * These macros convert from physical channels to virtual channels |
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index c1a4f978fcba..562da90480a1 100644 --- a/drivers/scsi/aacraid/linit.c +++ b/drivers/scsi/aacraid/linit.c | |||
@@ -374,7 +374,8 @@ static int aac_slave_configure(struct scsi_device *sdev) | |||
374 | else | 374 | else |
375 | scsi_adjust_queue_depth(sdev, 0, 1); | 375 | scsi_adjust_queue_depth(sdev, 0, 1); |
376 | 376 | ||
377 | if (host->max_sectors < AAC_MAX_32BIT_SGBCOUNT) | 377 | if (!(((struct aac_dev *)host->hostdata)->adapter_info.options |
378 | & AAC_OPT_NEW_COMM)) | ||
378 | blk_queue_max_segment_size(sdev->request_queue, 65536); | 379 | blk_queue_max_segment_size(sdev->request_queue, 65536); |
379 | 380 | ||
380 | return 0; | 381 | return 0; |
diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c b/drivers/scsi/aic7xxx/aic79xx_osm.c index 6466a184a141..329cb2331339 100644 --- a/drivers/scsi/aic7xxx/aic79xx_osm.c +++ b/drivers/scsi/aic7xxx/aic79xx_osm.c | |||
@@ -1505,7 +1505,7 @@ ahd_linux_dev_reset(Scsi_Cmnd *cmd) | |||
1505 | memset(recovery_cmd, 0, sizeof(struct scsi_cmnd)); | 1505 | memset(recovery_cmd, 0, sizeof(struct scsi_cmnd)); |
1506 | recovery_cmd->device = cmd->device; | 1506 | recovery_cmd->device = cmd->device; |
1507 | recovery_cmd->scsi_done = ahd_linux_dev_reset_complete; | 1507 | recovery_cmd->scsi_done = ahd_linux_dev_reset_complete; |
1508 | #if AHD_DEBUG | 1508 | #ifdef AHD_DEBUG |
1509 | if ((ahd_debug & AHD_SHOW_RECOVERY) != 0) | 1509 | if ((ahd_debug & AHD_SHOW_RECOVERY) != 0) |
1510 | printf("%s:%d:%d:%d: Device reset called for cmd %p\n", | 1510 | printf("%s:%d:%d:%d: Device reset called for cmd %p\n", |
1511 | ahd_name(ahd), cmd->device->channel, cmd->device->id, | 1511 | ahd_name(ahd), cmd->device->channel, cmd->device->id, |
diff --git a/drivers/scsi/aic7xxx/aic79xx_pci.c b/drivers/scsi/aic7xxx/aic79xx_pci.c index 4c3bb7bb8420..703f6e44889d 100644 --- a/drivers/scsi/aic7xxx/aic79xx_pci.c +++ b/drivers/scsi/aic7xxx/aic79xx_pci.c | |||
@@ -582,7 +582,7 @@ ahd_check_extport(struct ahd_softc *ahd) | |||
582 | } | 582 | } |
583 | } | 583 | } |
584 | 584 | ||
585 | #if AHD_DEBUG | 585 | #ifdef AHD_DEBUG |
586 | if (have_seeprom != 0 | 586 | if (have_seeprom != 0 |
587 | && (ahd_debug & AHD_DUMP_SEEPROM) != 0) { | 587 | && (ahd_debug & AHD_DUMP_SEEPROM) != 0) { |
588 | uint16_t *sc_data; | 588 | uint16_t *sc_data; |
diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.c b/drivers/scsi/aic7xxx/aic7xxx_osm.c index 116d0f51ca2c..687f19e9cf03 100644 --- a/drivers/scsi/aic7xxx/aic7xxx_osm.c +++ b/drivers/scsi/aic7xxx/aic7xxx_osm.c | |||
@@ -1264,14 +1264,12 @@ ahc_platform_set_tags(struct ahc_softc *ahc, struct ahc_devinfo *devinfo, | |||
1264 | } | 1264 | } |
1265 | switch ((dev->flags & (AHC_DEV_Q_BASIC|AHC_DEV_Q_TAGGED))) { | 1265 | switch ((dev->flags & (AHC_DEV_Q_BASIC|AHC_DEV_Q_TAGGED))) { |
1266 | case AHC_DEV_Q_BASIC: | 1266 | case AHC_DEV_Q_BASIC: |
1267 | scsi_adjust_queue_depth(sdev, | 1267 | scsi_set_tag_type(sdev, MSG_SIMPLE_TAG); |
1268 | MSG_SIMPLE_TASK, | 1268 | scsi_activate_tcq(sdev, dev->openings + dev->active); |
1269 | dev->openings + dev->active); | ||
1270 | break; | 1269 | break; |
1271 | case AHC_DEV_Q_TAGGED: | 1270 | case AHC_DEV_Q_TAGGED: |
1272 | scsi_adjust_queue_depth(sdev, | 1271 | scsi_set_tag_type(sdev, MSG_ORDERED_TAG); |
1273 | MSG_ORDERED_TASK, | 1272 | scsi_activate_tcq(sdev, dev->openings + dev->active); |
1274 | dev->openings + dev->active); | ||
1275 | break; | 1273 | break; |
1276 | default: | 1274 | default: |
1277 | /* | 1275 | /* |
@@ -1280,9 +1278,7 @@ ahc_platform_set_tags(struct ahc_softc *ahc, struct ahc_devinfo *devinfo, | |||
1280 | * serially on the controller/device. This should | 1278 | * serially on the controller/device. This should |
1281 | * remove some latency. | 1279 | * remove some latency. |
1282 | */ | 1280 | */ |
1283 | scsi_adjust_queue_depth(sdev, | 1281 | scsi_deactivate_tcq(sdev, 2); |
1284 | /*NON-TAGGED*/0, | ||
1285 | /*queue depth*/2); | ||
1286 | break; | 1282 | break; |
1287 | } | 1283 | } |
1288 | } | 1284 | } |
@@ -1635,9 +1631,9 @@ ahc_send_async(struct ahc_softc *ahc, char channel, | |||
1635 | spi_period(starget) = tinfo->curr.period; | 1631 | spi_period(starget) = tinfo->curr.period; |
1636 | spi_width(starget) = tinfo->curr.width; | 1632 | spi_width(starget) = tinfo->curr.width; |
1637 | spi_offset(starget) = tinfo->curr.offset; | 1633 | spi_offset(starget) = tinfo->curr.offset; |
1638 | spi_dt(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_DT_REQ; | 1634 | spi_dt(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_DT_REQ ? 1 : 0; |
1639 | spi_qas(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_QAS_REQ; | 1635 | spi_qas(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_QAS_REQ ? 1 : 0; |
1640 | spi_iu(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_IU_REQ; | 1636 | spi_iu(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_IU_REQ ? 1 : 0; |
1641 | spi_display_xfer_agreement(starget); | 1637 | spi_display_xfer_agreement(starget); |
1642 | break; | 1638 | break; |
1643 | } | 1639 | } |
@@ -2429,12 +2425,14 @@ static void ahc_linux_set_dt(struct scsi_target *starget, int dt) | |||
2429 | unsigned int ppr_options = tinfo->goal.ppr_options | 2425 | unsigned int ppr_options = tinfo->goal.ppr_options |
2430 | & ~MSG_EXT_PPR_DT_REQ; | 2426 | & ~MSG_EXT_PPR_DT_REQ; |
2431 | unsigned int period = tinfo->goal.period; | 2427 | unsigned int period = tinfo->goal.period; |
2428 | unsigned int width = tinfo->goal.width; | ||
2432 | unsigned long flags; | 2429 | unsigned long flags; |
2433 | struct ahc_syncrate *syncrate; | 2430 | struct ahc_syncrate *syncrate; |
2434 | 2431 | ||
2435 | if (dt) { | 2432 | if (dt) { |
2436 | period = 9; /* 12.5ns is the only period valid for DT */ | ||
2437 | ppr_options |= MSG_EXT_PPR_DT_REQ; | 2433 | ppr_options |= MSG_EXT_PPR_DT_REQ; |
2434 | if (!width) | ||
2435 | ahc_linux_set_width(starget, 1); | ||
2438 | } else if (period == 9) | 2436 | } else if (period == 9) |
2439 | period = 10; /* if resetting DT, period must be >= 25ns */ | 2437 | period = 10; /* if resetting DT, period must be >= 25ns */ |
2440 | 2438 | ||
diff --git a/drivers/scsi/aic7xxx/aicasm/aicasm.c b/drivers/scsi/aic7xxx/aicasm/aicasm.c index c34639481904..f936b691232f 100644 --- a/drivers/scsi/aic7xxx/aicasm/aicasm.c +++ b/drivers/scsi/aic7xxx/aicasm/aicasm.c | |||
@@ -369,7 +369,7 @@ output_code() | |||
369 | 369 | ||
370 | fprintf(ofile, "%s\t0x%02x, 0x%02x, 0x%02x, 0x%02x", | 370 | fprintf(ofile, "%s\t0x%02x, 0x%02x, 0x%02x, 0x%02x", |
371 | cur_instr == STAILQ_FIRST(&seq_program) ? "" : ",\n", | 371 | cur_instr == STAILQ_FIRST(&seq_program) ? "" : ",\n", |
372 | #if BYTE_ORDER == LITTLE_ENDIAN | 372 | #ifdef __LITTLE_ENDIAN |
373 | cur_instr->format.bytes[0], | 373 | cur_instr->format.bytes[0], |
374 | cur_instr->format.bytes[1], | 374 | cur_instr->format.bytes[1], |
375 | cur_instr->format.bytes[2], | 375 | cur_instr->format.bytes[2], |
@@ -613,7 +613,7 @@ output_listing(char *ifilename) | |||
613 | line++; | 613 | line++; |
614 | } | 614 | } |
615 | fprintf(listfile, "%03x %02x%02x%02x%02x", instrptr, | 615 | fprintf(listfile, "%03x %02x%02x%02x%02x", instrptr, |
616 | #if BYTE_ORDER == LITTLE_ENDIAN | 616 | #ifdef __LITTLE_ENDIAN |
617 | cur_instr->format.bytes[0], | 617 | cur_instr->format.bytes[0], |
618 | cur_instr->format.bytes[1], | 618 | cur_instr->format.bytes[1], |
619 | cur_instr->format.bytes[2], | 619 | cur_instr->format.bytes[2], |
diff --git a/drivers/scsi/aic7xxx/aicasm/aicasm_insformat.h b/drivers/scsi/aic7xxx/aicasm/aicasm_insformat.h index 3e80f07df49c..e64f802bbaaa 100644 --- a/drivers/scsi/aic7xxx/aicasm/aicasm_insformat.h +++ b/drivers/scsi/aic7xxx/aicasm/aicasm_insformat.h | |||
@@ -42,8 +42,10 @@ | |||
42 | * $FreeBSD$ | 42 | * $FreeBSD$ |
43 | */ | 43 | */ |
44 | 44 | ||
45 | #include <asm/byteorder.h> | ||
46 | |||
45 | struct ins_format1 { | 47 | struct ins_format1 { |
46 | #if BYTE_ORDER == LITTLE_ENDIAN | 48 | #ifdef __LITTLE_ENDIAN |
47 | uint32_t immediate : 8, | 49 | uint32_t immediate : 8, |
48 | source : 9, | 50 | source : 9, |
49 | destination : 9, | 51 | destination : 9, |
@@ -61,7 +63,7 @@ struct ins_format1 { | |||
61 | }; | 63 | }; |
62 | 64 | ||
63 | struct ins_format2 { | 65 | struct ins_format2 { |
64 | #if BYTE_ORDER == LITTLE_ENDIAN | 66 | #ifdef __LITTLE_ENDIAN |
65 | uint32_t shift_control : 8, | 67 | uint32_t shift_control : 8, |
66 | source : 9, | 68 | source : 9, |
67 | destination : 9, | 69 | destination : 9, |
@@ -79,7 +81,7 @@ struct ins_format2 { | |||
79 | }; | 81 | }; |
80 | 82 | ||
81 | struct ins_format3 { | 83 | struct ins_format3 { |
82 | #if BYTE_ORDER == LITTLE_ENDIAN | 84 | #ifdef __LITTLE_ENDIAN |
83 | uint32_t immediate : 8, | 85 | uint32_t immediate : 8, |
84 | source : 9, | 86 | source : 9, |
85 | address : 10, | 87 | address : 10, |
diff --git a/drivers/scsi/ata_piix.c b/drivers/scsi/ata_piix.c index 3be546439252..a2cfade2c1c6 100644 --- a/drivers/scsi/ata_piix.c +++ b/drivers/scsi/ata_piix.c | |||
@@ -38,6 +38,7 @@ enum { | |||
38 | PIIX_IOCFG = 0x54, /* IDE I/O configuration register */ | 38 | PIIX_IOCFG = 0x54, /* IDE I/O configuration register */ |
39 | ICH5_PMR = 0x90, /* port mapping register */ | 39 | ICH5_PMR = 0x90, /* port mapping register */ |
40 | ICH5_PCS = 0x92, /* port control and status */ | 40 | ICH5_PCS = 0x92, /* port control and status */ |
41 | PIIX_SCC = 0x0A, /* sub-class code register */ | ||
41 | 42 | ||
42 | PIIX_FLAG_AHCI = (1 << 28), /* AHCI possible */ | 43 | PIIX_FLAG_AHCI = (1 << 28), /* AHCI possible */ |
43 | PIIX_FLAG_CHECKINTR = (1 << 29), /* make sure PCI INTx enabled */ | 44 | PIIX_FLAG_CHECKINTR = (1 << 29), /* make sure PCI INTx enabled */ |
@@ -62,6 +63,8 @@ enum { | |||
62 | ich6_sata_rm = 4, | 63 | ich6_sata_rm = 4, |
63 | ich7_sata = 5, | 64 | ich7_sata = 5, |
64 | esb2_sata = 6, | 65 | esb2_sata = 6, |
66 | |||
67 | PIIX_AHCI_DEVICE = 6, | ||
65 | }; | 68 | }; |
66 | 69 | ||
67 | static int piix_init_one (struct pci_dev *pdev, | 70 | static int piix_init_one (struct pci_dev *pdev, |
@@ -574,11 +577,11 @@ static int piix_disable_ahci(struct pci_dev *pdev) | |||
574 | addr = pci_resource_start(pdev, AHCI_PCI_BAR); | 577 | addr = pci_resource_start(pdev, AHCI_PCI_BAR); |
575 | if (!addr || !pci_resource_len(pdev, AHCI_PCI_BAR)) | 578 | if (!addr || !pci_resource_len(pdev, AHCI_PCI_BAR)) |
576 | return 0; | 579 | return 0; |
577 | 580 | ||
578 | mmio = ioremap(addr, 64); | 581 | mmio = ioremap(addr, 64); |
579 | if (!mmio) | 582 | if (!mmio) |
580 | return -ENOMEM; | 583 | return -ENOMEM; |
581 | 584 | ||
582 | tmp = readl(mmio + AHCI_GLOBAL_CTL); | 585 | tmp = readl(mmio + AHCI_GLOBAL_CTL); |
583 | if (tmp & AHCI_ENABLE) { | 586 | if (tmp & AHCI_ENABLE) { |
584 | tmp &= ~AHCI_ENABLE; | 587 | tmp &= ~AHCI_ENABLE; |
@@ -588,7 +591,7 @@ static int piix_disable_ahci(struct pci_dev *pdev) | |||
588 | if (tmp & AHCI_ENABLE) | 591 | if (tmp & AHCI_ENABLE) |
589 | rc = -EIO; | 592 | rc = -EIO; |
590 | } | 593 | } |
591 | 594 | ||
592 | iounmap(mmio); | 595 | iounmap(mmio); |
593 | return rc; | 596 | return rc; |
594 | } | 597 | } |
@@ -626,9 +629,13 @@ static int piix_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) | |||
626 | port_info[1] = NULL; | 629 | port_info[1] = NULL; |
627 | 630 | ||
628 | if (port_info[0]->host_flags & PIIX_FLAG_AHCI) { | 631 | if (port_info[0]->host_flags & PIIX_FLAG_AHCI) { |
629 | int rc = piix_disable_ahci(pdev); | 632 | u8 tmp; |
630 | if (rc) | 633 | pci_read_config_byte(pdev, PIIX_SCC, &tmp); |
631 | return rc; | 634 | if (tmp == PIIX_AHCI_DEVICE) { |
635 | int rc = piix_disable_ahci(pdev); | ||
636 | if (rc) | ||
637 | return rc; | ||
638 | } | ||
632 | } | 639 | } |
633 | 640 | ||
634 | if (port_info[0]->host_flags & PIIX_FLAG_COMBINED) { | 641 | if (port_info[0]->host_flags & PIIX_FLAG_COMBINED) { |
diff --git a/drivers/scsi/dc395x.c b/drivers/scsi/dc395x.c index ae13c002f60d..929170dcd3cb 100644 --- a/drivers/scsi/dc395x.c +++ b/drivers/scsi/dc395x.c | |||
@@ -744,7 +744,7 @@ static void free_tag(struct DeviceCtlBlk *dcb, struct ScsiReqBlk *srb) | |||
744 | 744 | ||
745 | 745 | ||
746 | /* Find cmd in SRB list */ | 746 | /* Find cmd in SRB list */ |
747 | inline static struct ScsiReqBlk *find_cmd(struct scsi_cmnd *cmd, | 747 | static inline struct ScsiReqBlk *find_cmd(struct scsi_cmnd *cmd, |
748 | struct list_head *head) | 748 | struct list_head *head) |
749 | { | 749 | { |
750 | struct ScsiReqBlk *i; | 750 | struct ScsiReqBlk *i; |
diff --git a/drivers/scsi/dpt/dptsig.h b/drivers/scsi/dpt/dptsig.h index 95a4cce6c892..4bf447792129 100644 --- a/drivers/scsi/dpt/dptsig.h +++ b/drivers/scsi/dpt/dptsig.h | |||
@@ -76,7 +76,7 @@ typedef unsigned long sigLONG; | |||
76 | #endif /* aix */ | 76 | #endif /* aix */ |
77 | #endif | 77 | #endif |
78 | /* For the Macintosh */ | 78 | /* For the Macintosh */ |
79 | #if STRUCTALIGNMENTSUPPORTED | 79 | #ifdef STRUCTALIGNMENTSUPPORTED |
80 | #pragma options align=mac68k | 80 | #pragma options align=mac68k |
81 | #endif | 81 | #endif |
82 | 82 | ||
@@ -332,7 +332,7 @@ typedef struct dpt_sig { | |||
332 | #endif /* aix */ | 332 | #endif /* aix */ |
333 | #endif | 333 | #endif |
334 | /* For the Macintosh */ | 334 | /* For the Macintosh */ |
335 | #if STRUCTALIGNMENTSUPPORTED | 335 | #ifdef STRUCTALIGNMENTSUPPORTED |
336 | #pragma options align=reset | 336 | #pragma options align=reset |
337 | #endif | 337 | #endif |
338 | 338 | ||
diff --git a/drivers/scsi/dtc.c b/drivers/scsi/dtc.c index ab9de39bb50b..897743b23342 100644 --- a/drivers/scsi/dtc.c +++ b/drivers/scsi/dtc.c | |||
@@ -92,10 +92,6 @@ | |||
92 | 92 | ||
93 | #define DTC_PUBLIC_RELEASE 2 | 93 | #define DTC_PUBLIC_RELEASE 2 |
94 | 94 | ||
95 | /*#define DTCDEBUG 0x1*/ | ||
96 | #define DTCDEBUG_INIT 0x1 | ||
97 | #define DTCDEBUG_TRANSFER 0x2 | ||
98 | |||
99 | /* | 95 | /* |
100 | * The DTC3180 & 3280 boards are memory mapped. | 96 | * The DTC3180 & 3280 boards are memory mapped. |
101 | * | 97 | * |
diff --git a/drivers/scsi/dtc.h b/drivers/scsi/dtc.h index ed73629eb2f9..277cd015ee4e 100644 --- a/drivers/scsi/dtc.h +++ b/drivers/scsi/dtc.h | |||
@@ -28,6 +28,10 @@ | |||
28 | #ifndef DTC3280_H | 28 | #ifndef DTC3280_H |
29 | #define DTC3280_H | 29 | #define DTC3280_H |
30 | 30 | ||
31 | #define DTCDEBUG 0 | ||
32 | #define DTCDEBUG_INIT 0x1 | ||
33 | #define DTCDEBUG_TRANSFER 0x2 | ||
34 | |||
31 | static int dtc_abort(Scsi_Cmnd *); | 35 | static int dtc_abort(Scsi_Cmnd *); |
32 | static int dtc_biosparam(struct scsi_device *, struct block_device *, | 36 | static int dtc_biosparam(struct scsi_device *, struct block_device *, |
33 | sector_t, int*); | 37 | sector_t, int*); |
diff --git a/drivers/scsi/fdomain.c b/drivers/scsi/fdomain.c index aecf32dd0bde..3b2a5bf5c43e 100644 --- a/drivers/scsi/fdomain.c +++ b/drivers/scsi/fdomain.c | |||
@@ -570,7 +570,7 @@ static void do_pause(unsigned amount) /* Pause for amount*10 milliseconds */ | |||
570 | mdelay(10*amount); | 570 | mdelay(10*amount); |
571 | } | 571 | } |
572 | 572 | ||
573 | inline static void fdomain_make_bus_idle( void ) | 573 | static inline void fdomain_make_bus_idle( void ) |
574 | { | 574 | { |
575 | outb(0, port_base + SCSI_Cntl); | 575 | outb(0, port_base + SCSI_Cntl); |
576 | outb(0, port_base + SCSI_Mode_Cntl); | 576 | outb(0, port_base + SCSI_Mode_Cntl); |
diff --git a/drivers/scsi/ibmvscsi/srp.h b/drivers/scsi/ibmvscsi/srp.h index 2ae5154fd89c..7d8e4c4accb9 100644 --- a/drivers/scsi/ibmvscsi/srp.h +++ b/drivers/scsi/ibmvscsi/srp.h | |||
@@ -35,7 +35,7 @@ | |||
35 | enum srp_types { | 35 | enum srp_types { |
36 | SRP_LOGIN_REQ_TYPE = 0x00, | 36 | SRP_LOGIN_REQ_TYPE = 0x00, |
37 | SRP_LOGIN_RSP_TYPE = 0xC0, | 37 | SRP_LOGIN_RSP_TYPE = 0xC0, |
38 | SRP_LOGIN_REJ_TYPE = 0x80, | 38 | SRP_LOGIN_REJ_TYPE = 0xC2, |
39 | SRP_I_LOGOUT_TYPE = 0x03, | 39 | SRP_I_LOGOUT_TYPE = 0x03, |
40 | SRP_T_LOGOUT_TYPE = 0x80, | 40 | SRP_T_LOGOUT_TYPE = 0x80, |
41 | SRP_TSK_MGMT_TYPE = 0x01, | 41 | SRP_TSK_MGMT_TYPE = 0x01, |
diff --git a/drivers/scsi/initio.c b/drivers/scsi/initio.c index 2094d4811d61..ea6f3c0e05d9 100644 --- a/drivers/scsi/initio.c +++ b/drivers/scsi/initio.c | |||
@@ -716,7 +716,7 @@ static int init_tulip(HCS * pCurHcb, SCB * scbp, int tul_num_scb, | |||
716 | pCurHcb->HCS_SCSI_ID = i91unvramp->NVM_SCSIInfo[0].NVM_ChSCSIID; | 716 | pCurHcb->HCS_SCSI_ID = i91unvramp->NVM_SCSIInfo[0].NVM_ChSCSIID; |
717 | pCurHcb->HCS_IdMask = ~(1 << pCurHcb->HCS_SCSI_ID); | 717 | pCurHcb->HCS_IdMask = ~(1 << pCurHcb->HCS_SCSI_ID); |
718 | 718 | ||
719 | #if CHK_PARITY | 719 | #ifdef CHK_PARITY |
720 | /* Enable parity error response */ | 720 | /* Enable parity error response */ |
721 | TUL_WR(pCurHcb->HCS_Base + TUL_PCMD, TUL_RD(pCurHcb->HCS_Base, TUL_PCMD) | 0x40); | 721 | TUL_WR(pCurHcb->HCS_Base + TUL_PCMD, TUL_RD(pCurHcb->HCS_Base, TUL_PCMD) | 0x40); |
722 | #endif | 722 | #endif |
diff --git a/drivers/scsi/ips.c b/drivers/scsi/ips.c index 6dfcb4fbccdd..4cdd891781b1 100644 --- a/drivers/scsi/ips.c +++ b/drivers/scsi/ips.c | |||
@@ -133,10 +133,12 @@ | |||
133 | /* 6.10.00 - Remove 1G Addressing Limitations */ | 133 | /* 6.10.00 - Remove 1G Addressing Limitations */ |
134 | /* 6.11.xx - Get VersionInfo buffer off the stack ! DDTS 60401 */ | 134 | /* 6.11.xx - Get VersionInfo buffer off the stack ! DDTS 60401 */ |
135 | /* 6.11.xx - Make Logical Drive Info structure safe for DMA DDTS 60639 */ | 135 | /* 6.11.xx - Make Logical Drive Info structure safe for DMA DDTS 60639 */ |
136 | /* 7.10.xx - Add highmem_io flag in SCSI Templete for 2.4 kernels */ | 136 | /* 7.10.18 - Add highmem_io flag in SCSI Templete for 2.4 kernels */ |
137 | /* - Fix path/name for scsi_hosts.h include for 2.6 kernels */ | 137 | /* - Fix path/name for scsi_hosts.h include for 2.6 kernels */ |
138 | /* - Fix sort order of 7k */ | 138 | /* - Fix sort order of 7k */ |
139 | /* - Remove 3 unused "inline" functions */ | 139 | /* - Remove 3 unused "inline" functions */ |
140 | /* 7.12.xx - Use STATIC functions whereever possible */ | ||
141 | /* - Clean up deprecated MODULE_PARM calls */ | ||
140 | /*****************************************************************************/ | 142 | /*****************************************************************************/ |
141 | 143 | ||
142 | /* | 144 | /* |
@@ -207,8 +209,8 @@ module_param(ips, charp, 0); | |||
207 | /* | 209 | /* |
208 | * DRIVER_VER | 210 | * DRIVER_VER |
209 | */ | 211 | */ |
210 | #define IPS_VERSION_HIGH "7.10" | 212 | #define IPS_VERSION_HIGH "7.12" |
211 | #define IPS_VERSION_LOW ".18 " | 213 | #define IPS_VERSION_LOW ".02 " |
212 | 214 | ||
213 | #if !defined(__i386__) && !defined(__ia64__) && !defined(__x86_64__) | 215 | #if !defined(__i386__) && !defined(__ia64__) && !defined(__x86_64__) |
214 | #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" | 216 | #warning "This driver has only been tested on the x86/ia64/x86_64 platforms" |
diff --git a/drivers/scsi/ips.h b/drivers/scsi/ips.h index 480e06f4d6ae..505e967013de 100644 --- a/drivers/scsi/ips.h +++ b/drivers/scsi/ips.h | |||
@@ -87,15 +87,14 @@ | |||
87 | #define scsi_set_pci_device(sh,dev) (0) | 87 | #define scsi_set_pci_device(sh,dev) (0) |
88 | #endif | 88 | #endif |
89 | 89 | ||
90 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) | 90 | #ifndef IRQ_NONE |
91 | 91 | typedef void irqreturn_t; | |
92 | #ifndef irqreturn_t | ||
93 | typedef void irqreturn_t; | ||
94 | #endif | ||
95 | |||
96 | #define IRQ_NONE | 92 | #define IRQ_NONE |
97 | #define IRQ_HANDLED | 93 | #define IRQ_HANDLED |
98 | #define IRQ_RETVAL(x) | 94 | #define IRQ_RETVAL(x) |
95 | #endif | ||
96 | |||
97 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0) | ||
99 | #define IPS_REGISTER_HOSTS(SHT) scsi_register_module(MODULE_SCSI_HA,SHT) | 98 | #define IPS_REGISTER_HOSTS(SHT) scsi_register_module(MODULE_SCSI_HA,SHT) |
100 | #define IPS_UNREGISTER_HOSTS(SHT) scsi_unregister_module(MODULE_SCSI_HA,SHT) | 99 | #define IPS_UNREGISTER_HOSTS(SHT) scsi_unregister_module(MODULE_SCSI_HA,SHT) |
101 | #define IPS_ADD_HOST(shost,device) | 100 | #define IPS_ADD_HOST(shost,device) |
@@ -123,6 +122,10 @@ | |||
123 | #ifndef min | 122 | #ifndef min |
124 | #define min(x,y) ((x) < (y) ? x : y) | 123 | #define min(x,y) ((x) < (y) ? x : y) |
125 | #endif | 124 | #endif |
125 | |||
126 | #ifndef __iomem /* For clean compiles in earlier kernels without __iomem annotations */ | ||
127 | #define __iomem | ||
128 | #endif | ||
126 | 129 | ||
127 | #define pci_dma_hi32(a) ((a >> 16) >> 16) | 130 | #define pci_dma_hi32(a) ((a >> 16) >> 16) |
128 | #define pci_dma_lo32(a) (a & 0xffffffff) | 131 | #define pci_dma_lo32(a) (a & 0xffffffff) |
@@ -1206,13 +1209,13 @@ typedef struct { | |||
1206 | 1209 | ||
1207 | #define IPS_VER_MAJOR 7 | 1210 | #define IPS_VER_MAJOR 7 |
1208 | #define IPS_VER_MAJOR_STRING "7" | 1211 | #define IPS_VER_MAJOR_STRING "7" |
1209 | #define IPS_VER_MINOR 10 | 1212 | #define IPS_VER_MINOR 12 |
1210 | #define IPS_VER_MINOR_STRING "10" | 1213 | #define IPS_VER_MINOR_STRING "12" |
1211 | #define IPS_VER_BUILD 18 | 1214 | #define IPS_VER_BUILD 02 |
1212 | #define IPS_VER_BUILD_STRING "18" | 1215 | #define IPS_VER_BUILD_STRING "02" |
1213 | #define IPS_VER_STRING "7.10.18" | 1216 | #define IPS_VER_STRING "7.12.02" |
1214 | #define IPS_RELEASE_ID 0x00020000 | 1217 | #define IPS_RELEASE_ID 0x00020000 |
1215 | #define IPS_BUILD_IDENT 731 | 1218 | #define IPS_BUILD_IDENT 761 |
1216 | #define IPS_LEGALCOPYRIGHT_STRING "(C) Copyright IBM Corp. 1994, 2002. All Rights Reserved." | 1219 | #define IPS_LEGALCOPYRIGHT_STRING "(C) Copyright IBM Corp. 1994, 2002. All Rights Reserved." |
1217 | #define IPS_ADAPTECCOPYRIGHT_STRING "(c) Copyright Adaptec, Inc. 2002 to 2004. All Rights Reserved." | 1220 | #define IPS_ADAPTECCOPYRIGHT_STRING "(c) Copyright Adaptec, Inc. 2002 to 2004. All Rights Reserved." |
1218 | #define IPS_DELLCOPYRIGHT_STRING "(c) Copyright Dell 2004. All Rights Reserved." | 1221 | #define IPS_DELLCOPYRIGHT_STRING "(c) Copyright Dell 2004. All Rights Reserved." |
@@ -1223,12 +1226,12 @@ typedef struct { | |||
1223 | #define IPS_VER_SERVERAID2 "2.88.13" | 1226 | #define IPS_VER_SERVERAID2 "2.88.13" |
1224 | #define IPS_VER_NAVAJO "2.88.13" | 1227 | #define IPS_VER_NAVAJO "2.88.13" |
1225 | #define IPS_VER_SERVERAID3 "6.10.24" | 1228 | #define IPS_VER_SERVERAID3 "6.10.24" |
1226 | #define IPS_VER_SERVERAID4H "7.10.11" | 1229 | #define IPS_VER_SERVERAID4H "7.12.02" |
1227 | #define IPS_VER_SERVERAID4MLx "7.10.18" | 1230 | #define IPS_VER_SERVERAID4MLx "7.12.02" |
1228 | #define IPS_VER_SARASOTA "7.10.18" | 1231 | #define IPS_VER_SARASOTA "7.12.02" |
1229 | #define IPS_VER_MARCO "7.10.18" | 1232 | #define IPS_VER_MARCO "7.12.02" |
1230 | #define IPS_VER_SEBRING "7.10.18" | 1233 | #define IPS_VER_SEBRING "7.12.02" |
1231 | #define IPS_VER_KEYWEST "7.10.18" | 1234 | #define IPS_VER_KEYWEST "7.12.02" |
1232 | 1235 | ||
1233 | /* Compatability IDs for various adapters */ | 1236 | /* Compatability IDs for various adapters */ |
1234 | #define IPS_COMPAT_UNKNOWN "" | 1237 | #define IPS_COMPAT_UNKNOWN "" |
diff --git a/drivers/scsi/lpfc/lpfc_compat.h b/drivers/scsi/lpfc/lpfc_compat.h index 275ba34b3c9d..a11f1ae7b98e 100644 --- a/drivers/scsi/lpfc/lpfc_compat.h +++ b/drivers/scsi/lpfc/lpfc_compat.h | |||
@@ -30,8 +30,9 @@ memcpy_toio() and memcpy_fromio() can be used. | |||
30 | However on a big-endian host, copy 4 bytes at a time, | 30 | However on a big-endian host, copy 4 bytes at a time, |
31 | using writel() and readl(). | 31 | using writel() and readl(). |
32 | *******************************************************************/ | 32 | *******************************************************************/ |
33 | #include <asm/byteorder.h> | ||
33 | 34 | ||
34 | #if __BIG_ENDIAN | 35 | #ifdef __BIG_ENDIAN |
35 | 36 | ||
36 | static inline void | 37 | static inline void |
37 | lpfc_memcpy_to_slim(void __iomem *dest, void *src, unsigned int bytes) | 38 | lpfc_memcpy_to_slim(void __iomem *dest, void *src, unsigned int bytes) |
diff --git a/drivers/scsi/lpfc/lpfc_scsi.h b/drivers/scsi/lpfc/lpfc_scsi.h index d8fd2010ef41..0fd9ba14e1b5 100644 --- a/drivers/scsi/lpfc/lpfc_scsi.h +++ b/drivers/scsi/lpfc/lpfc_scsi.h | |||
@@ -18,6 +18,8 @@ | |||
18 | * included with this package. * | 18 | * included with this package. * |
19 | *******************************************************************/ | 19 | *******************************************************************/ |
20 | 20 | ||
21 | #include <asm/byteorder.h> | ||
22 | |||
21 | struct lpfc_hba; | 23 | struct lpfc_hba; |
22 | 24 | ||
23 | #define list_remove_head(list, entry, type, member) \ | 25 | #define list_remove_head(list, entry, type, member) \ |
@@ -81,7 +83,7 @@ struct fcp_cmnd { | |||
81 | /* # of bits to shift lun id to end up in right | 83 | /* # of bits to shift lun id to end up in right |
82 | * payload word, little endian = 8, big = 16. | 84 | * payload word, little endian = 8, big = 16. |
83 | */ | 85 | */ |
84 | #if __BIG_ENDIAN | 86 | #ifdef __BIG_ENDIAN |
85 | #define FC_LUN_SHIFT 16 | 87 | #define FC_LUN_SHIFT 16 |
86 | #define FC_ADDR_MODE_SHIFT 24 | 88 | #define FC_ADDR_MODE_SHIFT 24 |
87 | #else /* __LITTLE_ENDIAN */ | 89 | #else /* __LITTLE_ENDIAN */ |
diff --git a/drivers/scsi/pas16.c b/drivers/scsi/pas16.c index 363e0ebd4a39..72bc947e45b6 100644 --- a/drivers/scsi/pas16.c +++ b/drivers/scsi/pas16.c | |||
@@ -2,6 +2,7 @@ | |||
2 | #define PSEUDO_DMA | 2 | #define PSEUDO_DMA |
3 | #define FOO | 3 | #define FOO |
4 | #define UNSAFE /* Not unsafe for PAS16 -- use it */ | 4 | #define UNSAFE /* Not unsafe for PAS16 -- use it */ |
5 | #define PDEBUG 0 | ||
5 | 6 | ||
6 | /* | 7 | /* |
7 | * This driver adapted from Drew Eckhardt's Trantor T128 driver | 8 | * This driver adapted from Drew Eckhardt's Trantor T128 driver |
diff --git a/drivers/scsi/qla2xxx/Kconfig b/drivers/scsi/qla2xxx/Kconfig index fccecf67423e..c1c1c687bcbd 100644 --- a/drivers/scsi/qla2xxx/Kconfig +++ b/drivers/scsi/qla2xxx/Kconfig | |||
@@ -2,12 +2,12 @@ config SCSI_QLA2XXX | |||
2 | tristate | 2 | tristate |
3 | default (SCSI && PCI) | 3 | default (SCSI && PCI) |
4 | depends on SCSI && PCI | 4 | depends on SCSI && PCI |
5 | select SCSI_FC_ATTRS | ||
6 | 5 | ||
7 | config SCSI_QLA21XX | 6 | config SCSI_QLA21XX |
8 | tristate "QLogic ISP2100 host adapter family support" | 7 | tristate "QLogic ISP2100 host adapter family support" |
9 | depends on SCSI_QLA2XXX | 8 | depends on SCSI_QLA2XXX |
10 | select SCSI_FC_ATTRS | 9 | select SCSI_FC_ATTRS |
10 | select FW_LOADER | ||
11 | ---help--- | 11 | ---help--- |
12 | This driver supports the QLogic 21xx (ISP2100) host adapter family. | 12 | This driver supports the QLogic 21xx (ISP2100) host adapter family. |
13 | 13 | ||
@@ -15,6 +15,7 @@ config SCSI_QLA22XX | |||
15 | tristate "QLogic ISP2200 host adapter family support" | 15 | tristate "QLogic ISP2200 host adapter family support" |
16 | depends on SCSI_QLA2XXX | 16 | depends on SCSI_QLA2XXX |
17 | select SCSI_FC_ATTRS | 17 | select SCSI_FC_ATTRS |
18 | select FW_LOADER | ||
18 | ---help--- | 19 | ---help--- |
19 | This driver supports the QLogic 22xx (ISP2200) host adapter family. | 20 | This driver supports the QLogic 22xx (ISP2200) host adapter family. |
20 | 21 | ||
@@ -22,6 +23,7 @@ config SCSI_QLA2300 | |||
22 | tristate "QLogic ISP2300 host adapter family support" | 23 | tristate "QLogic ISP2300 host adapter family support" |
23 | depends on SCSI_QLA2XXX | 24 | depends on SCSI_QLA2XXX |
24 | select SCSI_FC_ATTRS | 25 | select SCSI_FC_ATTRS |
26 | select FW_LOADER | ||
25 | ---help--- | 27 | ---help--- |
26 | This driver supports the QLogic 2300 (ISP2300 and ISP2312) host | 28 | This driver supports the QLogic 2300 (ISP2300 and ISP2312) host |
27 | adapter family. | 29 | adapter family. |
@@ -30,6 +32,7 @@ config SCSI_QLA2322 | |||
30 | tristate "QLogic ISP2322 host adapter family support" | 32 | tristate "QLogic ISP2322 host adapter family support" |
31 | depends on SCSI_QLA2XXX | 33 | depends on SCSI_QLA2XXX |
32 | select SCSI_FC_ATTRS | 34 | select SCSI_FC_ATTRS |
35 | select FW_LOADER | ||
33 | ---help--- | 36 | ---help--- |
34 | This driver supports the QLogic 2322 (ISP2322) host adapter family. | 37 | This driver supports the QLogic 2322 (ISP2322) host adapter family. |
35 | 38 | ||
@@ -37,6 +40,16 @@ config SCSI_QLA6312 | |||
37 | tristate "QLogic ISP63xx host adapter family support" | 40 | tristate "QLogic ISP63xx host adapter family support" |
38 | depends on SCSI_QLA2XXX | 41 | depends on SCSI_QLA2XXX |
39 | select SCSI_FC_ATTRS | 42 | select SCSI_FC_ATTRS |
43 | select FW_LOADER | ||
40 | ---help--- | 44 | ---help--- |
41 | This driver supports the QLogic 63xx (ISP6312 and ISP6322) host | 45 | This driver supports the QLogic 63xx (ISP6312 and ISP6322) host |
42 | adapter family. | 46 | adapter family. |
47 | |||
48 | config SCSI_QLA24XX | ||
49 | tristate "QLogic ISP24xx host adapter family support" | ||
50 | depends on SCSI_QLA2XXX | ||
51 | select SCSI_FC_ATTRS | ||
52 | select FW_LOADER | ||
53 | ---help--- | ||
54 | This driver supports the QLogic 24xx (ISP2422 and ISP2432) host | ||
55 | adapter family. | ||
diff --git a/drivers/scsi/qla2xxx/Makefile b/drivers/scsi/qla2xxx/Makefile index 982b83604b41..b169687d08ff 100644 --- a/drivers/scsi/qla2xxx/Makefile +++ b/drivers/scsi/qla2xxx/Makefile | |||
@@ -1,6 +1,4 @@ | |||
1 | EXTRA_CFLAGS += -DUNIQUE_FW_NAME | 1 | EXTRA_CFLAGS += -DUNIQUE_FW_NAME |
2 | CONFIG_SCSI_QLA24XX=m | ||
3 | EXTRA_CFLAGS += -DCONFIG_SCSI_QLA24XX -DCONFIG_SCSI_QLA24XX_MODULE | ||
4 | 2 | ||
5 | qla2xxx-y := qla_os.o qla_init.o qla_mbx.o qla_iocb.o qla_isr.o qla_gs.o \ | 3 | qla2xxx-y := qla_os.o qla_init.o qla_mbx.o qla_iocb.o qla_isr.o qla_gs.o \ |
6 | qla_dbg.o qla_sup.o qla_rscn.o qla_attr.o | 4 | qla_dbg.o qla_sup.o qla_rscn.o qla_attr.o |
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index ad3a5b142468..2d3c4ac475f2 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c | |||
@@ -756,7 +756,8 @@ static int scsi_add_lun(struct scsi_device *sdev, char *inq_result, int *bflags) | |||
756 | * register it and tell the rest of the kernel | 756 | * register it and tell the rest of the kernel |
757 | * about it. | 757 | * about it. |
758 | */ | 758 | */ |
759 | scsi_sysfs_add_sdev(sdev); | 759 | if (scsi_sysfs_add_sdev(sdev) != 0) |
760 | return SCSI_SCAN_NO_RESPONSE; | ||
760 | 761 | ||
761 | return SCSI_SCAN_LUN_PRESENT; | 762 | return SCSI_SCAN_LUN_PRESENT; |
762 | } | 763 | } |
diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c index 0291a8fb654d..0a7839db5752 100644 --- a/drivers/scsi/st.c +++ b/drivers/scsi/st.c | |||
@@ -4149,12 +4149,10 @@ static int __init init_st(void) | |||
4149 | do_create_driverfs_files(); | 4149 | do_create_driverfs_files(); |
4150 | return 0; | 4150 | return 0; |
4151 | } | 4151 | } |
4152 | if (st_sysfs_class) | ||
4153 | class_destroy(st_sysfs_class); | ||
4154 | unregister_chrdev_region(MKDEV(SCSI_TAPE_MAJOR, 0), | 4152 | unregister_chrdev_region(MKDEV(SCSI_TAPE_MAJOR, 0), |
4155 | |||
4156 | ST_MAX_TAPE_ENTRIES); | 4153 | ST_MAX_TAPE_ENTRIES); |
4157 | } | 4154 | } |
4155 | class_destroy(st_sysfs_class); | ||
4158 | 4156 | ||
4159 | printk(KERN_ERR "Unable to get major %d for SCSI tapes\n", SCSI_TAPE_MAJOR); | 4157 | printk(KERN_ERR "Unable to get major %d for SCSI tapes\n", SCSI_TAPE_MAJOR); |
4160 | return 1; | 4158 | return 1; |
@@ -4162,13 +4160,11 @@ static int __init init_st(void) | |||
4162 | 4160 | ||
4163 | static void __exit exit_st(void) | 4161 | static void __exit exit_st(void) |
4164 | { | 4162 | { |
4165 | if (st_sysfs_class) | ||
4166 | class_destroy(st_sysfs_class); | ||
4167 | st_sysfs_class = NULL; | ||
4168 | do_remove_driverfs_files(); | 4163 | do_remove_driverfs_files(); |
4169 | scsi_unregister_driver(&st_template.gendrv); | 4164 | scsi_unregister_driver(&st_template.gendrv); |
4170 | unregister_chrdev_region(MKDEV(SCSI_TAPE_MAJOR, 0), | 4165 | unregister_chrdev_region(MKDEV(SCSI_TAPE_MAJOR, 0), |
4171 | ST_MAX_TAPE_ENTRIES); | 4166 | ST_MAX_TAPE_ENTRIES); |
4167 | class_destroy(st_sysfs_class); | ||
4172 | kfree(scsi_tapes); | 4168 | kfree(scsi_tapes); |
4173 | printk(KERN_INFO "st: Unloaded.\n"); | 4169 | printk(KERN_INFO "st: Unloaded.\n"); |
4174 | } | 4170 | } |
diff --git a/drivers/scsi/sym53c8xx_2/sym_hipd.h b/drivers/scsi/sym53c8xx_2/sym_hipd.h index c55c7a57afa0..3131a6bf7ab7 100644 --- a/drivers/scsi/sym53c8xx_2/sym_hipd.h +++ b/drivers/scsi/sym53c8xx_2/sym_hipd.h | |||
@@ -151,6 +151,16 @@ | |||
151 | */ | 151 | */ |
152 | #define SYM_CONF_MIN_ASYNC (40) | 152 | #define SYM_CONF_MIN_ASYNC (40) |
153 | 153 | ||
154 | |||
155 | /* | ||
156 | * MEMORY ALLOCATOR. | ||
157 | */ | ||
158 | |||
159 | #define SYM_MEM_WARN 1 /* Warn on failed operations */ | ||
160 | |||
161 | #define SYM_MEM_PAGE_ORDER 0 /* 1 PAGE maximum */ | ||
162 | #define SYM_MEM_CLUSTER_SHIFT (PAGE_SHIFT+SYM_MEM_PAGE_ORDER) | ||
163 | #define SYM_MEM_FREE_UNUSED /* Free unused pages immediately */ | ||
154 | /* | 164 | /* |
155 | * Shortest memory chunk is (1<<SYM_MEM_SHIFT), currently 16. | 165 | * Shortest memory chunk is (1<<SYM_MEM_SHIFT), currently 16. |
156 | * Actual allocations happen as SYM_MEM_CLUSTER_SIZE sized. | 166 | * Actual allocations happen as SYM_MEM_CLUSTER_SIZE sized. |
@@ -1192,12 +1202,6 @@ static inline void sym_setup_data_pointers(struct sym_hcb *np, | |||
1192 | * MEMORY ALLOCATOR. | 1202 | * MEMORY ALLOCATOR. |
1193 | */ | 1203 | */ |
1194 | 1204 | ||
1195 | #define SYM_MEM_PAGE_ORDER 0 /* 1 PAGE maximum */ | ||
1196 | #define SYM_MEM_CLUSTER_SHIFT (PAGE_SHIFT+SYM_MEM_PAGE_ORDER) | ||
1197 | #define SYM_MEM_FREE_UNUSED /* Free unused pages immediately */ | ||
1198 | |||
1199 | #define SYM_MEM_WARN 1 /* Warn on failed operations */ | ||
1200 | |||
1201 | #define sym_get_mem_cluster() \ | 1205 | #define sym_get_mem_cluster() \ |
1202 | (void *) __get_free_pages(GFP_ATOMIC, SYM_MEM_PAGE_ORDER) | 1206 | (void *) __get_free_pages(GFP_ATOMIC, SYM_MEM_PAGE_ORDER) |
1203 | #define sym_free_mem_cluster(p) \ | 1207 | #define sym_free_mem_cluster(p) \ |
diff --git a/drivers/scsi/sym53c8xx_2/sym_nvram.c b/drivers/scsi/sym53c8xx_2/sym_nvram.c index cd9140e158cf..994b7566bcac 100644 --- a/drivers/scsi/sym53c8xx_2/sym_nvram.c +++ b/drivers/scsi/sym53c8xx_2/sym_nvram.c | |||
@@ -367,7 +367,7 @@ static void S24C16_read_byte(struct sym_device *np, u_char *read_data, u_char ac | |||
367 | S24C16_write_ack(np, ack_data, gpreg, gpcntl); | 367 | S24C16_write_ack(np, ack_data, gpreg, gpcntl); |
368 | } | 368 | } |
369 | 369 | ||
370 | #if SYM_CONF_NVRAM_WRITE_SUPPORT | 370 | #ifdef SYM_CONF_NVRAM_WRITE_SUPPORT |
371 | /* | 371 | /* |
372 | * Write 'len' bytes starting at 'offset'. | 372 | * Write 'len' bytes starting at 'offset'. |
373 | */ | 373 | */ |
diff --git a/drivers/scsi/t128.h b/drivers/scsi/t128.h index 9ad1d68827a7..596f3a32a1c6 100644 --- a/drivers/scsi/t128.h +++ b/drivers/scsi/t128.h | |||
@@ -43,6 +43,7 @@ | |||
43 | 43 | ||
44 | #define T128_PUBLIC_RELEASE 3 | 44 | #define T128_PUBLIC_RELEASE 3 |
45 | 45 | ||
46 | #define TDEBUG 0 | ||
46 | #define TDEBUG_INIT 0x1 | 47 | #define TDEBUG_INIT 0x1 |
47 | #define TDEBUG_TRANSFER 0x2 | 48 | #define TDEBUG_TRANSFER 0x2 |
48 | 49 | ||