Example #1
0
	snd_dev_controls[idx].private_value = 0;
	return 0;

}

#define MSM_EXT(xname, xindex, fp_info, fp_get, fp_put, addr) \
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
  .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, \
  .name = xname, .index = xindex, \
  .info = fp_info,\
  .get = fp_get, .put = fp_put, \
  .private_value = addr, \
}

static struct snd_kcontrol_new snd_msm_controls[] = {
	MSM_EXT("Count", 1, msm_scontrol_count_info, msm_scontrol_count_get, \
						NULL, 0),
	MSM_EXT("Stream", 2, msm_route_info, msm_route_get, \
						 msm_route_put, 0),
	MSM_EXT("Record", 3, msm_route_info, msm_route_get, \
						 msm_route_put, 0),
	MSM_EXT("Voice", 4, msm_voice_info, msm_voice_get, \
						 msm_voice_put, 0),
	MSM_EXT("Volume", 5, msm_volume_info, msm_volume_get, \
						 msm_volume_put, 0),
	MSM_EXT("VoiceVolume", 6, msm_v_volume_info, msm_v_volume_get, \
						 msm_v_volume_put, 0),
	MSM_EXT("VoiceMute", 7, msm_v_mute_info, msm_v_mute_get, \
						 msm_v_mute_put, 0),
	MSM_EXT("Voice Call", 8, msm_v_call_info, msm_v_call_get, \
						msm_v_call_put, 0),
	MSM_EXT("Device_Volume", 9, msm_device_volume_info,
Example #2
0
}

#define MSM_EXT_TLV(xname, xindex, fp_info, fp_get, fp_put, addr, tlv_array) \
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
  .access = (SNDRV_CTL_ELEM_ACCESS_TLV_READ | \
		SNDRV_CTL_ELEM_ACCESS_READWRITE), \
  .name = xname, .index = xindex, \
  .info = fp_info,\
  .get = fp_get, .put = fp_put, .tlv.p = tlv_array, \
  .private_value = addr, \
}

static struct snd_kcontrol_new snd_msm_controls[] = {
	MSM_EXT_TLV("PCM Playback Volume", 0, snd_msm_volume_info, \
	snd_msm_volume_get, snd_msm_volume_put, 0, db_scale_linear),
	MSM_EXT("device", 1, snd_msm_device_info, snd_msm_device_get, \
						 snd_msm_device_put, 0),
};

static int msm_new_mixer(struct snd_soc_codec *codec)
{
	unsigned int idx;
	int err;

	pr_err("msm_soc: ALSA MSM Mixer Setting\n");
	strcpy(codec->card->snd_card->mixername, "MSM Mixer");
	for (idx = 0; idx < ARRAY_SIZE(snd_msm_controls); idx++) {
		err = snd_ctl_add(codec->card->snd_card,
				snd_ctl_new1(&snd_msm_controls[idx], NULL));
		if (err < 0)
			return err;
	}
Example #3
0
  .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, \
  .name = xname, \
  .info = fp_info,\
  .get = fp_get, .put = fp_put, \
  .private_value = addr, \
}

/* If new controls are to be added which would be constant across the
 * different targets, please add to the structure
 * snd_msm_controls. Please do not add any controls to the structure
 * snd_msm_secondary_controls defined below unless they are msm8x60
 * specific.
 */

