On Tue, Jul 12, 2011 at 11:04:38PM +0800, Dong Aisheng wrote: > The driver only supports playback firstly. > For recording, as we have to use two saif instances to implement full > duplex (playback & recording) due to hardware limitation, we need to > figure out a good design to fit in ASoC. > > Signed-off-by: Dong Aisheng > Cc: Mark Brown > Cc: Liam Girdwood > Cc: Sascha Hauer > --- > sound/soc/mxs/mxs-sgtl5000.c | 170 ++++++++++++++++++++++++++++++++++++++++++ > 1 files changed, 170 insertions(+), 0 deletions(-) > > diff --git a/sound/soc/mxs/mxs-sgtl5000.c b/sound/soc/mxs/mxs-sgtl5000.c > new file mode 100644 > index 0000000..be9b5d5 > --- /dev/null > +++ b/sound/soc/mxs/mxs-sgtl5000.c > @@ -0,0 +1,170 @@ > +/* > + * Copyright 2011 Freescale Semiconductor, Inc. > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; either version 2 of the License, or > + * (at your option) any later version. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * You should have received a copy of the GNU General Public License along > + * with this program; if not, write to the Free Software Foundation, Inc., > + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. > + */ > + > +#include > +#include No parameters here, drop it. > +#include > +#include > +#include > +#include The last three, too. > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include "../codecs/sgtl5000.h" > +#include "mxs-saif.h" > + > +static int mxs_sgtl5000_hw_params(struct snd_pcm_substream *substream, > + struct snd_pcm_hw_params *params) > +{ > + struct snd_soc_pcm_runtime *rtd = substream->private_data; > + struct snd_soc_dai *codec_dai = rtd->codec_dai; > + struct snd_soc_dai *cpu_dai = rtd->cpu_dai; > + unsigned int rate = params_rate(params); Here you initialize 'rate'... > + u32 dai_format, mclk; > + int ret; > + > + /* sgtl5000 does not support 512*rate when in 96000 fs */ > + rate = params_rate(params); ...so this line can go. Thanks, Wolfram -- Pengutronix e.K. | Wolfram Sang | Industrial Linux Solutions | http://www.pengutronix.de/ |