On 11/7/22 04:34, Venkata Prasad Potturu wrote: > > On 11/2/22 17:02, Mark Brown wrote: >>> On 11/1/22 20:01, Mark Brown wrote: >>>> On Tue, Nov 01, 2022 at 03:15:08PM +0530, Venkata Prasad Potturu wrote: >>>> Right, that's what the code does but why is this something that should >>>> be controlled in this fashion? >>> This machine driver is common for TDM mode and I2S mode, user can >>> select TDM >>> mode or I2S mode. >> Why would the user choose one value or the other, and why would this >> choice be something that only changes at module load time? If this is >> user controllable I'd really expect it to be runtime controllable. >> You're not explaining why this is a module parameter. > > Different vendors/OEM's use the same hardware as one need I2S mode and > other need TDM mode, using common driver to support I2S and TDM mode > with this parameter. > > > static int tdm_mode = 0; > module_param_named(tdm_mode, tdm_mode, int, 0444); > > And this can be runtime controllable by setting permissions as 0644, we > will change and send next version patch. kernel parameters are difficult to manage for distributions using a single-build. Either all platforms use the kernel parameter or none of them do. That would not allow a per-platform choice of parameters. Using DMI quirks or ACPI identifiers would be a lot less problematic, no?