On Sat, Jun 6, 2009 at 10:12 PM, Mark Brown<broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote: > On Wed, Jun 03, 2009 at 08:33:42PM +0800, Eric Miao wrote: > >> +/* frame size definitions for I2S and Left_J formats - default is >> + * 32fs, other possibilities are 48fs, 64fs and 96fs >> + */ >> +#define PXA_SSP_FRM_32FS (0 << 16) >> +#define PXA_SSP_FRM_48FS (1 << 16) >> +#define PXA_SSP_FRM_64FS (2 << 16) >> +#define PXA_SSP_FRM_96FS (3 << 16) >> +#define PXA_SSP_FRM_WIDTH(x) (((((x) >> 16) & 0x3) + 2) << 4) >> + > > I still haven't checked this on Zylonite but I wanted to mention these > new DAI format bits just now - as previously discussed I'm not > enthusiastic about this. Agreed. Also, if I had to use this to configure magician with DSP_A (right now it says I2S and LEFT_J only, but why limit it to that?), I'd need an additional PXA_SSP_FRM_16FS. > As well as the previous issues I raised with > this approach I also meant to mention is that the use of a bitfield will > inevitably restrict what can be expressed, causing real problems for > some systems. For example, the WM9081 supports systems using up to 3 > stereo TDM slots and up to 32 bit samples so could be used in a system > which needs a 192fs bit clock. > > If we did decide to adopt this approach then these defines should be in > the ASoC headers rather than private to this driver - apart from > anything else, there's every chance that additions to the standard bits > could end up colliding with this. > > I'm still not sure what the best way to handle this is due to the > interaction with TDM mode. The fact that TDM mode really wants to > always explicitly specify the frame width in order to allow the sample > size in each slot to vary suggests that one option would be to add a > sample width parameter to set_tdm_slot() - given the very small number > of in tree users it'd cause little disruption. A set_sample_width() > operation could also be added. set_sample_width or set_frame_width? I'd prefer a separate operation over a parameter to set_tdm_slot because in my setup I just need to force the (SSP) frame width to 16 bits. Enabling network mode and calling set_tdm_slot(..,1,1) wouldn't be necessary at all, then. regards Philipp _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel