libaudiodriver: readd callback to drv_int_sum()
The callback, which was dropped in commit git-842c4ed, allows drivers to fetch the interrupt status once and save it locally for subsequent calls to drv_int(). This fixes #190 . Change-Id: I83918656f637e716f60e9f4c19f1498f761d3b52
This commit is contained in:
parent
10a44c0ee2
commit
192c3a97f6
@ -496,15 +496,18 @@ static void msg_hardware(unsigned int UNUSED(mask))
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* loop over all sub devices */
|
/* if we have an interrupt */
|
||||||
for ( i = 0; i < drv.NrOfSubDevices; i++) {
|
if (drv_int_sum()) {
|
||||||
/* if interrupt from sub device and Dma transfer
|
/* loop over all sub devices */
|
||||||
was actually busy, take care of business */
|
for ( i = 0; i < drv.NrOfSubDevices; i++) {
|
||||||
if( drv_int(i) && sub_dev[i].DmaBusy ) {
|
/* if interrupt from sub device and Dma transfer
|
||||||
if (sub_dev[i].DmaMode == WRITE_DMA)
|
was actually busy, take care of business */
|
||||||
handle_int_write(i);
|
if( drv_int(i) && sub_dev[i].DmaBusy ) {
|
||||||
if (sub_dev[i].DmaMode == READ_DMA)
|
if (sub_dev[i].DmaMode == WRITE_DMA)
|
||||||
handle_int_read(i);
|
handle_int_write(i);
|
||||||
|
if (sub_dev[i].DmaMode == READ_DMA)
|
||||||
|
handle_int_read(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user