Skip to content

Commit 26e57c6

Browse files
committed
fix(audio): fix audio feedback value caculation
Signed-off-by: sakumisu <1203593632@qq.com>
1 parent 5b74cec commit 26e57c6

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

class/audio/usb_audio.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1341,18 +1341,18 @@ struct audio_v2_control_range3_param_block {
13411341
(uint8_t)((frq >> 16)), (uint8_t)((frq >> 24))
13421342

13431343
/* format 10.14 */
1344-
#define AUDIO_UPDATE_FEEDBACK_DATA_FS(buf, freq) \
1345-
uint32_t value = ((freq / 1000) << 14) | ((freq % 1000) << 4); \
1346-
buf[0] = ((value >> 0U) & 0xFFU); \
1347-
buf[1] = ((value >> 8U) & 0xFFU); \
1348-
buf[2] = ((value >> 16U) & 0xFFU)
1344+
#define AUDIO_UPDATE_FEEDBACK_DATA_FS(buf, freq) \
1345+
uint32_t value = ((freq << 10) / 1000); \
1346+
m[0] = ((value << 4) & 0xFFU); \
1347+
m[1] = (((value << 4) >> 8U) & 0xFFU); \
1348+
m[2] = (((value << 4) >> 16U) & 0xFFU)
13491349

13501350
/* format 16.16 */
1351-
#define AUDIO_UPDATE_FEEDBACK_DATA_HS(buf, freq) \
1352-
uint32_t value = ((freq / 1000) << 13) | ((freq % 1000) << 3); \
1353-
buf[0] = ((value >> 0U) & 0xFFU); \
1354-
buf[1] = ((value >> 8U) & 0xFFU); \
1355-
buf[2] = ((value >> 16U) & 0xFFU); \
1356-
buf[3] = ((value >> 24U) & 0xFFU)
1351+
#define AUDIO_UPDATE_FEEDBACK_DATA_HS(buf, freq) \
1352+
uint32_t value = ((freq << 13) / 1000); \
1353+
buf[0] = (((value & 0x00001FFFu) << 3) & 0xFFu); \
1354+
buf[1] = ((((value & 0x00001FFFu) << 3) >> 8) & 0xFFu); \
1355+
buf[2] = (((value & 0x01FFE000u) >> 13) & 0xFFu); \
1356+
buf[3] = (((value & 0x01FFE000u) >> 21) & 0xFFu)
13571357

13581358
#endif /* USB_AUDIO_H */

0 commit comments

Comments
 (0)