Commit 5369bea7 authored by Russell King's avatar Russell King Committed by Russell King

[ARM] dma: Use sensible DMA parameters for Acorn drivers

The hardware supports transfers up to a page boundary per buffer.
Currently, we work around that in the DMA code by splitting each
buffer up as we run through the scatterlist.  Avoid this by telling
the block layers about the hardware restriction.

Eventually, this will allow us to phase out the splitting code,
but not until the old IDE layer allows us to control the value it
gives to blk_queue_segment_boundary().
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent f6718653
...@@ -23,5 +23,7 @@ ...@@ -23,5 +23,7 @@
#define DMA_FLOPPY DMA_VIRTUAL_FLOPPY #define DMA_FLOPPY DMA_VIRTUAL_FLOPPY
#define IOMD_DMA_BOUNDARY (PAGE_SIZE - 1)
#endif /* _ASM_ARCH_DMA_H */ #endif /* _ASM_ARCH_DMA_H */
...@@ -45,8 +45,6 @@ static const struct portinfo pata_icside_portinfo_v6_2 = { ...@@ -45,8 +45,6 @@ static const struct portinfo pata_icside_portinfo_v6_2 = {
.stepping = 6, .stepping = 6,
}; };
#define PATA_ICSIDE_MAX_SG 128
struct pata_icside_state { struct pata_icside_state {
void __iomem *irq_port; void __iomem *irq_port;
void __iomem *ioc_base; void __iomem *ioc_base;
...@@ -295,8 +293,8 @@ static int icside_dma_init(struct pata_icside_info *info) ...@@ -295,8 +293,8 @@ static int icside_dma_init(struct pata_icside_info *info)
static struct scsi_host_template pata_icside_sht = { static struct scsi_host_template pata_icside_sht = {
ATA_BASE_SHT(DRV_NAME), ATA_BASE_SHT(DRV_NAME),
.sg_tablesize = PATA_ICSIDE_MAX_SG, .sg_tablesize = SCSI_MAX_SG_CHAIN_SEGMENTS,
.dma_boundary = ~0, /* no dma boundaries */ .dma_boundary = IOMD_DMA_BOUNDARY,
}; };
static void pata_icside_postreset(struct ata_link *link, unsigned int *classes) static void pata_icside_postreset(struct ata_link *link, unsigned int *classes)
......
...@@ -390,7 +390,8 @@ static struct scsi_host_template cumanascsi2_template = { ...@@ -390,7 +390,8 @@ static struct scsi_host_template cumanascsi2_template = {
.eh_abort_handler = fas216_eh_abort, .eh_abort_handler = fas216_eh_abort,
.can_queue = 1, .can_queue = 1,
.this_id = 7, .this_id = 7,
.sg_tablesize = SG_ALL, .sg_tablesize = SCSI_MAX_SG_CHAIN_SEGMENTS,
.dma_boundary = IOMD_DMA_BOUNDARY,
.cmd_per_lun = 1, .cmd_per_lun = 1,
.use_clustering = DISABLE_CLUSTERING, .use_clustering = DISABLE_CLUSTERING,
.proc_name = "cumanascsi2", .proc_name = "cumanascsi2",
......
...@@ -508,7 +508,8 @@ static struct scsi_host_template eesox_template = { ...@@ -508,7 +508,8 @@ static struct scsi_host_template eesox_template = {
.eh_abort_handler = fas216_eh_abort, .eh_abort_handler = fas216_eh_abort,
.can_queue = 1, .can_queue = 1,
.this_id = 7, .this_id = 7,
.sg_tablesize = SG_ALL, .sg_tablesize = SCSI_MAX_SG_CHAIN_SEGMENTS,
.dma_boundary = IOMD_DMA_BOUNDARY,
.cmd_per_lun = 1, .cmd_per_lun = 1,
.use_clustering = DISABLE_CLUSTERING, .use_clustering = DISABLE_CLUSTERING,
.proc_name = "eesox", .proc_name = "eesox",
......
...@@ -302,7 +302,8 @@ static struct scsi_host_template powertecscsi_template = { ...@@ -302,7 +302,8 @@ static struct scsi_host_template powertecscsi_template = {
.can_queue = 8, .can_queue = 8,
.this_id = 7, .this_id = 7,
.sg_tablesize = SG_ALL, .sg_tablesize = SCSI_MAX_SG_CHAIN_SEGMENTS,
.dma_boundary = IOMD_DMA_BOUNDARY,
.cmd_per_lun = 2, .cmd_per_lun = 2,
.use_clustering = ENABLE_CLUSTERING, .use_clustering = ENABLE_CLUSTERING,
.proc_name = "powertec", .proc_name = "powertec",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment