[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