For sample rates of 8000 x n the driver makes an assumption of frame length based on sample format forcing 40bits frame for 16 bit signal which is incompatible with many codecs. It must be a decision of the card driver, not cpu.
IMO, set_sysclk with clk_id as the frame length could be used. Then the cpu driver wouldn't have to guess.
For sample rates of 8000 x n the driver makes an assumption of frame length based on sample format forcing 40bits frame for 16 bit signal which is incompatible with many codecs. It must be a decision of the card driver, not cpu. IMO, set_sysclk with clk_id as the frame length could be used. Then the cpu driver wouldn't have to guess.