mirror of
https://github.com/hathach/tinyusb.git
synced 2025-05-09 07:11:16 +08:00
Optimize SOF.
This commit is contained in:
parent
33882b3e89
commit
ad85c37c03
@ -2045,8 +2045,6 @@ static bool audiod_set_interface(uint8_t rhport, tusb_control_request_t const *
|
|||||||
case AUDIO_FEEDBACK_METHOD_FREQUENCY_FLOAT:
|
case AUDIO_FEEDBACK_METHOD_FREQUENCY_FLOAT:
|
||||||
case AUDIO_FEEDBACK_METHOD_FREQUENCY_POWER_OF_2:
|
case AUDIO_FEEDBACK_METHOD_FREQUENCY_POWER_OF_2:
|
||||||
audiod_set_fb_params_freq(audio, fb_param.sample_freq, fb_param.frequency.mclk_freq);
|
audiod_set_fb_params_freq(audio, fb_param.sample_freq, fb_param.frequency.mclk_freq);
|
||||||
// Enable SOF interrupt
|
|
||||||
usbd_sof_enable(rhport, true);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AUDIO_FEEDBACK_METHOD_FIFO_COUNT:
|
case AUDIO_FEEDBACK_METHOD_FIFO_COUNT:
|
||||||
@ -2084,16 +2082,19 @@ static bool audiod_set_interface(uint8_t rhport, tusb_control_request_t const *
|
|||||||
|
|
||||||
#if CFG_TUD_AUDIO_ENABLE_FEEDBACK_EP
|
#if CFG_TUD_AUDIO_ENABLE_FEEDBACK_EP
|
||||||
// Disable SOF interrupt if no driver has any enabled feedback EP
|
// Disable SOF interrupt if no driver has any enabled feedback EP
|
||||||
bool disable = true;
|
bool enable_sof = false;
|
||||||
for(uint8_t i=0; i < CFG_TUD_AUDIO; i++)
|
for(uint8_t i=0; i < CFG_TUD_AUDIO; i++)
|
||||||
{
|
{
|
||||||
if (_audiod_fct[i].ep_fb != 0)
|
if (_audiod_fct[i].ep_fb != 0 &&
|
||||||
|
(_audiod_fct[i].feedback.compute_method == AUDIO_FEEDBACK_METHOD_FREQUENCY_FIXED ||
|
||||||
|
_audiod_fct[i].feedback.compute_method == AUDIO_FEEDBACK_METHOD_FREQUENCY_FLOAT ||
|
||||||
|
_audiod_fct[i].feedback.compute_method == AUDIO_FEEDBACK_METHOD_FREQUENCY_POWER_OF_2 ))
|
||||||
{
|
{
|
||||||
disable = false;
|
enable_sof = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (disable) usbd_sof_enable(rhport, SOF_CONSUMER_AUDIO, false);
|
usbd_sof_enable(rhport, SOF_CONSUMER_AUDIO, enable_sof);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CFG_TUD_AUDIO_ENABLE_EP_IN && CFG_TUD_AUDIO_EP_IN_FLOW_CONTROL
|
#if CFG_TUD_AUDIO_ENABLE_EP_IN && CFG_TUD_AUDIO_EP_IN_FLOW_CONTROL
|
||||||
|
Loading…
x
Reference in New Issue
Block a user