mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-13 14:24:11 +08:00
sound fixes for 6.12-rc7
Still more changes floating than wished at this late stage, but all are small device-specific fixes, and look less troublesome. Including a few ASoC quirk / ID additoins, a series of ASoC STM fixes, HD-audio conexant codec regression fix, and other various quirks and device-specific fixes. -----BEGIN PGP SIGNATURE----- iQJCBAABCAAsFiEEIXTw5fNLNI7mMiVaLtJE4w1nLE8FAmct1IMOHHRpd2FpQHN1 c2UuZGUACgkQLtJE4w1nLE9FnxAAgF/6BeZTcwnFnuXGKInDpk26HognQxlh/V6Z pKxo46J8KhzTvJuGgDWeTiEZdsd80CTowLdHrQXnU8bS9rCkAIJauNqiW8ZhzpBk kmFrApu8RKb7xbEwHuWAGIRUp4TvIRs5bdjPTC1qf/OYxcR33mJi8bpi+zhbEV4B 2FAuLybXFQk+o8xFlA15LxmnJ5jRUrGJ288JtoV5mz1cIOp9G19IAqxCdnLc0Ds2 FtZH2sm8RQ2h6wWRZMtnstkMLsEb8M3/Oj3xWacXJj8bxFFNc8HRu6TcGMtiyj4z 0qDPUwzA1FzRxWKZ2jLyxc7FF9PN4cwzNU8vTgG6CLreMs/AH0QwLMVr2hVo0CoV EQnFBf0G/b+5r7Z1b6vePK4M83vR1+6QPf0s92wBoinx7rDn6WFlQvaW9Xqom2/2 aJPaAzC8xlk7AGwiol2cV2pjAFMWzLC+iN4DEbaVNmdnkZeFC6oPO6WaxtN2U849 WKj73wfbqPsbCehc6iZF8cbOt4UzG8+lCmEN5oPf4hf8Mhmh2b4DqQhQgRHXmdvn 7/USsVeNxDisG+wAjhUQCzZwCrkZvjauR0N+Zd9sldjJhKYkGe8yQ41JUm+q8exz J24u1MKipjPKjh60GSvEJVcS1mqiAfTPU7ZwvyIGmddMVDKSSDK3tqgVpeEIApgQ bv8Ttg4= =uSIj -----END PGP SIGNATURE----- Merge tag 'sound-6.12-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "Still more changes floating than wished at this late stage, but all are small device-specific fixes, and look less troublesome. Including a few ASoC quirk / ID additoins, a series of ASoC STM fixes, HD-audio conexant codec regression fix, and other various quirks and device-specific fixes" * tag 'sound-6.12-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ASoC: SOF: sof-client-probes-ipc4: Set param_size extension bits ASoC: stm: Prevent potential division by zero in stm32_sai_get_clk_div() ASoC: stm: Prevent potential division by zero in stm32_sai_mclk_round_rate() ASoC: amd: yc: Support dmic on another model of Lenovo Thinkpad E14 Gen 6 ASoC: SOF: amd: Fix for incorrect DMA ch status register offset ASoC: amd: yc: fix internal mic on Xiaomi Book Pro 14 2022 ASoC: stm32: spdifrx: fix dma channel release in stm32_spdifrx_remove MAINTAINERS: Generic Sound Card section ALSA: usb-audio: Add quirk for HP 320 FHD Webcam ASoC: tas2781: Add new driver version for tas2563 & tas2781 qfn chip ALSA: firewire-lib: fix return value on fail in amdtp_tscm_init() ALSA: ump: Don't enumeration invalid groups for legacy rawmidi Revert "ALSA: hda/conexant: Mute speakers at suspend / shutdown"
This commit is contained in:
commit
50643bbc9e
@ -21617,6 +21617,15 @@ S: Supported
|
||||
W: https://github.com/thesofproject/linux/
|
||||
F: sound/soc/sof/
|
||||
|
||||
SOUND - GENERIC SOUND CARD (Simple-Audio-Card, Audio-Graph-Card)
|
||||
M: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
|
||||
S: Supported
|
||||
L: linux-sound@vger.kernel.org
|
||||
F: sound/soc/generic/
|
||||
F: include/sound/simple_card*
|
||||
F: Documentation/devicetree/bindings/sound/simple-card.yaml
|
||||
F: Documentation/devicetree/bindings/sound/audio-graph*.yaml
|
||||
|
||||
SOUNDWIRE SUBSYSTEM
|
||||
M: Vinod Koul <vkoul@kernel.org>
|
||||
M: Bard Liao <yung-chuan.liao@linux.intel.com>
|
||||
|
@ -1233,7 +1233,7 @@ static int fill_legacy_mapping(struct snd_ump_endpoint *ump)
|
||||
|
||||
num = 0;
|
||||
for (i = 0; i < SNDRV_UMP_MAX_GROUPS; i++)
|
||||
if (group_maps & (1U << i))
|
||||
if ((group_maps & (1U << i)) && ump->groups[i].valid)
|
||||
ump->legacy_mapping[num++] = i;
|
||||
|
||||
return num;
|
||||
|
@ -238,7 +238,7 @@ int amdtp_tscm_init(struct amdtp_stream *s, struct fw_unit *unit,
|
||||
err = amdtp_stream_init(s, unit, dir, flags, fmt,
|
||||
process_ctx_payloads, sizeof(struct amdtp_tscm));
|
||||
if (err < 0)
|
||||
return 0;
|
||||
return err;
|
||||
|
||||
if (dir == AMDTP_OUT_STREAM) {
|
||||
// Use fixed value for FDF field.
|
||||
|
@ -205,8 +205,6 @@ static void cx_auto_shutdown(struct hda_codec *codec)
|
||||
{
|
||||
struct conexant_spec *spec = codec->spec;
|
||||
|
||||
snd_hda_gen_shutup_speakers(codec);
|
||||
|
||||
/* Turn the problematic codec into D3 to avoid spurious noises
|
||||
from the internal speaker during (and after) reboot */
|
||||
cx_auto_turn_eapd(codec, spec->num_eapds, spec->eapds, false);
|
||||
|
@ -227,6 +227,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "21M3"),
|
||||
}
|
||||
},
|
||||
{
|
||||
.driver_data = &acp6x_card,
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "21M4"),
|
||||
}
|
||||
},
|
||||
{
|
||||
.driver_data = &acp6x_card,
|
||||
.matches = {
|
||||
@ -395,6 +402,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "Redmi Book Pro 15 2022"),
|
||||
}
|
||||
},
|
||||
{
|
||||
.driver_data = &acp6x_card,
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_VENDOR, "TIMI"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "Xiaomi Book Pro 14 2022"),
|
||||
}
|
||||
},
|
||||
{
|
||||
.driver_data = &acp6x_card,
|
||||
.matches = {
|
||||
|
@ -1992,6 +1992,7 @@ static int tasdevice_dspfw_ready(const struct firmware *fmw,
|
||||
break;
|
||||
case 0x202:
|
||||
case 0x400:
|
||||
case 0x401:
|
||||
tas_priv->fw_parse_variable_header =
|
||||
fw_parse_variable_header_git;
|
||||
tas_priv->fw_parse_program_data =
|
||||
|
@ -342,11 +342,19 @@ int acp_dma_status(struct acp_dev_data *adata, unsigned char ch)
|
||||
{
|
||||
struct snd_sof_dev *sdev = adata->dev;
|
||||
unsigned int val;
|
||||
unsigned int acp_dma_ch_sts;
|
||||
int ret = 0;
|
||||
|
||||
switch (adata->pci_rev) {
|
||||
case ACP70_PCI_ID:
|
||||
acp_dma_ch_sts = ACP70_DMA_CH_STS;
|
||||
break;
|
||||
default:
|
||||
acp_dma_ch_sts = ACP_DMA_CH_STS;
|
||||
}
|
||||
val = snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP_DMA_CNTL_0 + ch * sizeof(u32));
|
||||
if (val & ACP_DMA_CH_RUN) {
|
||||
ret = snd_sof_dsp_read_poll_timeout(sdev, ACP_DSP_BAR, ACP_DMA_CH_STS, val, !val,
|
||||
ret = snd_sof_dsp_read_poll_timeout(sdev, ACP_DSP_BAR, acp_dma_ch_sts, val, !val,
|
||||
ACP_REG_POLL_INTERVAL,
|
||||
ACP_DMA_COMPLETE_TIMEOUT_US);
|
||||
if (ret < 0)
|
||||
|
@ -125,6 +125,7 @@ static int ipc4_probes_init(struct sof_client_dev *cdev, u32 stream_tag,
|
||||
msg.primary |= SOF_IPC4_MSG_TARGET(SOF_IPC4_MODULE_MSG);
|
||||
msg.extension = SOF_IPC4_MOD_EXT_DST_MOD_INSTANCE(INVALID_PIPELINE_ID);
|
||||
msg.extension |= SOF_IPC4_MOD_EXT_CORE_ID(0);
|
||||
msg.extension |= SOF_IPC4_MOD_EXT_PARAM_SIZE(sizeof(cfg) / sizeof(uint32_t));
|
||||
|
||||
msg.data_size = sizeof(cfg);
|
||||
msg.data_ptr = &cfg;
|
||||
|
@ -317,7 +317,7 @@ static int stm32_sai_get_clk_div(struct stm32_sai_sub_data *sai,
|
||||
int div;
|
||||
|
||||
div = DIV_ROUND_CLOSEST(input_rate, output_rate);
|
||||
if (div > SAI_XCR1_MCKDIV_MAX(version)) {
|
||||
if (div > SAI_XCR1_MCKDIV_MAX(version) || div <= 0) {
|
||||
dev_err(&sai->pdev->dev, "Divider %d out of range\n", div);
|
||||
return -EINVAL;
|
||||
}
|
||||
@ -378,8 +378,8 @@ static long stm32_sai_mclk_round_rate(struct clk_hw *hw, unsigned long rate,
|
||||
int div;
|
||||
|
||||
div = stm32_sai_get_clk_div(sai, *prate, rate);
|
||||
if (div < 0)
|
||||
return div;
|
||||
if (div <= 0)
|
||||
return -EINVAL;
|
||||
|
||||
mclk->freq = *prate / div;
|
||||
|
||||
|
@ -939,7 +939,7 @@ static void stm32_spdifrx_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct stm32_spdifrx_data *spdifrx = platform_get_drvdata(pdev);
|
||||
|
||||
if (spdifrx->ctrl_chan)
|
||||
if (!IS_ERR(spdifrx->ctrl_chan))
|
||||
dma_release_channel(spdifrx->ctrl_chan);
|
||||
|
||||
if (spdifrx->dmab)
|
||||
|
@ -1205,6 +1205,7 @@ static void volume_control_quirks(struct usb_mixer_elem_info *cval,
|
||||
}
|
||||
break;
|
||||
case USB_ID(0x1bcf, 0x2283): /* NexiGo N930AF FHD Webcam */
|
||||
case USB_ID(0x03f0, 0x654a): /* HP 320 FHD Webcam */
|
||||
if (!strcmp(kctl->id.name, "Mic Capture Volume")) {
|
||||
usb_audio_info(chip,
|
||||
"set resolution quirk: cval->res = 16\n");
|
||||
|
@ -2114,6 +2114,8 @@ struct usb_audio_quirk_flags_table {
|
||||
|
||||
static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
|
||||
/* Device matches */
|
||||
DEVICE_FLG(0x03f0, 0x654a, /* HP 320 FHD Webcam */
|
||||
QUIRK_FLAG_GET_SAMPLE_RATE),
|
||||
DEVICE_FLG(0x041e, 0x3000, /* Creative SB Extigy */
|
||||
QUIRK_FLAG_IGNORE_CTL_ERROR),
|
||||
DEVICE_FLG(0x041e, 0x4080, /* Creative Live Cam VF0610 */
|
||||
|
Loading…
Reference in New Issue
Block a user