On 13.05.2016, at 12:54, Mark Brown broonie@kernel.org wrote:
On Fri, May 13, 2016 at 09:14:13AM +0000, kernel@martin.sperl.org wrote:
+static int snd_rpi_hifiberry_dac_init(struct snd_soc_pcm_runtime *rtd) +{
- return 0;
+}
Remove empty functions. Either they are redundant or you really need to do something in them.
Sure this can get removed.
As said - it is just pushing the patches upstream, so I did not even touch it.
+static struct snd_soc_dai_link snd_rpi_hifiberry_dac_dai[] = { +{
- .name = "HifiBerry DAC",
- .stream_name = "HifiBerry DAC HiFi",
- .cpu_dai_name = "bcm2708-i2s.0",
- .codec_dai_name = "pcm5102a-hifi",
- .platform_name = "bcm2708-i2s.0",
- .codec_name = "pcm5102a-codec",
I would expect all this to be done with DT references in a DT driver rather than hard coding static names - look at how simple-card does this. You could almost use simple-card here but the BCLK ratio requirement is probably a bit much, I'm not immediately seeing a nice way to specify the ratio there since it depends on the sample width.
Actually it is just: <sample-width> * <number of channels> where number of channels is fixed to 2 for bcm2835-i2s.
So maybe that already happens automatically in the framework?
I will need to test it...
I also know that some of the audio guys working on the rpi would like to be able to configure BCLK ratios based on both: sample frequency and sample_width.
Basically they want to control the clock divider/clock parent trying to avoid fractional dividers.
Something like this could get added to the core? Is there interest in getting something like this?
Could look like this: bclk-ratios = /* for 96kHz at 16bit/channel use bclk-ratio 40 */ <96000 16 40>, /* for 48kHz at 32bit/channel use bclk-ratio 80 */ <48000 16 80>, /* for any (other) sample frequency at 16 bit use bclk-ratio 32 */ <0 16 32>, /* for any (other) sample frequency at 32 bit use bclk-ratio 64 */ <0 32 64>;
but there could also be other approaches as well, how this could get described in the device tree.