static struct snd_kcontrol_new snd_msm_controls[] = {
	MSM_EXT("Count", msm_scontrol_count_info, msm_scontrol_count_get, \
						NULL, 0),
	MSM_EXT("Stream", msm_route_info, msm_route_get, \
						 msm_route_put, 0),
	MSM_EXT("Record", msm_route_info, msm_route_get, \
						 msm_route_put, 0),
	MSM_EXT("Voice", msm_voice_info, msm_voice_get, \
						 msm_voice_put, 0),
	MSM_EXT("Volume", msm_volume_info, msm_volume_get, \
						 msm_volume_put, 0),
	MSM_EXT("VoiceVolume", msm_v_volume_info, msm_v_volume_get, \
						 msm_v_volume_put, 0),
	MSM_EXT("VoiceMute", msm_v_mute_info, msm_v_mute_get, \
						 msm_v_mute_put, 0),
	MSM_EXT("Voice Call", msm_v_call_info, msm_v_call_get, \
						msm_v_call_put, 0),
	MSM_EXT("Device_Volume", msm_device_volume_info, msm_device_volume_get, \
Example #4
0
  .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, \
  .name = xname, \
  .info = fp_info,\
  .get = fp_get, .put = fp_put, \
  .private_value = addr, \
}

/* If new controls are to be added which would be constant across the
 * different targets, please add to the structure
 * snd_msm_controls. Please do not add any controls to the structure
 * snd_msm_secondary_controls defined below unless they are msm8x60
 * specific.
 */

static struct snd_kcontrol_new snd_msm_controls[] = {
	MSM_EXT("Count", msm_scontrol_count_info, msm_scontrol_count_get, \
						NULL, 0),
	MSM_EXT("Stream", msm_route_info, msm_route_get, \
						 msm_route_put, 0),
	MSM_EXT("Record", msm_route_info, msm_route_get, \
						 msm_route_put, 0),
	MSM_EXT("Voice", msm_voice_info, msm_voice_get, \
						 msm_voice_put, 0),
	MSM_EXT("Volume", msm_volume_info, msm_volume_get, \
						 msm_volume_put, 0),
	MSM_EXT("VoiceVolume", msm_v_volume_info, msm_v_volume_get, \
						 msm_v_volume_put, 0),
	MSM_EXT("VoiceMute", msm_v_mute_info, msm_v_mute_get, \
						 msm_v_mute_put, 0),
	MSM_EXT("Voice Call", msm_v_call_info, msm_v_call_get, \
						msm_v_call_put, 0),
	MSM_EXT("Device_Volume", msm_device_volume_info,
Example #5
0
    snd_dev_controls[idx].private_value = 0;
    return 0;

}

#define MSM_EXT(xname, fp_info, fp_get, fp_put, addr) \
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
  .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, \
  .name = xname, \
  .info = fp_info,\
  .get = fp_get, .put = fp_put, \
  .private_value = addr, \
}

static struct snd_kcontrol_new snd_msm_controls[] = {
    MSM_EXT("Count", msm_scontrol_count_info, msm_scontrol_count_get, \
    NULL, 0),
    MSM_EXT("Stream", msm_route_info, msm_route_get, \
    msm_route_put, 0),
    MSM_EXT("Record", msm_route_info, msm_route_get, \
    msm_route_put, 0),
    MSM_EXT("Voice", msm_voice_info, msm_voice_get, \
    msm_voice_put, 0),
    MSM_EXT("Volume", msm_volume_info, msm_volume_get, \
    msm_volume_put, 0),
    MSM_EXT("VoiceVolume", msm_v_volume_info, msm_v_volume_get, \
    msm_v_volume_put, 0),
    MSM_EXT("VoiceMute", msm_v_mute_info, msm_v_mute_get, \
    msm_v_mute_put, 0),
    MSM_EXT("Voice Call", msm_v_call_info, msm_v_call_get, \
    msm_v_call_put, 0),
    MSM_EXT("Device_Volume", msm_device_volume_info,
Example #6
0
}

#define MSM_EXT_TLV(xname, xindex, fp_info, fp_get, fp_put, addr, tlv_array) \
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
  .access = (SNDRV_CTL_ELEM_ACCESS_TLV_READ | \
		SNDRV_CTL_ELEM_ACCESS_READWRITE), \
  .name = xname, .index = xindex, \
  .info = fp_info,\
  .get = fp_get, .put = fp_put, .tlv.p = tlv_array, \
  .private_value = addr, \
}

static struct snd_kcontrol_new snd_msm_controls[] = {
	MSM_EXT_TLV("PCM Playback Volume", 0, snd_msm_volume_info, \
	snd_msm_volume_get, snd_msm_volume_put, 0, db_scale_linear),
	MSM_EXT("device", 0, snd_msm_device_info, snd_msm_device_get, \
						 snd_msm_device_put, 0),
	MSM_EXT("Device Volume", 0, snd_msm_device_vol_info, NULL, \
						 snd_msm_device_vol_put, 0),
};

static int msm_new_mixer(struct snd_soc_codec *codec)
{
	unsigned int idx;
	int err;

	pr_err("msm_soc: ALSA MSM Mixer Setting\n");
	strcpy(codec->card->snd_card->mixername, "MSM Mixer");
	for (idx = 0; idx < ARRAY_SIZE(snd_msm_controls); idx++) {
		err = snd_ctl_add(codec->card->snd_card,
				snd_ctl_new1(&snd_msm_controls[idx], NULL));
		if (err < 0)
Example #7
0
  .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, \
  .name = xname, \
  .info = fp_info,\
  .get = fp_get, .put = fp_put, \
  .private_value = addr, \
}

/* If new controls are to be added which would be constant across the
 * different targets, please add to the structure
 * snd_msm_controls. Please do not add any controls to the structure
 * snd_msm_secondary_controls defined below unless they are msm8x60
 * specific.
 */

static struct snd_kcontrol_new snd_msm_controls[] = {
	MSM_EXT("Count", msm_scontrol_count_info, msm_scontrol_count_get, \
						NULL, 0),
	MSM_EXT("Stream", msm_route_info, msm_route_get, \
						 msm_route_put, 0),
	MSM_EXT("Record", msm_route_info, msm_route_get, \
						 msm_route_put, 0),
	MSM_EXT("Voice", msm_voice_info, msm_voice_get, \
						 msm_voice_put, 0),
	MSM_EXT("Volume", msm_volume_info, msm_volume_get, \
						 msm_volume_put, 0),
	MSM_EXT("VoiceVolume", msm_v_volume_info, msm_v_volume_get, \
						 msm_v_volume_put, 0),
	MSM_EXT("VoiceMute", msm_v_mute_info, msm_v_mute_get, \
						 msm_v_mute_put, 0),
	MSM_EXT("Voice Call", msm_v_call_info, msm_v_call_get, \
						msm_v_call_put, 0),
	MSM_EXT("Device_Volume", msm_device_volume_info,
Example #8
0
static int msm_voice_mute_put(struct snd_kcontrol *kcontrol,
                              struct snd_ctl_elem_value *ucontrol)
{
    int dir = ucontrol->value.integer.value[0];
    int mute = ucontrol->value.integer.value[1];

    pr_debug("%s: dir=%d, mute=%d\n", __func__, dir, mute);

    voc_set_tx_mute(dir, mute);

    return 0;
}

static struct snd_kcontrol_new msm_voice_controls[] = {
    MSM_EXT("VoiceVolume", msm_voice_volume_info, msm_voice_volume_get, \
    msm_voice_volume_put, 0),
    MSM_EXT("VoiceMute", msm_voice_mute_info, msm_voice_mute_get, \
    msm_voice_mute_put, 0),
};

static struct snd_pcm_ops msm_pcm_ops = {
    .open           = msm_pcm_open,
    .hw_params	= msm_pcm_hw_params,
    .close          = msm_pcm_close,
    .prepare        = msm_pcm_prepare,
};


static int msm_asoc_pcm_new(struct snd_soc_pcm_runtime *rtd)
{
    struct snd_card *card = rtd->card->snd_card;
Example #9
0
	snd_dev_controls[idx].private_value = 0;
	return 0;

}

#define MSM_EXT(xname, xindex, fp_info, fp_get, fp_put, addr) \
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
  .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, \
  .name = xname, .index = xindex, \
  .info = fp_info,\
  .get = fp_get, .put = fp_put, \
  .private_value = addr, \
}

static struct snd_kcontrol_new snd_msm_controls[] = {
	MSM_EXT("Count", 1, msm_scontrol_count_info, msm_scontrol_count_get, \
		NULL, 0),
	MSM_EXT("Stream", 2, msm_route_info, msm_route_get, \
		 msm_route_put, 0),
	MSM_EXT("Record", 3, msm_route_info, msm_route_get, \
		 msm_route_put, 0),
	MSM_EXT("Voice", 4, msm_voice_info, msm_voice_get, \
		 msm_voice_put, 0),
	MSM_EXT("Volume", 5, msm_volume_info, msm_volume_get, \
		 msm_volume_put, 0),
	MSM_EXT("VoiceVolume", 6, msm_v_volume_info, msm_v_volume_get, \
		 msm_v_volume_put, 0),
	MSM_EXT("VoiceMute", 7, msm_v_mute_info, msm_v_mute_get, \
		 msm_v_mute_put, 0),
	MSM_EXT("Voice Call", 8, msm_v_call_info, msm_v_call_get, \
		msm_v_call_put, 0),
	MSM_EXT("Device_Volume", 9, msm_device_volume_info,
Example #10
0
	snd_dev_controls[idx].private_value = 0;
	return 0;

}

#define MSM_EXT(xname, fp_info, fp_get, fp_put, addr) \
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
  .access = SNDRV_CTL_ELEM_ACCESS_READWRITE, \
  .name = xname, \
  .info = fp_info,\
  .get = fp_get, .put = fp_put, \
  .private_value = addr, \
}

static struct snd_kcontrol_new snd_msm_controls[] = {
	MSM_EXT("Count", msm_scontrol_count_info, msm_scontrol_count_get, \
						NULL, 0),
	MSM_EXT("Stream", msm_route_info, msm_route_get, \
						 msm_route_put, 0),
	MSM_EXT("Record", msm_route_info, msm_route_get, \
						 msm_route_put, 0),
	MSM_EXT("Voice", msm_voice_info, msm_voice_get, \
						 msm_voice_put, 0),
	MSM_EXT("Volume", msm_volume_info, msm_volume_get, \
						 msm_volume_put, 0),
	MSM_EXT("VoiceVolume", msm_v_volume_info, msm_v_volume_get, \
						 msm_v_volume_put, 0),
	MSM_EXT("VoiceMute", msm_v_mute_info, msm_v_mute_get, \
						 msm_v_mute_put, 0),
	MSM_EXT("Voice Call", msm_v_call_info, msm_v_call_get, \
						msm_v_call_put, 0),
	MSM_EXT("Device_Volume", msm_device_volume_info,