Sound fixes for 3.6-rc6
Just a few small / trivial regression fixes at this time. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iQIcBAABAgAGBQJQUYdMAAoJEGwxgFQ9KSmk88kP/1Qnl/fgqecvlmu8f2r0mrio K5RgmgdbTk5PyH6Y3gH5AArmHgZMrUZRb7oNX/+YCmBTTFexG7JAnWnMGESIsxsM jebU719bt+62g4UiLYjYVanN1tjxUZwPCfLzf7wjnsPkUj7tz+MVAntk3W49psue LomSTzvlGeCWWecdCRteaCk5MRkKNc4t6RgQd6njf/grf4jEQoVxDXYiHIN2uNxT YFkjnzHFOzcOIEtut2QDDd2Gi+4BWpVnbpNWTKfMXnyhsUibVBtpRV0D3KCK6N+m Lewp6B7/7PuWvb8jvxY7nJhidM8sr7zw4ucc46v4GV+DiYd2bVpl/r3tflfvRaRt 289r5MpwdrjDcTlyoIr0Z8kKVLDDLCNUbnYq3L4JEh7TAb/0oOdeO1BImynVbQNf snHfpt8Cjl3O6SK2I9Pr2nvdSU2rqZ3RCVBshIHuEueleFAo5JLr1PeutObaMnTK MR0IDYFyPpsltPq0GjaH9n0xwOnL2xip27/r1iNjb/N9aeqP6Hxj7XsmMoPbSmFv RkwD+UoH6aenXqXsmu8A+fHkMqqproriQYXoQlJbTTXvAjFjo8++FYHPtDmMhxjW D74HRp28AofhyT8TaKDJM8C5YgGcBPZinwIP0iuScrsIiiYQ704LJbQrGZ0IcivH 7AwlvnBrXl/IZ13G4DA6 =13mk -----END PGP SIGNATURE----- Merge tag 'sound-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "Just a few small / trivial regression fixes at this time." * tag 'sound-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: ice1724: Use linear scale for AK4396 volume control. ALSA: hda_intel: add position_fix quirk for Asus K53E ALSA: compress_core: fix open flags test in snd_compr_open() ALSA: hda - Fix Oops at codec reset/reconfig ALSA: usb-audio: Fix bogus error messages for delay accounting ALSA: hda - Fix missing Master volume for STAC9200/925x
This commit is contained in:
commit
fbcbe2b3c9
@ -80,14 +80,12 @@ static int snd_compr_open(struct inode *inode, struct file *f)
|
||||
int maj = imajor(inode);
|
||||
int ret;
|
||||
|
||||
if (f->f_flags & O_WRONLY)
|
||||
if ((f->f_flags & O_ACCMODE) == O_WRONLY)
|
||||
dirn = SND_COMPRESS_PLAYBACK;
|
||||
else if (f->f_flags & O_RDONLY)
|
||||
else if ((f->f_flags & O_ACCMODE) == O_RDONLY)
|
||||
dirn = SND_COMPRESS_CAPTURE;
|
||||
else {
|
||||
pr_err("invalid direction\n");
|
||||
else
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (maj == snd_major)
|
||||
compr = snd_lookup_minor_data(iminor(inode),
|
||||
|
@ -2353,6 +2353,7 @@ int snd_hda_codec_reset(struct hda_codec *codec)
|
||||
}
|
||||
if (codec->patch_ops.free)
|
||||
codec->patch_ops.free(codec);
|
||||
memset(&codec->patch_ops, 0, sizeof(codec->patch_ops));
|
||||
snd_hda_jack_tbl_clear(codec);
|
||||
codec->proc_widget_hook = NULL;
|
||||
codec->spec = NULL;
|
||||
@ -2368,7 +2369,6 @@ int snd_hda_codec_reset(struct hda_codec *codec)
|
||||
codec->num_pcms = 0;
|
||||
codec->pcm_info = NULL;
|
||||
codec->preset = NULL;
|
||||
memset(&codec->patch_ops, 0, sizeof(codec->patch_ops));
|
||||
codec->slave_dig_outs = NULL;
|
||||
codec->spdif_status_reset = 0;
|
||||
module_put(codec->owner);
|
||||
|
@ -2701,6 +2701,7 @@ static struct snd_pci_quirk position_fix_list[] __devinitdata = {
|
||||
SND_PCI_QUIRK(0x1043, 0x813d, "ASUS P5AD2", POS_FIX_LPIB),
|
||||
SND_PCI_QUIRK(0x1043, 0x81b3, "ASUS", POS_FIX_LPIB),
|
||||
SND_PCI_QUIRK(0x1043, 0x81e7, "ASUS M2V", POS_FIX_LPIB),
|
||||
SND_PCI_QUIRK(0x1043, 0x1b43, "ASUS K53E", POS_FIX_POSBUF),
|
||||
SND_PCI_QUIRK(0x104d, 0x9069, "Sony VPCS11V9E", POS_FIX_LPIB),
|
||||
SND_PCI_QUIRK(0x10de, 0xcb89, "Macbook Pro 7,1", POS_FIX_LPIB),
|
||||
SND_PCI_QUIRK(0x1297, 0x3166, "Shuttle", POS_FIX_LPIB),
|
||||
|
@ -1075,7 +1075,7 @@ static struct snd_kcontrol_new stac_smux_mixer = {
|
||||
|
||||
static const char * const slave_pfxs[] = {
|
||||
"Front", "Surround", "Center", "LFE", "Side",
|
||||
"Headphone", "Speaker", "IEC958",
|
||||
"Headphone", "Speaker", "IEC958", "PCM",
|
||||
NULL
|
||||
};
|
||||
|
||||
|
@ -297,6 +297,7 @@ static int ak4396_dac_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem
|
||||
}
|
||||
|
||||
static const DECLARE_TLV_DB_SCALE(db_scale_wm_dac, -12700, 100, 1);
|
||||
static const DECLARE_TLV_DB_LINEAR(ak4396_db_scale, TLV_DB_GAIN_MUTE, 0);
|
||||
|
||||
static struct snd_kcontrol_new prodigy_hd2_controls[] __devinitdata = {
|
||||
{
|
||||
@ -307,7 +308,7 @@ static struct snd_kcontrol_new prodigy_hd2_controls[] __devinitdata = {
|
||||
.info = ak4396_dac_vol_info,
|
||||
.get = ak4396_dac_vol_get,
|
||||
.put = ak4396_dac_vol_put,
|
||||
.tlv = { .p = db_scale_wm_dac },
|
||||
.tlv = { .p = ak4396_db_scale },
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -1140,6 +1140,12 @@ static void retire_playback_urb(struct snd_usb_substream *subs,
|
||||
int processed = urb->transfer_buffer_length / stride;
|
||||
int est_delay;
|
||||
|
||||
/* ignore the delay accounting when procssed=0 is given, i.e.
|
||||
* silent payloads are procssed before handling the actual data
|
||||
*/
|
||||
if (!processed)
|
||||
return;
|
||||
|
||||
spin_lock_irqsave(&subs->lock, flags);
|
||||
est_delay = snd_usb_pcm_delay(subs, runtime->rate);
|
||||
/* update delay with exact number of samples played */
|
||||
|
Loading…
Reference in New Issue
Block a user