diff options
| -rw-r--r-- | drivers/scsi/aic7xxx/aic79xx_osm.h | 35 | ||||
| -rw-r--r-- | drivers/scsi/aic7xxx/aic79xx_osm_pci.c | 3 |
2 files changed, 0 insertions, 38 deletions
diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.h b/drivers/scsi/aic7xxx/aic79xx_osm.h index 46edcf3e4e62..296d3a59efe9 100644 --- a/drivers/scsi/aic7xxx/aic79xx_osm.h +++ b/drivers/scsi/aic7xxx/aic79xx_osm.h | |||
| @@ -254,39 +254,8 @@ ahd_scb_timer_reset(struct scb *scb, u_int usec) | |||
| 254 | /***************************** SMP support ************************************/ | 254 | /***************************** SMP support ************************************/ |
| 255 | #include <linux/spinlock.h> | 255 | #include <linux/spinlock.h> |
| 256 | 256 | ||
| 257 | #define AHD_SCSI_HAS_HOST_LOCK 1 | ||
| 258 | |||
| 259 | #define AIC79XX_DRIVER_VERSION "1.3.11" | 257 | #define AIC79XX_DRIVER_VERSION "1.3.11" |
| 260 | 258 | ||
| 261 | /**************************** Front End Queues ********************************/ | ||
| 262 | /* | ||
| 263 | * Data structure used to cast the Linux struct scsi_cmnd to something | ||
| 264 | * that allows us to use the queue macros. The linux structure has | ||
| 265 | * plenty of space to hold the links fields as required by the queue | ||
| 266 | * macros, but the queue macors require them to have the correct type. | ||
| 267 | */ | ||
| 268 | struct ahd_cmd_internal { | ||
| 269 | /* Area owned by the Linux scsi layer. */ | ||
| 270 | uint8_t private[offsetof(struct scsi_cmnd, SCp.Status)]; | ||
| 271 | union { | ||
| 272 | STAILQ_ENTRY(ahd_cmd) ste; | ||
| 273 | LIST_ENTRY(ahd_cmd) le; | ||
| 274 | TAILQ_ENTRY(ahd_cmd) tqe; | ||
| 275 | } links; | ||
| 276 | uint32_t end; | ||
| 277 | }; | ||
| 278 | |||
| 279 | struct ahd_cmd { | ||
| 280 | union { | ||
| 281 | struct ahd_cmd_internal icmd; | ||
| 282 | struct scsi_cmnd scsi_cmd; | ||
| 283 | } un; | ||
| 284 | }; | ||
| 285 | |||
| 286 | #define acmd_icmd(cmd) ((cmd)->un.icmd) | ||
| 287 | #define acmd_scsi_cmd(cmd) ((cmd)->un.scsi_cmd) | ||
| 288 | #define acmd_links un.icmd.links | ||
| 289 | |||
| 290 | /*************************** Device Data Structures ***************************/ | 259 | /*************************** Device Data Structures ***************************/ |
| 291 | /* | 260 | /* |
| 292 | * A per probed device structure used to deal with some error recovery | 261 | * A per probed device structure used to deal with some error recovery |
| @@ -297,13 +266,10 @@ struct ahd_cmd { | |||
| 297 | */ | 266 | */ |
| 298 | 267 | ||
| 299 | typedef enum { | 268 | typedef enum { |
| 300 | AHD_DEV_UNCONFIGURED = 0x01, | ||
| 301 | AHD_DEV_FREEZE_TIL_EMPTY = 0x02, /* Freeze queue until active == 0 */ | 269 | AHD_DEV_FREEZE_TIL_EMPTY = 0x02, /* Freeze queue until active == 0 */ |
| 302 | AHD_DEV_TIMER_ACTIVE = 0x04, /* Our timer is active */ | ||
| 303 | AHD_DEV_Q_BASIC = 0x10, /* Allow basic device queuing */ | 270 | AHD_DEV_Q_BASIC = 0x10, /* Allow basic device queuing */ |
| 304 | AHD_DEV_Q_TAGGED = 0x20, /* Allow full SCSI2 command queueing */ | 271 | AHD_DEV_Q_TAGGED = 0x20, /* Allow full SCSI2 command queueing */ |
| 305 | AHD_DEV_PERIODIC_OTAG = 0x40, /* Send OTAG to prevent starvation */ | 272 | AHD_DEV_PERIODIC_OTAG = 0x40, /* Send OTAG to prevent starvation */ |
| 306 | AHD_DEV_SLAVE_CONFIGURED = 0x80 /* slave_configure() has been called */ | ||
| 307 | } ahd_linux_dev_flags; | 273 | } ahd_linux_dev_flags; |
| 308 | 274 | ||
| 309 | struct ahd_linux_target; | 275 | struct ahd_linux_target; |
| @@ -432,7 +398,6 @@ struct ahd_platform_data { | |||
| 432 | uint32_t irq; /* IRQ for this adapter */ | 398 | uint32_t irq; /* IRQ for this adapter */ |
| 433 | uint32_t bios_address; | 399 | uint32_t bios_address; |
| 434 | uint32_t mem_busaddr; /* Mem Base Addr */ | 400 | uint32_t mem_busaddr; /* Mem Base Addr */ |
| 435 | uint64_t hw_dma_mask; | ||
| 436 | #define AHD_SCB_UP_EH_SEM 0x1 | 401 | #define AHD_SCB_UP_EH_SEM 0x1 |
| 437 | uint32_t flags; | 402 | uint32_t flags; |
| 438 | }; | 403 | }; |
diff --git a/drivers/scsi/aic7xxx/aic79xx_osm_pci.c b/drivers/scsi/aic7xxx/aic79xx_osm_pci.c index 91daf0c7fb10..7cfb2eb2b868 100644 --- a/drivers/scsi/aic7xxx/aic79xx_osm_pci.c +++ b/drivers/scsi/aic7xxx/aic79xx_osm_pci.c | |||
| @@ -177,15 +177,12 @@ ahd_linux_pci_dev_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
| 177 | if (memsize >= 0x8000000000ULL | 177 | if (memsize >= 0x8000000000ULL |
| 178 | && pci_set_dma_mask(pdev, DMA_64BIT_MASK) == 0) { | 178 | && pci_set_dma_mask(pdev, DMA_64BIT_MASK) == 0) { |
| 179 | ahd->flags |= AHD_64BIT_ADDRESSING; | 179 | ahd->flags |= AHD_64BIT_ADDRESSING; |
| 180 | ahd->platform_data->hw_dma_mask = DMA_64BIT_MASK; | ||
| 181 | } else if (memsize > 0x80000000 | 180 | } else if (memsize > 0x80000000 |
| 182 | && pci_set_dma_mask(pdev, mask_39bit) == 0) { | 181 | && pci_set_dma_mask(pdev, mask_39bit) == 0) { |
| 183 | ahd->flags |= AHD_39BIT_ADDRESSING; | 182 | ahd->flags |= AHD_39BIT_ADDRESSING; |
| 184 | ahd->platform_data->hw_dma_mask = mask_39bit; | ||
| 185 | } | 183 | } |
| 186 | } else { | 184 | } else { |
| 187 | pci_set_dma_mask(pdev, DMA_32BIT_MASK); | 185 | pci_set_dma_mask(pdev, DMA_32BIT_MASK); |
| 188 | ahd->platform_data->hw_dma_mask = DMA_32BIT_MASK; | ||
| 189 | } | 186 | } |
| 190 | ahd->dev_softc = pci; | 187 | ahd->dev_softc = pci; |
| 191 | error = ahd_pci_config(ahd, entry); | 188 | error = ahd_pci_config(ahd, entry); |
