|
707 | 707 | #define AS_BYTES_PER_SAMPLE(node) \ |
708 | 708 | DT_PROP(node, subslot_size) |
709 | 709 |
|
| 710 | +#define AS_FS_DATA_EP_BINTERVAL(node) \ |
| 711 | + USB_FS_INT_EP_INTERVAL(DT_PROP_OR(node, polling_period_us, 1)) |
| 712 | + |
| 713 | +#define AS_HS_DATA_EP_BINTERVAL(node) \ |
| 714 | + USB_HS_INT_EP_INTERVAL(DT_PROP_OR(x, polling_period_us, 1)) |
| 715 | + |
710 | 716 | /* Asynchronous endpoints needs space for 1 extra sample */ |
711 | 717 | #define AS_SAMPLES_PER_FRAME(node) \ |
712 | | - ((ROUND_UP(AS_CLK_MAX_FREQUENCY(node), 1000) / 1000) + \ |
| 718 | + ((ROUND_UP(AS_CLK_MAX_FREQUENCY(node), 1000) / 1000) * \ |
| 719 | + AS_FS_DATA_EP_BINTERVAL(node) + \ |
713 | 720 | UTIL_NOT(AS_IS_SOF_SYNCHRONIZED(node))) |
714 | 721 |
|
715 | 722 | #define AS_SAMPLES_PER_MICROFRAME(node) \ |
716 | | - ((ROUND_UP(AS_CLK_MAX_FREQUENCY(node), 8000) / 8000) + \ |
| 723 | + ((ROUND_UP((AS_CLK_MAX_FREQUENCY(node), 8000) / 8000) << |
| 724 | + (AS_HS_DATA_EP_BINTERVAL(node) - 1)) + \ |
717 | 725 | UTIL_NOT(AS_IS_SOF_SYNCHRONIZED(node))) |
718 | 726 |
|
719 | 727 | #define AS_DATA_EP_SYNC_TYPE(node) \ |
|
728 | 736 | AS_DATA_EP_USAGE_TYPE(node) |
729 | 737 |
|
730 | 738 | #define AS_FS_DATA_EP_MAX_PACKET_SIZE(node) \ |
731 | | - AUDIO_STREAMING_NUM_SPATIAL_LOCATIONS(node) * \ |
732 | | - AS_BYTES_PER_SAMPLE(node) * AS_SAMPLES_PER_FRAME(node) |
| 739 | + (AUDIO_STREAMING_NUM_SPATIAL_LOCATIONS(node) * \ |
| 740 | + AS_BYTES_PER_SAMPLE(node) * AS_SAMPLES_PER_FRAME(node)) \ |
| 741 | + << (AS_FS_DATA_EP_BINTERVAL(node) - 1) |
733 | 742 |
|
734 | 743 | #define AS_HS_DATA_EP_TPL(node) \ |
735 | 744 | USB_TPL_ROUND_UP(AUDIO_STREAMING_NUM_SPATIAL_LOCATIONS(node) * \ |
|
745 | 754 | AS_DATA_EP_ADDR(node), /* bEndpointAddress */ \ |
746 | 755 | AS_DATA_EP_ATTR(node), /* bmAttributes */ \ |
747 | 756 | U16_LE(AS_FS_DATA_EP_MAX_PACKET_SIZE(node)), /* wMaxPacketSize */ \ |
748 | | - 0x01, /* bInterval */ |
| 757 | + AS_FS_DATA_EP_BINTERVAL(node), /* bInterval */ |
749 | 758 |
|
750 | 759 | #define AS_ISOCHRONOUS_DATA_ENDPOINT_FS_DESCRIPTORS_ARRAYS(node) \ |
751 | 760 | static uint8_t DESCRIPTOR_NAME(fs_std_data_ep, node)[] = { \ |
|
758 | 767 | AS_DATA_EP_ADDR(node), /* bEndpointAddress */ \ |
759 | 768 | AS_DATA_EP_ATTR(node), /* bmAttributes */ \ |
760 | 769 | U16_LE(AS_HS_DATA_EP_MAX_PACKET_SIZE(node)), /* wMaxPacketSize */ \ |
761 | | - 0x01, /* bInterval */ |
| 770 | + AS_HS_DATA_EP_BINTERVAL(node), /* bInterval */ |
762 | 771 |
|
763 | 772 | #define AS_ISOCHRONOUS_DATA_ENDPOINT_HS_DESCRIPTORS_ARRAYS(node) \ |
764 | 773 | static uint8_t DESCRIPTOR_NAME(hs_std_data_ep, node)[] = { \ |
|
0 commit comments