snd_hda: Byteswap the buffer descriptor entries as needed

The buffer descriptor list entries should be in little endian format.  Byte swap
them on BE.  This is the last piece of the puzzle for snd_hda(4) to work on
PowerPC.
This commit is contained in:
Justin Hibbits 2018-07-31 17:18:58 +00:00
parent f2f5c2152c
commit 212de33eaf

View File

@ -1930,10 +1930,10 @@ hdac_stream_start(device_t dev, device_t child,
addr = (uint64_t)buf;
bdle = (struct hdac_bdle *)sc->streams[ss].bdl.dma_vaddr;
for (i = 0; i < blkcnt; i++, bdle++) {
bdle->addrl = (uint32_t)addr;
bdle->addrh = (uint32_t)(addr >> 32);
bdle->len = blksz;
bdle->ioc = 1;
bdle->addrl = htole32((uint32_t)addr);
bdle->addrh = htole32((uint32_t)(addr >> 32));
bdle->len = htole32(blksz);
bdle->ioc = htole32(1);
addr += blksz;
}