alsa-devel-bounces@xxxxxxxxxxxxxxxx wrote: > Add a mechanism to register a machine specific callback > to calculate and set the McBSP Tx/Rx threshold. > > Signed-off-by: Liam Girdwood <lrg@xxxxxxxxxxxxxxx> > --- > sound/soc/omap/omap-mcbsp.c | 22 +++++++++++++++++++++- > sound/soc/omap/omap-mcbsp.h | 2 ++ > 2 files changed, 23 insertions(+), 1 deletions(-) > > diff --git a/sound/soc/omap/omap-mcbsp.c > b/sound/soc/omap/omap-mcbsp.c index 6f44cb4..9a1583d 100644 --- > a/sound/soc/omap/omap-mcbsp.c +++ b/sound/soc/omap/omap-mcbsp.c > @@ -51,6 +51,9 @@ struct omap_mcbsp_data { > unsigned int bus_id; > struct omap_mcbsp_reg_cfg regs; > unsigned int fmt; > + > + /* optional machine set_threshold() sample value */ > + void (*mach_set_threshold)(struct snd_pcm_substream *substream); > /* * Flags indicating is the bus already activated and > configured by > * another substream > @@ -306,7 +309,11 @@ static int > omap_mcbsp_dai_hw_params(struct snd_pcm_substream *substream, > } else if (cpu_is_omap343x()) { > dma = omap24xx_dma_reqs[bus_id][substream->stream]; > port = omap34xx_mcbsp_port[bus_id][substream->stream]; - > omap_mcbsp_dai_dma_params[id][substream->stream].set_threshold = > + if (mcbsp_data->mach_set_threshold) > + > omap_mcbsp_dai_dma_params[id][substream->stream].set_threshold = + > mcbsp_data->mach_set_threshold; > + else > + > omap_mcbsp_dai_dma_params[id][substream->stream].set_threshold = > > omap_mcbsp_set_threshold; > /* TODO: Currently, MODE_ELEMENT == MODE_FRAME */ > if (omap_mcbsp_get_dma_op_mode(bus_id) == > @@ -835,6 +842,19 @@ int omap_mcbsp_st_add_controls(struct > snd_soc_codec *codec, int mcbsp_id) > } > EXPORT_SYMBOL_GPL(omap_mcbsp_st_add_controls); > > +int omap_bcbsp_set_threshold_func(struct snd_soc_dai *cpu_dai, > + void (*mach_set_threshold)(struct > snd_pcm_substream *substream)) I think you meant omap_mcbsp_set_threshold_func here. > +{ > + struct omap_mcbsp_data *mcbsp_data = > to_mcbsp(cpu_dai->private_data); > + > + if (!cpu_is_omap34xx()) > + return -ENODEV; > + > + mcbsp_data->mach_set_threshold = mach_set_threshold; + return 0; > +} > +EXPORT_SYMBOL_GPL(omap_bcbsp_set_threshold_func); > + > static int __init snd_omap_mcbsp_init(void) > { > return snd_soc_register_dais(omap_mcbsp_dai, > diff --git a/sound/soc/omap/omap-mcbsp.h > b/sound/soc/omap/omap-mcbsp.h index 6c363e5..f8d8044 100644 --- > a/sound/soc/omap/omap-mcbsp.h +++ b/sound/soc/omap/omap-mcbsp.h > @@ -58,5 +58,7 @@ enum omap_mcbsp_div { > extern struct snd_soc_dai omap_mcbsp_dai[NUM_LINKS]; > > int omap_mcbsp_st_add_controls(struct snd_soc_codec *codec, > int mcbsp_id); > +int omap_bcbsp_set_threshold_func(struct snd_soc_dai *cpu_dai, > + void (*mach_set_threshold)(struct > snd_pcm_substream *substream)); Also here. > > #endif -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html