Re: Fwd: [ASoC] Mic record is not working with wm9713 ASoC driver

2007-05-09 Thread Liam Girdwood
It's probably best to keep this thread on alsa-dev otherwise things
start to get confusing when cross posting occurs.

Liam 




-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Fwd: [ASoC] Mic record is not working with wm9713 ASoC driver

2007-05-09 Thread Nobin Mathew

-- Forwarded message --
From: Nobin Mathew <[EMAIL PROTECTED]>
Date: May 9, 2007 4:25 PM
Subject: Re: [ASoC] Mic record is not working with wm9713 ASoC driver
To: Liam Girdwood <[EMAIL PROTECTED]>


Liam i got the mail.
I am not setting any audio paths in my machine driver


On 5/9/07, Liam Girdwood <[EMAIL PROTECTED]> wrote:

The mail server is probably a little behind. give it about 30
mins...

Liam

On Wed, 2007-05-09 at 16:14 +0530, Nobin Mathew wrote:
> Liam Sorry for disturbing you again,
>
> I could not find that reply on alsa devel mailing list
>
> Can u send that to me
>
> Thanks
>
>
> On 5/9/07, Liam Girdwood <[EMAIL PROTECTED]> wrote:
> > On Wed, 2007-05-09 at 14:48 +0530, Nobin Mathew wrote:
> > > I am trying to record mic with AsoC wm9713 driver. My Mic is connected "Mic 
1".
> >
> > I've replied to this duplicate post on alsa-dev.
> >
> > Liam
> >
> >
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/


/*
 *  SiRF Technology, Inc. GPS Software 
 *
 *  Copyright (C) 2006 by SiRF Technology, Inc. All rights reserved.
 *
 *  linux/sound/soc/sirf3a/identity_wm9713.c
 *  
 * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

/*
 * Machine Specific codefor ASoC driver
 * This will setup ac97 controller with wm9713 codec support
 */

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 	/* DMA memory is used for the buffer even if no DMA for this architecture */
#include 


#include 
#include 
#include 

#ifdef CONFIG_ARM_AMBA_DMA
# include 
#endif

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include "../codecs/ac97.h"
#include "platform_sound.h"
#include "aaci.h"

extern struct snd_soc_cpu_dai aaci_ac97_dai[];
extern struct snd_soc_codec_dai wm9713_dai[];
extern struct snd_soc_platform sirf3a_soc_platform;
extern struct snd_soc_codec_device soc_codec_dev_wm9713;
extern struct ac97_pcm ac97_defs[];

extern int sirf3a_ac97_probe(struct platform_device *);
extern void sirf3a_ac97_remove(struct platform_device *);
extern void snd_ac97_bus_proc_init(struct snd_ac97_bus *);
extern void snd_ac97_bus_proc_done(struct snd_ac97_bus *);


static int identity_wm9713_startup(snd_pcm_substream_t *substream)
{
	return 0;
}

static struct snd_soc_ops identity_wm9713_ops = {
	.startup = identity_wm9713_startup,
};

static int identity_wm9713_ac97_init(struct snd_soc_codec *codec)
{
	struct platform_controller *controller = codec->ac97->bus->private_data;
	struct aaci *aaci = (struct aaci *)controller->bus_controller;

	snd_ac97_pcm_assign(codec->ac97->bus, 3, ac97_defs);
	aaci->ac97_bus = codec->ac97->bus;

	/*
	 * * Disable AC97 PC Beep input on audio codecs.
	 *  */
	if (ac97_is_audio(codec->ac97))
		snd_ac97_write_cache(codec->ac97, AC97_PC_BEEP, 0x801e); 
	return 0;
}
unsigned int identity_wm9713_config_sysclk(struct snd_soc_pcm_runtime *rtd,
	struct snd_soc_clock_info *info)
{
	return rtd->codec_dai->config_sysclk(rtd->codec_dai, info, 12187500);
}


static struct snd_soc_dai_link identity_wm9713_dai[] = {
	{
		.name = "AC97",
		.stream_name = "AC97 HiFi",
		.cpu_dai = _ac97_dai[0],
		.codec_dai = _dai[0],
		.init = identity_wm9713_ac97_init,
		.config_sysclk = identity_wm9713_config_sysclk,

	},
	/*
	{
		.name = "WM9713",
		.stream_name = "BLUETOOTH VOICE",
		.cpu_dai = _ac97_dai[1],
		.codec_dai = _dai[2],
	},
*/	
};

int identity_wm9713_probe(struct platform_device *pdev)
{
	int ret = 0;
	struct snd_soc_device *socdev;

	socdev = platform_get_drvdata(pdev);
	socdev->machine->dai_link->cpu_dai->probe = sirf3a_ac97_probe;	
	socdev->machine->dai_link->cpu_dai->remove = sirf3a_ac97_remove;	

	return ret;
}

int identity_wm9713_suspend_pre(struct platform_device *pdev, pm_message_t state)
{
	struct snd_soc_device *socdev = platform_get_drvdata(pdev);
	struct snd_soc_codec *codec = socdev->codec;
	struct snd_soc_codec_dai *dai = codec->dai;
	struct platform_controller *controller = dai->private_data;

	controller->state.event = state.event;
	return 0;
}

int identity_wm9713_resume_post(struct platform_device *pdev)
{
	struct 

Fwd: [ASoC] Mic record is not working with wm9713 ASoC driver

2007-05-09 Thread Nobin Mathew

-- Forwarded message --
From: Nobin Mathew [EMAIL PROTECTED]
Date: May 9, 2007 4:25 PM
Subject: Re: [ASoC] Mic record is not working with wm9713 ASoC driver
To: Liam Girdwood [EMAIL PROTECTED]


Liam i got the mail.
I am not setting any audio paths in my machine driver


On 5/9/07, Liam Girdwood [EMAIL PROTECTED] wrote:

The mail server is probably a little behind. give it about 30
mins...

Liam

On Wed, 2007-05-09 at 16:14 +0530, Nobin Mathew wrote:
 Liam Sorry for disturbing you again,

 I could not find that reply on alsa devel mailing list

 Can u send that to me

 Thanks


 On 5/9/07, Liam Girdwood [EMAIL PROTECTED] wrote:
  On Wed, 2007-05-09 at 14:48 +0530, Nobin Mathew wrote:
   I am trying to record mic with AsoC wm9713 driver. My Mic is connected Mic 
1.
 
  I've replied to this duplicate post on alsa-dev.
 
  Liam
 
 
 -
 To unsubscribe from this list: send the line unsubscribe linux-kernel in
 the body of a message to [EMAIL PROTECTED]
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 Please read the FAQ at  http://www.tux.org/lkml/


/*
 *  SiRF Technology, Inc. GPS Software 
 *
 *  Copyright (C) 2006 by SiRF Technology, Inc. All rights reserved.
 *
 *  linux/sound/soc/sirf3a/identity_wm9713.c
 *  
 * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

/*
 * Machine Specific codefor ASoC driver
 * This will setup ac97 controller with wm9713 codec support
 */

#include linux/module.h
#include linux/delay.h
#include linux/init.h
#include linux/ioport.h
#include linux/device.h
#include linux/spinlock.h
#include linux/interrupt.h
#include linux/err.h
#include linux/amba/bus.h
#include linux/dma-mapping.h	/* DMA memory is used for the buffer even if no DMA for this architecture */
#include linux/pm.h


#include asm/io.h
#include asm/irq.h
#include asm/sizes.h

#ifdef CONFIG_ARM_AMBA_DMA
# include asm/mach-types.h
#endif

#include sound/driver.h
#include sound/core.h
#include sound/initval.h
#include sound/ac97_codec.h
#include sound/pcm.h
#include sound/pcm_params.h
#include sound/soc.h
#include sound/soc-dapm.h

#include ../codecs/ac97.h
#include platform_sound.h
#include aaci.h

extern struct snd_soc_cpu_dai aaci_ac97_dai[];
extern struct snd_soc_codec_dai wm9713_dai[];
extern struct snd_soc_platform sirf3a_soc_platform;
extern struct snd_soc_codec_device soc_codec_dev_wm9713;
extern struct ac97_pcm ac97_defs[];

extern int sirf3a_ac97_probe(struct platform_device *);
extern void sirf3a_ac97_remove(struct platform_device *);
extern void snd_ac97_bus_proc_init(struct snd_ac97_bus *);
extern void snd_ac97_bus_proc_done(struct snd_ac97_bus *);


static int identity_wm9713_startup(snd_pcm_substream_t *substream)
{
	return 0;
}

static struct snd_soc_ops identity_wm9713_ops = {
	.startup = identity_wm9713_startup,
};

static int identity_wm9713_ac97_init(struct snd_soc_codec *codec)
{
	struct platform_controller *controller = codec-ac97-bus-private_data;
	struct aaci *aaci = (struct aaci *)controller-bus_controller;

	snd_ac97_pcm_assign(codec-ac97-bus, 3, ac97_defs);
	aaci-ac97_bus = codec-ac97-bus;

	/*
	 * * Disable AC97 PC Beep input on audio codecs.
	 *  */
	if (ac97_is_audio(codec-ac97))
		snd_ac97_write_cache(codec-ac97, AC97_PC_BEEP, 0x801e); 
	return 0;
}
unsigned int identity_wm9713_config_sysclk(struct snd_soc_pcm_runtime *rtd,
	struct snd_soc_clock_info *info)
{
	return rtd-codec_dai-config_sysclk(rtd-codec_dai, info, 12187500);
}


static struct snd_soc_dai_link identity_wm9713_dai[] = {
	{
		.name = AC97,
		.stream_name = AC97 HiFi,
		.cpu_dai = aaci_ac97_dai[0],
		.codec_dai = wm9713_dai[0],
		.init = identity_wm9713_ac97_init,
		.config_sysclk = identity_wm9713_config_sysclk,

	},
	/*
	{
		.name = WM9713,
		.stream_name = BLUETOOTH VOICE,
		.cpu_dai = aaci_ac97_dai[1],
		.codec_dai = wm9713_dai[2],
	},
*/	
};

int identity_wm9713_probe(struct platform_device *pdev)
{
	int ret = 0;
	struct snd_soc_device *socdev;

	socdev = platform_get_drvdata(pdev);
	socdev-machine-dai_link-cpu_dai-probe = sirf3a_ac97_probe;	
	socdev-machine-dai_link-cpu_dai-remove = sirf3a_ac97_remove;	

	return ret;
}

int identity_wm9713_suspend_pre(struct platform_device *pdev, pm_message_t state)
{
	struct snd_soc_device *socdev = platform_get_drvdata(pdev);
	struct snd_soc_codec 

Re: Fwd: [ASoC] Mic record is not working with wm9713 ASoC driver

2007-05-09 Thread Liam Girdwood
It's probably best to keep this thread on alsa-dev otherwise things
start to get confusing when cross posting occurs.

Liam 




-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/