Lines 678-691
hda_stream_start(struct hda_softc *sc, uint8_t stream_ind)
Link Here
|
678 |
|
678 |
|
679 |
st->bdl_cnt = bdl_cnt; |
679 |
st->bdl_cnt = bdl_cnt; |
680 |
|
680 |
|
|
|
681 |
bdl_vaddr -= 4; |
681 |
bdle = (struct hda_bdle *)bdl_vaddr; |
682 |
bdle = (struct hda_bdle *)bdl_vaddr; |
682 |
for (i = 0; i < bdl_cnt; i++, bdle++) { |
683 |
for (i = 0; i < bdl_cnt; i++, bdle++) { |
683 |
bdle_sz = bdle->len; |
684 |
bdle_sz = bdle->len; |
684 |
assert(!(bdle_sz % HDA_DMA_ACCESS_LEN)); |
685 |
// assert(!(bdle_sz % HDA_DMA_ACCESS_LEN)); |
685 |
|
686 |
|
686 |
bdle_addrl = bdle->addrl; |
687 |
bdle_addrl = bdle->addrl; |
687 |
bdle_addrh = bdle->addrh; |
688 |
bdle_addrh = bdle->addrh; |
688 |
|
689 |
|
|
|
690 |
bdle_paddr = bdle_addrl | (bdle_addrh << 32); |
691 |
DPRINTF("paddr: 0x%lx, size: 0x%x, ioc: 0x%x\n", bdle_paddr, bdle_sz, bdle->ioc); |
692 |
} |
693 |
|
694 |
bdle = (struct hda_bdle *)bdl_vaddr; |
695 |
for (i = 0; i < bdl_cnt; i++, bdle++) { |
696 |
bdle_sz = bdle->len; |
697 |
assert(!(bdle_sz % HDA_DMA_ACCESS_LEN)); |
698 |
|
699 |
bdle_addrl = bdle->addrl; |
700 |
// bdle_addrh = bdle->addrh; |
701 |
bdle_addrh = 0; |
702 |
|
689 |
bdle_paddr = bdle_addrl | (bdle_addrh << 32); |
703 |
bdle_paddr = bdle_addrl | (bdle_addrh << 32); |
690 |
bdle_vaddr = hda_dma_get_vaddr(sc, bdle_paddr, bdle_sz); |
704 |
bdle_vaddr = hda_dma_get_vaddr(sc, bdle_paddr, bdle_sz); |
691 |
if (!bdle_vaddr) { |
705 |
if (!bdle_vaddr) { |