Commit f365e47b authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge branch 'for-next' into for-linus



Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parents 52521e83 713e0f01
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -2376,6 +2376,13 @@ quirk_flags
          Skip the probe-time interface setup (usb_set_interface,
          init_pitch, init_sample_rate); redundant with
          snd_usb_endpoint_prepare() at stream-open time
        * bit 27: ``mixer_playback_linear_vol``
          Set linear volume mapping for devices where the playback volume
          control value is mapped to voltage (instead of dB) level linearly.
          In short: ``x(raw) = (raw - raw_min) / (raw_max - raw_min)``;
          ``V(x) = k * x``; ``dB(x) = 20 * log10(x)``. Overrides bit 24
        * bit 28: ``mixer_capture_linear_vol``
          Similar to bit 27 but for capture streams. Overrides bit 25

This module supports multiple devices, autoprobe and hotplugging.

+3 −0
Original line number Diff line number Diff line
@@ -133,6 +133,9 @@ struct snd_card {
#ifdef CONFIG_SND_DEBUG
	struct dentry *debugfs_root;    /* debugfs root for card */
#endif
#ifdef CONFIG_SND_CTL_DEBUG
	struct snd_ctl_elem_value *value_buf; /* buffer for kctl->put() verification */
#endif

#ifdef CONFIG_PM
	unsigned int power_state;	/* power state */
+8 −0
Original line number Diff line number Diff line
@@ -536,6 +536,7 @@ int snd_gf1_dma_transfer_block(struct snd_gus_card * gus,
			       struct snd_gf1_dma_block * block,
			       int atomic,
			       int synth);
void snd_gf1_dma_suspend(struct snd_gus_card *gus);

/* gus_volume.c */

@@ -552,6 +553,8 @@ struct snd_gus_voice *snd_gf1_alloc_voice(struct snd_gus_card * gus, int type, i
void snd_gf1_free_voice(struct snd_gus_card * gus, struct snd_gus_voice *voice);
int snd_gf1_start(struct snd_gus_card * gus);
int snd_gf1_stop(struct snd_gus_card * gus);
int snd_gf1_suspend(struct snd_gus_card *gus);
int snd_gf1_resume(struct snd_gus_card *gus);

/* gus_mixer.c */

@@ -572,6 +575,8 @@ int snd_gus_create(struct snd_card *card,
		   int effect,
		   struct snd_gus_card ** rgus);
int snd_gus_initialize(struct snd_gus_card * gus);
int snd_gus_suspend(struct snd_gus_card *gus);
int snd_gus_resume(struct snd_gus_card *gus);

/* gus_irq.c */

@@ -583,6 +588,8 @@ void snd_gus_irq_profile_init(struct snd_gus_card *gus);
/* gus_uart.c */

int snd_gf1_rawmidi_new(struct snd_gus_card *gus, int device);
void snd_gf1_uart_suspend(struct snd_gus_card *gus);
void snd_gf1_uart_resume(struct snd_gus_card *gus);

/* gus_dram.c */
int snd_gus_dram_write(struct snd_gus_card *gus, char __user *ptr,
@@ -593,5 +600,6 @@ int snd_gus_dram_read(struct snd_gus_card *gus, char __user *ptr,
/* gus_timer.c */
void snd_gf1_timers_init(struct snd_gus_card *gus);
void snd_gf1_timers_done(struct snd_gus_card *gus);
void snd_gf1_timers_resume(struct snd_gus_card *gus);

#endif /* __SOUND_GUS_H */
+15 −0
Original line number Diff line number Diff line
@@ -336,6 +336,17 @@ snd_hda_codec_write(struct hda_codec *codec, hda_nid_t nid, int flags,
	return snd_hdac_codec_write(&codec->core, nid, flags, verb, parm);
}

/* sync after write */
static inline int
snd_hda_codec_write_sync(struct hda_codec *codec, hda_nid_t nid, int flags,
			 unsigned int verb, unsigned int parm)
{
	/* use snd_hda_codec_read() for writing;
	 * the returned value is usually discarded
	 */
	return snd_hdac_codec_read(&codec->core, nid, flags, verb, parm);
}

#define snd_hda_param_read(codec, nid, param) \
	snd_hdac_read_parm(&(codec)->core, nid, param)
#define snd_hda_get_sub_nodes(codec, nid, start_nid) \
@@ -470,6 +481,10 @@ void snd_hda_unlock_devices(struct hda_bus *bus);
void snd_hda_bus_reset(struct hda_bus *bus);
void snd_hda_bus_reset_codecs(struct hda_bus *bus);

void snd_hda_codec_set_gpio(struct hda_codec *codec, unsigned int mask,
			    unsigned int dir, unsigned int data,
			    unsigned int delay);

int snd_hda_codec_set_name(struct hda_codec *codec, const char *name);

/*
+11 −1
Original line number Diff line number Diff line
@@ -56,7 +56,12 @@ enum {
#define AC_VERB_GET_DIGI_CONVERT_1		0x0f0d
#define AC_VERB_GET_DIGI_CONVERT_2		0x0f0e /* unused */
#define AC_VERB_GET_VOLUME_KNOB_CONTROL		0x0f0f
/* f10-f1a: GPIO */
/* f10-f1a: GPI/GPO/GPIO */
#define AC_VERB_GET_GPI_DATA			0x0f10
#define AC_VERB_GET_GPI_WAKE_MASK		0x0f11
#define AC_VERB_GET_GPI_UNSOLICITED_RSP_MASK	0x0f12
#define AC_VERB_GET_GPI_STICKY_MASK		0x0f13
#define AC_VERB_GET_GPO_DATA			0x0f14
#define AC_VERB_GET_GPIO_DATA			0x0f15
#define AC_VERB_GET_GPIO_MASK			0x0f16
#define AC_VERB_GET_GPIO_DIRECTION		0x0f17
@@ -99,6 +104,11 @@ enum {
#define AC_VERB_SET_DIGI_CONVERT_2		0x70e
#define AC_VERB_SET_DIGI_CONVERT_3		0x73e
#define AC_VERB_SET_VOLUME_KNOB_CONTROL		0x70f
#define AC_VERB_SET_GPI_DATA			0x710
#define AC_VERB_SET_GPI_WAKE_MASK		0x711
#define AC_VERB_SET_SPI_UNSOLICITED_RSP_MASK	0x712
#define AC_VERB_SET_GPI_STICKY_MASK		0x713
#define AC_VERB_SET_GPO_DATA			0x714
#define AC_VERB_SET_GPIO_DATA			0x715
#define AC_VERB_SET_GPIO_MASK			0x716
#define AC_VERB_SET_GPIO_DIRECTION		0x717
Loading