Hi Kirill,
On 12/11/2020 9.57, Kirill Marinushkin wrote:
The set_fmt callback is there to set the bus format, it has nothing to do (in most cases) with the sample format (hw_params). Bus coding, clock source has nothing to do with hw_params.
When you bind a link you will use set_fmt for the two sides to see if they can agree, that both can support what has been asked.
The pcm512x driver just saves the fmt and say back to that card: whatever, I'm fine with it. But runtime during hw_params it can fail due to unsupported bus format, which it actually acked to be ok.
This is the difference.
Sure, some device have constraint based on the fmt towards the hw_params and it is perfectly OK to do such a checks and rejections or build rules/constraints based on fmt, but failing hw_params just because set_fmt did not checked that the bus format is not even supported is not a nice thing to do.
Those are good arguments
Would you agree?
I don't have a device to test, I'm just trying to point out what is the right thing to do.
I have a device to test. I will move format checks into `pcm512x_set_fmt()`, ensure that it works properly, and submit as patch v3.
Thank you. I know it is slightly more work.
When you send v3 please do not use --in-reply-to, let it be itself.
Regards, - Péter
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki