File tree Expand file tree Collapse file tree 1 file changed +8
-2
lines changed Expand file tree Collapse file tree 1 file changed +8
-2
lines changed Original file line number Diff line number Diff line change @@ -110,10 +110,16 @@ static void find_suitable_clock(const struct i2s_nrfx_drv_cfg *drv_cfg,
110110 * f_actual = f_source /
111111 * floor(1048576 * 4096 / MCKFREQ)
112112 */
113+ enum { MCKCONST = 1048576 };
113114 uint32_t mck_factor =
114- (uint32_t )((requested_mck * 1048576ULL ) /
115+ (uint32_t )((( uint64_t ) requested_mck * MCKCONST ) /
115116 (src_freq + requested_mck / 2 ));
116- uint32_t actual_mck = src_freq / (1048576 / mck_factor );
117+
118+ /* skip cases when mck_factor is too big for dividing */
119+ if (mck_factor > MCKCONST ) {
120+ continue ;
121+ }
122+ uint32_t actual_mck = src_freq / (MCKCONST / mck_factor );
117123
118124 uint32_t lrck_freq = actual_mck / ratios [r ].ratio_val ;
119125 uint32_t diff = lrck_freq >= i2s_cfg -> frame_clk_freq
You can’t perform that action at this time.
0 commit comments