sound fixes for 3.18-rc7
No excitement, here are only minor fixes: an endian fix for the new DSD format we added in 3.18, a fix for HP mute LED, and a fix for Native Instrument quirk. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABAgAGBQJUeC5WAAoJEGwxgFQ9KSmkaR4P/0NQWq7Vd5DsRk2DSW1XhYpQ gZlpxWwc7De4W4MsZQtWSQQn1e3Mm6OYa0srZGzmFQTI1ZBXLZq9O/wott4Q6QgZ lrWWBzgFenguA8r0bl/VGhFpySt/RE+8hi5Z/vMNG3ATHZxq3DzwE3xB3CaOc+ON PI5ba7XGLz2Q9txTaFD0g0EZT0uLpZnRZZDD12cHCPvAUIGL1IdvSQio3NFlia+l 9gCTe8uZ8BPUt1+LYAcbVKl5xZn8vVOw9fUbcFj7OOoFu48ve2GgtHRVWdYyI9k9 F6yBOMUQtw+XyKvlcectNbEX/6ORewIV0m15damK4REMQeCapGIaoTXMB6yRd3Ld zyj1Ld/JAxqrd3Iy0wF4tP/SHy+fJ1e+WSe5rIurCMlUa4CXkSwX65n1DCuonbsG GsVaXlspSk2j/ZhkqB0rDqTQKqKxSrutqHHwwsfA41iRpOUECmUZU8wM/mj/0THV 0RoWYbJjc0STs+x0ysVo2OudumnMcEhx56SHqJK8Kr1y16m9boxn2exk139qMDb/ Ua6ZGxJiohNICzHsADDcETtnfzOc1bTDhyP058cKAmtmw/U91zpyEAp40xAUe+hL Ix/z8yVjyIM8RLNizxad90s00hpOmOHDp/idLH4Ok8DoDx97IVhHzqyu8mbiTp8A wb69fsQApL/lRoTVDbtU =azkh -----END PGP SIGNATURE----- Merge tag 'sound-3.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "No excitement, here are only minor fixes: an endian fix for the new DSD format we added in 3.18, a fix for HP mute LED, and a fix for Native Instrument quirk" * tag 'sound-3.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: pcm: Add big-endian DSD sample formats and fix XMOS DSD sample format ALSA: hda - One more HP machine needs to change mute led quirk ALSA: usb-audio: Use snd_usb_ctl_msg() for Native Instruments quirk
This commit is contained in:
Коммит
16cf45c09c
|
@ -184,6 +184,8 @@ struct snd_pcm_ops {
|
||||||
#define SNDRV_PCM_FMTBIT_DSD_U8 _SNDRV_PCM_FMTBIT(DSD_U8)
|
#define SNDRV_PCM_FMTBIT_DSD_U8 _SNDRV_PCM_FMTBIT(DSD_U8)
|
||||||
#define SNDRV_PCM_FMTBIT_DSD_U16_LE _SNDRV_PCM_FMTBIT(DSD_U16_LE)
|
#define SNDRV_PCM_FMTBIT_DSD_U16_LE _SNDRV_PCM_FMTBIT(DSD_U16_LE)
|
||||||
#define SNDRV_PCM_FMTBIT_DSD_U32_LE _SNDRV_PCM_FMTBIT(DSD_U32_LE)
|
#define SNDRV_PCM_FMTBIT_DSD_U32_LE _SNDRV_PCM_FMTBIT(DSD_U32_LE)
|
||||||
|
#define SNDRV_PCM_FMTBIT_DSD_U16_BE _SNDRV_PCM_FMTBIT(DSD_U16_BE)
|
||||||
|
#define SNDRV_PCM_FMTBIT_DSD_U32_BE _SNDRV_PCM_FMTBIT(DSD_U32_BE)
|
||||||
|
|
||||||
#ifdef SNDRV_LITTLE_ENDIAN
|
#ifdef SNDRV_LITTLE_ENDIAN
|
||||||
#define SNDRV_PCM_FMTBIT_S16 SNDRV_PCM_FMTBIT_S16_LE
|
#define SNDRV_PCM_FMTBIT_S16 SNDRV_PCM_FMTBIT_S16_LE
|
||||||
|
|
|
@ -220,7 +220,9 @@ typedef int __bitwise snd_pcm_format_t;
|
||||||
#define SNDRV_PCM_FORMAT_DSD_U8 ((__force snd_pcm_format_t) 48) /* DSD, 1-byte samples DSD (x8) */
|
#define SNDRV_PCM_FORMAT_DSD_U8 ((__force snd_pcm_format_t) 48) /* DSD, 1-byte samples DSD (x8) */
|
||||||
#define SNDRV_PCM_FORMAT_DSD_U16_LE ((__force snd_pcm_format_t) 49) /* DSD, 2-byte samples DSD (x16), little endian */
|
#define SNDRV_PCM_FORMAT_DSD_U16_LE ((__force snd_pcm_format_t) 49) /* DSD, 2-byte samples DSD (x16), little endian */
|
||||||
#define SNDRV_PCM_FORMAT_DSD_U32_LE ((__force snd_pcm_format_t) 50) /* DSD, 4-byte samples DSD (x32), little endian */
|
#define SNDRV_PCM_FORMAT_DSD_U32_LE ((__force snd_pcm_format_t) 50) /* DSD, 4-byte samples DSD (x32), little endian */
|
||||||
#define SNDRV_PCM_FORMAT_LAST SNDRV_PCM_FORMAT_DSD_U32_LE
|
#define SNDRV_PCM_FORMAT_DSD_U16_BE ((__force snd_pcm_format_t) 51) /* DSD, 2-byte samples DSD (x16), big endian */
|
||||||
|
#define SNDRV_PCM_FORMAT_DSD_U32_BE ((__force snd_pcm_format_t) 52) /* DSD, 4-byte samples DSD (x32), big endian */
|
||||||
|
#define SNDRV_PCM_FORMAT_LAST SNDRV_PCM_FORMAT_DSD_U32_BE
|
||||||
|
|
||||||
#ifdef SNDRV_LITTLE_ENDIAN
|
#ifdef SNDRV_LITTLE_ENDIAN
|
||||||
#define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_LE
|
#define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_LE
|
||||||
|
|
|
@ -216,6 +216,8 @@ static char *snd_pcm_format_names[] = {
|
||||||
FORMAT(DSD_U8),
|
FORMAT(DSD_U8),
|
||||||
FORMAT(DSD_U16_LE),
|
FORMAT(DSD_U16_LE),
|
||||||
FORMAT(DSD_U32_LE),
|
FORMAT(DSD_U32_LE),
|
||||||
|
FORMAT(DSD_U16_BE),
|
||||||
|
FORMAT(DSD_U32_BE),
|
||||||
};
|
};
|
||||||
|
|
||||||
const char *snd_pcm_format_name(snd_pcm_format_t format)
|
const char *snd_pcm_format_name(snd_pcm_format_t format)
|
||||||
|
|
|
@ -152,6 +152,14 @@ static struct pcm_format_data pcm_formats[(INT)SNDRV_PCM_FORMAT_LAST+1] = {
|
||||||
.width = 32, .phys = 32, .le = 1, .signd = 0,
|
.width = 32, .phys = 32, .le = 1, .signd = 0,
|
||||||
.silence = { 0x69, 0x69, 0x69, 0x69 },
|
.silence = { 0x69, 0x69, 0x69, 0x69 },
|
||||||
},
|
},
|
||||||
|
[SNDRV_PCM_FORMAT_DSD_U16_BE] = {
|
||||||
|
.width = 16, .phys = 16, .le = 0, .signd = 0,
|
||||||
|
.silence = { 0x69, 0x69 },
|
||||||
|
},
|
||||||
|
[SNDRV_PCM_FORMAT_DSD_U32_BE] = {
|
||||||
|
.width = 32, .phys = 32, .le = 0, .signd = 0,
|
||||||
|
.silence = { 0x69, 0x69, 0x69, 0x69 },
|
||||||
|
},
|
||||||
/* FIXME: the following three formats are not defined properly yet */
|
/* FIXME: the following three formats are not defined properly yet */
|
||||||
[SNDRV_PCM_FORMAT_MPEG] = {
|
[SNDRV_PCM_FORMAT_MPEG] = {
|
||||||
.le = -1, .signd = -1,
|
.le = -1, .signd = -1,
|
||||||
|
|
|
@ -4818,7 +4818,6 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
||||||
SND_PCI_QUIRK(0x103c, 0x221b, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
|
SND_PCI_QUIRK(0x103c, 0x221b, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
|
||||||
SND_PCI_QUIRK(0x103c, 0x2221, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
|
SND_PCI_QUIRK(0x103c, 0x2221, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
|
||||||
SND_PCI_QUIRK(0x103c, 0x2225, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
|
SND_PCI_QUIRK(0x103c, 0x2225, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
|
||||||
SND_PCI_QUIRK(0x103c, 0x2246, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
|
|
||||||
SND_PCI_QUIRK(0x103c, 0x2253, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
|
SND_PCI_QUIRK(0x103c, 0x2253, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
|
||||||
SND_PCI_QUIRK(0x103c, 0x2254, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
|
SND_PCI_QUIRK(0x103c, 0x2254, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
|
||||||
SND_PCI_QUIRK(0x103c, 0x2255, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
|
SND_PCI_QUIRK(0x103c, 0x2255, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED),
|
||||||
|
|
|
@ -593,10 +593,10 @@ static int snd_nativeinstruments_control_get(struct snd_kcontrol *kcontrol,
|
||||||
if (mixer->chip->shutdown)
|
if (mixer->chip->shutdown)
|
||||||
ret = -ENODEV;
|
ret = -ENODEV;
|
||||||
else
|
else
|
||||||
ret = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), bRequest,
|
ret = snd_usb_ctl_msg(dev, usb_rcvctrlpipe(dev, 0), bRequest,
|
||||||
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
|
USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
|
||||||
0, wIndex,
|
0, wIndex,
|
||||||
&tmp, sizeof(tmp), 1000);
|
&tmp, sizeof(tmp));
|
||||||
up_read(&mixer->chip->shutdown_rwsem);
|
up_read(&mixer->chip->shutdown_rwsem);
|
||||||
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
|
|
@ -1193,12 +1193,12 @@ u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip,
|
||||||
/* iFi Audio micro/nano iDSD */
|
/* iFi Audio micro/nano iDSD */
|
||||||
case USB_ID(0x20b1, 0x3008):
|
case USB_ID(0x20b1, 0x3008):
|
||||||
if (fp->altsetting == 2)
|
if (fp->altsetting == 2)
|
||||||
return SNDRV_PCM_FMTBIT_DSD_U32_LE;
|
return SNDRV_PCM_FMTBIT_DSD_U32_BE;
|
||||||
break;
|
break;
|
||||||
/* DIYINHK DSD DXD 384kHz USB to I2S/DSD */
|
/* DIYINHK DSD DXD 384kHz USB to I2S/DSD */
|
||||||
case USB_ID(0x20b1, 0x2009):
|
case USB_ID(0x20b1, 0x2009):
|
||||||
if (fp->altsetting == 3)
|
if (fp->altsetting == 3)
|
||||||
return SNDRV_PCM_FMTBIT_DSD_U32_LE;
|
return SNDRV_PCM_FMTBIT_DSD_U32_BE;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче