diff options
author | Finn Thain <fthain@telegraphics.com.au> | 2008-04-25 11:06:05 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-04-27 13:19:57 -0400 |
commit | 6fe07aaffbf086a0ce9134ef27ce4a8921ff5947 (patch) | |
tree | 3df572890c012b0a23662141fc4e538a36b66b10 /drivers/scsi/esp_scsi.h | |
parent | 6d9d63b9480e1c7ea41845646de803c2d3f0eae2 (diff) |
[SCSI] m68k: new mac_esp scsi driver
Replace the mac_esp driver with a new one based on the esp_scsi core.
For esp_scsi: add support for sync transfers for the PIO mode, add a new
esp_driver_ops method to get the maximum dma transfer size (like the old
NCR53C9x driver), and some cleanups.
Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/esp_scsi.h')
-rw-r--r-- | drivers/scsi/esp_scsi.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/scsi/esp_scsi.h b/drivers/scsi/esp_scsi.h index 9367a88d3974..bb43a1388188 100644 --- a/drivers/scsi/esp_scsi.h +++ b/drivers/scsi/esp_scsi.h | |||
@@ -224,7 +224,7 @@ | |||
224 | #define ESP_TIMEO_CONST 8192 | 224 | #define ESP_TIMEO_CONST 8192 |
225 | #define ESP_NEG_DEFP(mhz, cfact) \ | 225 | #define ESP_NEG_DEFP(mhz, cfact) \ |
226 | ((ESP_BUS_TIMEOUT * ((mhz) / 1000)) / (8192 * (cfact))) | 226 | ((ESP_BUS_TIMEOUT * ((mhz) / 1000)) / (8192 * (cfact))) |
227 | #define ESP_MHZ_TO_CYCLE(mhertz) ((1000000000) / ((mhertz) / 1000)) | 227 | #define ESP_HZ_TO_CYCLE(hertz) ((1000000000) / ((hertz) / 1000)) |
228 | #define ESP_TICK(ccf, cycle) ((7682 * (ccf) * (cycle) / 1000)) | 228 | #define ESP_TICK(ccf, cycle) ((7682 * (ccf) * (cycle) / 1000)) |
229 | 229 | ||
230 | /* For slow to medium speed input clock rates we shoot for 5mb/s, but for high | 230 | /* For slow to medium speed input clock rates we shoot for 5mb/s, but for high |
@@ -368,6 +368,12 @@ struct esp_driver_ops { | |||
368 | */ | 368 | */ |
369 | int (*irq_pending)(struct esp *esp); | 369 | int (*irq_pending)(struct esp *esp); |
370 | 370 | ||
371 | /* Return the maximum allowable size of a DMA transfer for a | ||
372 | * given buffer. | ||
373 | */ | ||
374 | u32 (*dma_length_limit)(struct esp *esp, u32 dma_addr, | ||
375 | u32 dma_len); | ||
376 | |||
371 | /* Reset the DMA engine entirely. On return, ESP interrupts | 377 | /* Reset the DMA engine entirely. On return, ESP interrupts |
372 | * should be enabled. Often the interrupt enabling is | 378 | * should be enabled. Often the interrupt enabling is |
373 | * controlled in the DMA engine. | 379 | * controlled in the DMA engine. |
@@ -471,6 +477,7 @@ struct esp { | |||
471 | #define ESP_FLAG_DOING_SLOWCMD 0x00000004 | 477 | #define ESP_FLAG_DOING_SLOWCMD 0x00000004 |
472 | #define ESP_FLAG_WIDE_CAPABLE 0x00000008 | 478 | #define ESP_FLAG_WIDE_CAPABLE 0x00000008 |
473 | #define ESP_FLAG_QUICKIRQ_CHECK 0x00000010 | 479 | #define ESP_FLAG_QUICKIRQ_CHECK 0x00000010 |
480 | #define ESP_FLAG_DISABLE_SYNC 0x00000020 | ||
474 | 481 | ||
475 | u8 select_state; | 482 | u8 select_state; |
476 | #define ESP_SELECT_NONE 0x00 /* Not selecting */ | 483 | #define ESP_SELECT_NONE 0x00 /* Not selecting */ |