|
| 1 | +#include <inttypes.h> |
1 | 2 | #include <math.h> |
2 | 3 | #include <pthread.h> |
3 | 4 | #include <stdio.h> |
4 | 5 | #include <string.h> |
5 | | -#include <inttypes.h> |
6 | 6 |
|
7 | 7 | #define CNFA_IMPLEMENTATION |
8 | 8 | #include "CNFA_sf.h" |
@@ -580,7 +580,7 @@ static int virtio_snd_desc_handler(virtio_snd_state_t *vsnd, |
580 | 580 | uint32_t *plen) |
581 | 581 | { |
582 | 582 | /* TODO: clarify the use of the third descriptor */ |
583 | | - /* virtio-snd uses at most 3 virtqueue descriptors, where |
| 583 | + /* virtio-snd command uses at most 3 virtqueue descriptors, where |
584 | 584 | * the first descriptor contains: |
585 | 585 | * struct virtio_snd_hdr hdr (for request) |
586 | 586 | * the second descriptors contains: |
@@ -668,28 +668,28 @@ static int virtio_snd_tx_desc_handler(virtio_snd_state_t *vsnd, |
668 | 668 | uint32_t desc_idx, |
669 | 669 | uint32_t *plen) |
670 | 670 | { |
671 | | - /* TODO: clarify the use of the third descriptor */ |
672 | | - /* virtio-snd uses at most 3 virtqueue descriptors, where |
673 | | - * the first descriptor contains: |
| 671 | + /* TODO: clarify the usage of last descriptor. */ |
| 672 | + /* virtio-snd TX uses arbitrary number of virtqueue descriptors. |
| 673 | + * The first descritor descriptor contains: |
674 | 674 | * struct virtio_snd_hdr hdr (for request) |
675 | | - * the second descriptors contains: |
676 | | - * struct virtio_snd_hdr hdr (for response) |
677 | | - * if needed, the third descriptors contains: |
| 675 | + * Next, the payload consists of one or more descriptors |
| 676 | + * representing PCM frames. |
| 677 | + * Finally, the last descriptors contains: |
678 | 678 | * (response payload structure) |
679 | 679 | */ |
680 | 680 | struct virtq_desc vq_desc[VSND_DESC_CNT]; |
681 | 681 |
|
682 | 682 | /* Collect the descriptors */ |
683 | 683 | int i = 0; |
684 | | - while(true) { |
| 684 | + while (true) { |
685 | 685 | /* The size of the `struct virtq_desc` is 4 words */ |
686 | 686 | const uint32_t *desc = &vsnd->ram[queue->QueueDesc + desc_idx * 4]; |
687 | 687 |
|
688 | 688 | /* Retrieve the fields of current descriptor */ |
689 | | - if(i < VSND_DESC_CNT) { |
690 | | - vq_desc[i].addr = desc[0]; |
691 | | - vq_desc[i].len = desc[2]; |
692 | | - vq_desc[i].flags = desc[3]; |
| 689 | + if (i < VSND_DESC_CNT) { |
| 690 | + vq_desc[i].addr = desc[0]; |
| 691 | + vq_desc[i].len = desc[2]; |
| 692 | + vq_desc[i].flags = desc[3]; |
693 | 693 | } |
694 | 694 | desc_idx = desc[3] >> 16; /* vq_desc[desc_cnt].next */ |
695 | 695 |
|
|
0 commit comments