mirror of https://gitee.com/openkylin/linux.git
Merge branches 'topic/fix/misc' and 'topic/fix/asoc' into for-linus
This commit is contained in:
commit
71c21b4cf6
|
@ -28,7 +28,8 @@
|
|||
*/
|
||||
#define SOC_SINGLE_VALUE(xreg, xshift, xmax, xinvert) \
|
||||
((unsigned long)&(struct soc_mixer_control) \
|
||||
{.reg = xreg, .shift = xshift, .max = xmax, .invert = xinvert})
|
||||
{.reg = xreg, .shift = xshift, .rshift = xshift, .max = xmax, \
|
||||
.invert = xinvert})
|
||||
#define SOC_SINGLE_VALUE_EXT(xreg, xmax, xinvert) \
|
||||
((unsigned long)&(struct soc_mixer_control) \
|
||||
{.reg = xreg, .max = xmax, .invert = xinvert})
|
||||
|
|
|
@ -1927,9 +1927,9 @@ static int snd_ac97_dev_register(struct snd_device *device)
|
|||
ac97->dev.bus = &ac97_bus_type;
|
||||
ac97->dev.parent = ac97->bus->card->dev;
|
||||
ac97->dev.release = ac97_device_release;
|
||||
snprintf(ac97->dev.bus_id, BUS_ID_SIZE, "%d-%d:%s",
|
||||
ac97->bus->card->number, ac97->num,
|
||||
snd_ac97_get_short_name(ac97));
|
||||
dev_set_name(&ac97->dev, "%d-%d:%s",
|
||||
ac97->bus->card->number, ac97->num,
|
||||
snd_ac97_get_short_name(ac97));
|
||||
if ((err = device_register(&ac97->dev)) < 0) {
|
||||
snd_printk(KERN_ERR "Can't register ac97 bus\n");
|
||||
ac97->dev.bus = NULL;
|
||||
|
|
|
@ -2688,12 +2688,13 @@ static int __devinit snd_ice1712_probe(struct pci_dev *pci,
|
|||
return err;
|
||||
}
|
||||
|
||||
if (ice_has_con_ac97(ice))
|
||||
if (ice_has_con_ac97(ice)) {
|
||||
err = snd_ice1712_pcm(ice, pcm_dev++, NULL);
|
||||
if (err < 0) {
|
||||
snd_card_free(card);
|
||||
return err;
|
||||
}
|
||||
}
|
||||
|
||||
err = snd_ice1712_ac97_mixer(ice);
|
||||
if (err < 0) {
|
||||
|
@ -2715,12 +2716,13 @@ static int __devinit snd_ice1712_probe(struct pci_dev *pci,
|
|||
}
|
||||
}
|
||||
|
||||
if (ice_has_con_ac97(ice))
|
||||
if (ice_has_con_ac97(ice)) {
|
||||
err = snd_ice1712_pcm_ds(ice, pcm_dev++, NULL);
|
||||
if (err < 0) {
|
||||
snd_card_free(card);
|
||||
return err;
|
||||
}
|
||||
}
|
||||
|
||||
if (!c->no_mpu401) {
|
||||
err = snd_mpu401_uart_new(card, 0, MPU401_HW_ICE1712,
|
||||
|
|
|
@ -140,7 +140,7 @@ SOC_SINGLE("Capture ADC Boost (+20dB) Switch", AC97_VIDEO, 6, 1, 0),
|
|||
|
||||
SOC_SINGLE("ALC Target Volume", AC97_CODEC_CLASS_REV, 12, 15, 0),
|
||||
SOC_SINGLE("ALC Hold Time", AC97_CODEC_CLASS_REV, 8, 15, 0),
|
||||
SOC_SINGLE("ALC Decay Time ", AC97_CODEC_CLASS_REV, 4, 15, 0),
|
||||
SOC_SINGLE("ALC Decay Time", AC97_CODEC_CLASS_REV, 4, 15, 0),
|
||||
SOC_SINGLE("ALC Attack Time", AC97_CODEC_CLASS_REV, 0, 15, 0),
|
||||
SOC_ENUM("ALC Function", wm9713_enum[6]),
|
||||
SOC_SINGLE("ALC Max Volume", AC97_PCI_SVID, 11, 7, 0),
|
||||
|
|
|
@ -277,7 +277,7 @@ static int psc_i2s_trigger(struct snd_pcm_substream *substream, int cmd)
|
|||
struct mpc52xx_psc __iomem *regs = psc_i2s->psc_regs;
|
||||
u16 imr;
|
||||
u8 psc_cmd;
|
||||
long flags;
|
||||
unsigned long flags;
|
||||
|
||||
if (substream->pstr->stream == SNDRV_PCM_STREAM_CAPTURE)
|
||||
s = &psc_i2s->capture;
|
||||
|
@ -699,9 +699,11 @@ static ssize_t psc_i2s_stat_store(struct device *dev,
|
|||
return count;
|
||||
}
|
||||
|
||||
DEVICE_ATTR(status, 0644, psc_i2s_status_show, NULL);
|
||||
DEVICE_ATTR(playback_underrun, 0644, psc_i2s_stat_show, psc_i2s_stat_store);
|
||||
DEVICE_ATTR(capture_overrun, 0644, psc_i2s_stat_show, psc_i2s_stat_store);
|
||||
static DEVICE_ATTR(status, 0644, psc_i2s_status_show, NULL);
|
||||
static DEVICE_ATTR(playback_underrun, 0644, psc_i2s_stat_show,
|
||||
psc_i2s_stat_store);
|
||||
static DEVICE_ATTR(capture_overrun, 0644, psc_i2s_stat_show,
|
||||
psc_i2s_stat_store);
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
* OF platform bus binding code:
|
||||
|
@ -819,8 +821,8 @@ static int __devinit psc_i2s_of_probe(struct of_device *op,
|
|||
|
||||
/* Register the SYSFS files */
|
||||
rc = device_create_file(psc_i2s->dev, &dev_attr_status);
|
||||
rc = device_create_file(psc_i2s->dev, &dev_attr_capture_overrun);
|
||||
rc = device_create_file(psc_i2s->dev, &dev_attr_playback_underrun);
|
||||
rc |= device_create_file(psc_i2s->dev, &dev_attr_capture_overrun);
|
||||
rc |= device_create_file(psc_i2s->dev, &dev_attr_playback_underrun);
|
||||
if (rc)
|
||||
dev_info(psc_i2s->dev, "error creating sysfs files\n");
|
||||
|
||||
|
|
|
@ -1462,7 +1462,7 @@ int snd_soc_info_volsw(struct snd_kcontrol *kcontrol,
|
|||
struct soc_mixer_control *mc =
|
||||
(struct soc_mixer_control *)kcontrol->private_value;
|
||||
int max = mc->max;
|
||||
unsigned int shift = mc->min;
|
||||
unsigned int shift = mc->shift;
|
||||
unsigned int rshift = mc->rshift;
|
||||
|
||||
if (max == 1)
|
||||
|
|
|
@ -1480,6 +1480,36 @@ YAMAHA_DEVICE(0x7010, "UB99"),
|
|||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
/* Advanced modes of the Edirol UA-25EX.
|
||||
* For the standard mode, UA-25EX has ID 0582:00e7, which
|
||||
* offers only 16-bit PCM at 44.1 kHz and no MIDI.
|
||||
*/
|
||||
USB_DEVICE_VENDOR_SPEC(0x0582, 0x00e6),
|
||||
.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
|
||||
.vendor_name = "EDIROL",
|
||||
.product_name = "UA-25EX",
|
||||
.ifnum = QUIRK_ANY_INTERFACE,
|
||||
.type = QUIRK_COMPOSITE,
|
||||
.data = (const struct snd_usb_audio_quirk[]) {
|
||||
{
|
||||
.ifnum = 0,
|
||||
.type = QUIRK_AUDIO_EDIROL_UAXX
|
||||
},
|
||||
{
|
||||
.ifnum = 1,
|
||||
.type = QUIRK_AUDIO_EDIROL_UAXX
|
||||
},
|
||||
{
|
||||
.ifnum = 2,
|
||||
.type = QUIRK_AUDIO_EDIROL_UAXX
|
||||
},
|
||||
{
|
||||
.ifnum = -1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/* Guillemot devices */
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue