[alsa-devel] [PATCH] [RFC 8/13] Intel SST sound card driver

Takashi Iwai tiwai at suse.de
Fri Jul 3 17:16:32 CEST 2009


At Fri,  3 Jul 2009 12:36:15 +0530,
Vinod Koul wrote:
> 
> This adds support for Moorestown ALSA Sound card driver.
> This is an ALSA driver for supporting PCM playback/capture
> in traditional ALSA way. Anyone who chooses not to use DSP
> for decoding/encoding can use ALSA path to
> play/capture (in non low power mode).
> This driver registers the control interface and PCM
> interface with the LPE driver which finally sends it to
> the hardware. This driver allows any subsystem in OS
> which wants to use the audio-subsystems to be routed
> through the ALSA
> 
> Signed-off-by: Vinod Koul <vinod.koul at intel.com>
> Signed-off-by: Harsha Priya <priya.harsha at intel.com>
> 
> 	new file:   sound/pci/sst/intelmid.c
> ---
>  sound/pci/sst/intelmid.c | 1761 ++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 1761 insertions(+), 0 deletions(-)
>  create mode 100644 sound/pci/sst/intelmid.c
> 
> diff --git a/sound/pci/sst/intelmid.c b/sound/pci/sst/intelmid.c
> new file mode 100644
> index 0000000..28a6dcc
> --- /dev/null
> +++ b/sound/pci/sst/intelmid.c
> @@ -0,0 +1,1761 @@
> +#include <sound/core.h>
> +#include <sound/control.h>
> +#include <sound/pcm.h>
> +#include <sound/pcm_params.h>
> +#include <sound/info.h>
> +#include <sound/initval.h>
> +#include <sound/pcm-indirect.h>
> +#include <sound/intel_sst.h>
> +#include <sound/intel_sst_ioctl.h>

Include <linux/*> (and <net/*>) before <sound/*.h> files.

> +#include "intelmid_snd_control.h"
> +#include "intelmid.h"
> +#include "intelmid_pvt.h"
> +#include <linux/spi/spi.h>
> +#include <linux/io.h>
> +#include <linux/delay.h>
> +#include <linux/interrupt.h>
> +#include <linux/init.h>
> +#include <linux/slab.h>
> +#include <linux/moduleparam.h>
> +#include <linux/sched.h>
> +#include <linux/gpe.h>
> +#include <net/netlink.h>
> +#include <net/genetlink.h>
> +
> +MODULE_AUTHOR("Harsha Priya <priya.harsha at intel.com>");
> +MODULE_AUTHOR("Vinod Koul <vinod.koul at intel.com>");
> +MODULE_DESCRIPTION("Intel MAD Sound card driver");
> +MODULE_LICENSE("GPL v2");
> +MODULE_SUPPORTED_DEVICE("{Intel,Intel_MAD}");
> +
> +static int 	card_index = SNDRV_DEFAULT_IDX1;/* Index 0-MAX */
> +static char *card_id = SNDRV_DEFAULT_STR1;	/* ID for this card */

These should be index and id, and declared as module parameters.
Otherwise you have no way to change them.

> +/*structure of all the controls of the sound card that is exposed*/
> +static struct snd_kcontrol_new snd_intelmad_controls[] __devinitdata = {
> +#ifdef FULL_CTRL
> +{
> +	.iface 		=	SNDRV_CTL_ELEM_IFACE_MIXER,
> +	.name 		=	"Line Volume",

Usually you need to specify the direction, either "Playback" or
"Capture", before "Volume" or "Switch" suffix.
In this case, "Line Playback Volume" or so.

> +	.access 	=	SNDRV_CTL_ELEM_ACCESS_READWRITE,
> +	.info 		=	snd_intelmad_line_volume_info,
> +	.get 		=	snd_intelmad_volume_get,
> +	.put		=	snd_intelmad_volume_set,

Can it have the dB information via TLV?

> +	.iface 		=	SNDRV_CTL_ELEM_IFACE_MIXER,
> +	.name 		=	"DMIC Volume",

Ditto.

> +	.iface 		=	SNDRV_CTL_ELEM_IFACE_MIXER,
> +	.name 		=	"Master Mute Switch",

No "Mute" switch please.  Instead use "Master Playback Switch".
(mute is a reverse direction thus confusing.)


Takashi


More information about the Alsa-devel mailing list