1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-18 10:35:55 +00:00

allocate isa bounce buffers of the right size for ess/mss cards, fixes

panics reported
This commit is contained in:
Cameron Grant 2000-01-05 00:39:20 +00:00
parent 54986abd15
commit 9d1671b8c2
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=55424
4 changed files with 14 additions and 8 deletions

View File

@ -313,12 +313,12 @@ mss_alloc_resources(struct mss_info *mss, device_t dev)
if (ok) {
mss->pdma = rman_get_start(mss->drq1);
isa_dma_acquire(mss->pdma);
isa_dmainit(mss->pdma, DSP_BUFFSIZE);
isa_dmainit(mss->pdma, MSS_BUFFSIZE);
mss->bd_flags &= ~BD_F_DUPLEX;
if (mss->drq2) {
mss->rdma = rman_get_start(mss->drq2);
isa_dma_acquire(mss->rdma);
isa_dmainit(mss->rdma, DSP_BUFFSIZE);
isa_dmainit(mss->rdma, MSS_BUFFSIZE);
mss->bd_flags |= BD_F_DUPLEX;
} else mss->rdma = mss->pdma;
}

View File

@ -418,12 +418,14 @@ sb_alloc_resources(struct sb_info *sb, device_t dev)
RF_ACTIVE);
if (sb->io_base && sb->drq1 && sb->irq) {
int bs = (sb->bd_flags & BD_F_ESS)? ESS_BUFFSIZE : DSP_BUFFSIZE;
isa_dma_acquire(rman_get_start(sb->drq1));
isa_dmainit(rman_get_start(sb->drq1), DSP_BUFFSIZE);
isa_dmainit(rman_get_start(sb->drq1), bs);
if (sb->drq2) {
isa_dma_acquire(rman_get_start(sb->drq2));
isa_dmainit(rman_get_start(sb->drq2), DSP_BUFFSIZE);
isa_dmainit(rman_get_start(sb->drq2), bs);
}
return 0;

View File

@ -418,12 +418,14 @@ sb_alloc_resources(struct sb_info *sb, device_t dev)
RF_ACTIVE);
if (sb->io_base && sb->drq1 && sb->irq) {
int bs = (sb->bd_flags & BD_F_ESS)? ESS_BUFFSIZE : DSP_BUFFSIZE;
isa_dma_acquire(rman_get_start(sb->drq1));
isa_dmainit(rman_get_start(sb->drq1), DSP_BUFFSIZE);
isa_dmainit(rman_get_start(sb->drq1), bs);
if (sb->drq2) {
isa_dma_acquire(rman_get_start(sb->drq2));
isa_dmainit(rman_get_start(sb->drq2), DSP_BUFFSIZE);
isa_dmainit(rman_get_start(sb->drq2), bs);
}
return 0;

View File

@ -418,12 +418,14 @@ sb_alloc_resources(struct sb_info *sb, device_t dev)
RF_ACTIVE);
if (sb->io_base && sb->drq1 && sb->irq) {
int bs = (sb->bd_flags & BD_F_ESS)? ESS_BUFFSIZE : DSP_BUFFSIZE;
isa_dma_acquire(rman_get_start(sb->drq1));
isa_dmainit(rman_get_start(sb->drq1), DSP_BUFFSIZE);
isa_dmainit(rman_get_start(sb->drq1), bs);
if (sb->drq2) {
isa_dma_acquire(rman_get_start(sb->drq2));
isa_dmainit(rman_get_start(sb->drq2), DSP_BUFFSIZE);
isa_dmainit(rman_get_start(sb->drq2), bs);
}
return 0;