aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/alc
diff options
context:
space:
mode:
authorPyun YongHyeon <yongari@FreeBSD.org>2010-08-07 23:33:06 +0000
committerPyun YongHyeon <yongari@FreeBSD.org>2010-08-07 23:33:06 +0000
commit1e77baed0db7bb121fc11412266be927ce1b96dc (patch)
tree5067abd41317fb615bfe632cf36084e4c40b3b2f /sys/dev/alc
parente7a28130c4b93438fdf80b3163b5429efa119428 (diff)
downloadsrc-1e77baed0db7bb121fc11412266be927ce1b96dc.tar.gz
src-1e77baed0db7bb121fc11412266be927ce1b96dc.zip
Controller does not seem to support more than 1024 bytes DMA burst.
Limit DMA burst size to be less than or equal to 1024 bytes.
Notes
Notes: svn path=/head/; revision=211047
Diffstat (limited to 'sys/dev/alc')
-rw-r--r--sys/dev/alc/if_alc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/alc/if_alc.c b/sys/dev/alc/if_alc.c
index c685b84e8633..84d22730fb26 100644
--- a/sys/dev/alc/if_alc.c
+++ b/sys/dev/alc/if_alc.c
@@ -610,6 +610,10 @@ alc_attach(device_t dev)
device_printf(dev, "TLP payload size : %u bytes.\n",
alc_dma_burst[sc->alc_dma_wr_burst]);
}
+ if (alc_dma_burst[sc->alc_dma_rd_burst] > 1024)
+ sc->alc_dma_rd_burst = 3;
+ if (alc_dma_burst[sc->alc_dma_wr_burst] > 1024)
+ sc->alc_dma_wr_burst = 3;
/* Clear data link and flow-control protocol error. */
val = CSR_READ_4(sc, ALC_PEX_UNC_ERR_SEV);
val &= ~(PEX_UNC_ERR_SEV_DLP | PEX_UNC_ERR_SEV_FCP);