Commit d81c203e authored by Takashi Iwai's avatar Takashi Iwai

Merge tag 'asoc-fix-v6.5-merge-window' of...

Merge tag 'asoc-fix-v6.5-merge-window' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes that got left after v6.4

These were some changes in my v6.4 branch that never got sent as fixes,
none of them super urgent thankfully.
parents 8d2a0cdf d900d9a4
...@@ -381,88 +381,88 @@ struct cs43130_clk_gen { ...@@ -381,88 +381,88 @@ struct cs43130_clk_gen {
/* frm_size = 16 */ /* frm_size = 16 */
static const struct cs43130_clk_gen cs43130_16_clk_gen[] = { static const struct cs43130_clk_gen cs43130_16_clk_gen[] = {
{ 22579200, 32000, .v = { 441, 10, }, }, { 22579200, 32000, .v = { 10, 441, }, },
{ 22579200, 44100, .v = { 32, 1, }, }, { 22579200, 44100, .v = { 1, 32, }, },
{ 22579200, 48000, .v = { 147, 5, }, }, { 22579200, 48000, .v = { 5, 147, }, },
{ 22579200, 88200, .v = { 16, 1, }, }, { 22579200, 88200, .v = { 1, 16, }, },
{ 22579200, 96000, .v = { 147, 10, }, }, { 22579200, 96000, .v = { 10, 147, }, },
{ 22579200, 176400, .v = { 8, 1, }, }, { 22579200, 176400, .v = { 1, 8, }, },
{ 22579200, 192000, .v = { 147, 20, }, }, { 22579200, 192000, .v = { 20, 147, }, },
{ 22579200, 352800, .v = { 4, 1, }, }, { 22579200, 352800, .v = { 1, 4, }, },
{ 22579200, 384000, .v = { 147, 40, }, }, { 22579200, 384000, .v = { 40, 147, }, },
{ 24576000, 32000, .v = { 48, 1, }, }, { 24576000, 32000, .v = { 1, 48, }, },
{ 24576000, 44100, .v = { 5120, 147, }, }, { 24576000, 44100, .v = { 147, 5120, }, },
{ 24576000, 48000, .v = { 32, 1, }, }, { 24576000, 48000, .v = { 1, 32, }, },
{ 24576000, 88200, .v = { 2560, 147, }, }, { 24576000, 88200, .v = { 147, 2560, }, },
{ 24576000, 96000, .v = { 16, 1, }, }, { 24576000, 96000, .v = { 1, 16, }, },
{ 24576000, 176400, .v = { 1280, 147, }, }, { 24576000, 176400, .v = { 147, 1280, }, },
{ 24576000, 192000, .v = { 8, 1, }, }, { 24576000, 192000, .v = { 1, 8, }, },
{ 24576000, 352800, .v = { 640, 147, }, }, { 24576000, 352800, .v = { 147, 640, }, },
{ 24576000, 384000, .v = { 4, 1, }, }, { 24576000, 384000, .v = { 1, 4, }, },
}; };
/* frm_size = 32 */ /* frm_size = 32 */
static const struct cs43130_clk_gen cs43130_32_clk_gen[] = { static const struct cs43130_clk_gen cs43130_32_clk_gen[] = {
{ 22579200, 32000, .v = { 441, 20, }, }, { 22579200, 32000, .v = { 20, 441, }, },
{ 22579200, 44100, .v = { 16, 1, }, }, { 22579200, 44100, .v = { 1, 16, }, },
{ 22579200, 48000, .v = { 147, 10, }, }, { 22579200, 48000, .v = { 10, 147, }, },
{ 22579200, 88200, .v = { 8, 1, }, }, { 22579200, 88200, .v = { 1, 8, }, },
{ 22579200, 96000, .v = { 147, 20, }, }, { 22579200, 96000, .v = { 20, 147, }, },
{ 22579200, 176400, .v = { 4, 1, }, }, { 22579200, 176400, .v = { 1, 4, }, },
{ 22579200, 192000, .v = { 147, 40, }, }, { 22579200, 192000, .v = { 40, 147, }, },
{ 22579200, 352800, .v = { 2, 1, }, }, { 22579200, 352800, .v = { 1, 2, }, },
{ 22579200, 384000, .v = { 147, 80, }, }, { 22579200, 384000, .v = { 80, 147, }, },
{ 24576000, 32000, .v = { 24, 1, }, }, { 24576000, 32000, .v = { 1, 24, }, },
{ 24576000, 44100, .v = { 2560, 147, }, }, { 24576000, 44100, .v = { 147, 2560, }, },
{ 24576000, 48000, .v = { 16, 1, }, }, { 24576000, 48000, .v = { 1, 16, }, },
{ 24576000, 88200, .v = { 1280, 147, }, }, { 24576000, 88200, .v = { 147, 1280, }, },
{ 24576000, 96000, .v = { 8, 1, }, }, { 24576000, 96000, .v = { 1, 8, }, },
{ 24576000, 176400, .v = { 640, 147, }, }, { 24576000, 176400, .v = { 147, 640, }, },
{ 24576000, 192000, .v = { 4, 1, }, }, { 24576000, 192000, .v = { 1, 4, }, },
{ 24576000, 352800, .v = { 320, 147, }, }, { 24576000, 352800, .v = { 147, 320, }, },
{ 24576000, 384000, .v = { 2, 1, }, }, { 24576000, 384000, .v = { 1, 2, }, },
}; };
/* frm_size = 48 */ /* frm_size = 48 */
static const struct cs43130_clk_gen cs43130_48_clk_gen[] = { static const struct cs43130_clk_gen cs43130_48_clk_gen[] = {
{ 22579200, 32000, .v = { 147, 100, }, }, { 22579200, 32000, .v = { 100, 147, }, },
{ 22579200, 44100, .v = { 32, 3, }, }, { 22579200, 44100, .v = { 3, 32, }, },
{ 22579200, 48000, .v = { 49, 5, }, }, { 22579200, 48000, .v = { 5, 49, }, },
{ 22579200, 88200, .v = { 16, 3, }, }, { 22579200, 88200, .v = { 3, 16, }, },
{ 22579200, 96000, .v = { 49, 10, }, }, { 22579200, 96000, .v = { 10, 49, }, },
{ 22579200, 176400, .v = { 8, 3, }, }, { 22579200, 176400, .v = { 3, 8, }, },
{ 22579200, 192000, .v = { 49, 20, }, }, { 22579200, 192000, .v = { 20, 49, }, },
{ 22579200, 352800, .v = { 4, 3, }, }, { 22579200, 352800, .v = { 3, 4, }, },
{ 22579200, 384000, .v = { 49, 40, }, }, { 22579200, 384000, .v = { 40, 49, }, },
{ 24576000, 32000, .v = { 16, 1, }, }, { 24576000, 32000, .v = { 1, 16, }, },
{ 24576000, 44100, .v = { 5120, 441, }, }, { 24576000, 44100, .v = { 441, 5120, }, },
{ 24576000, 48000, .v = { 32, 3, }, }, { 24576000, 48000, .v = { 3, 32, }, },
{ 24576000, 88200, .v = { 2560, 441, }, }, { 24576000, 88200, .v = { 441, 2560, }, },
{ 24576000, 96000, .v = { 16, 3, }, }, { 24576000, 96000, .v = { 3, 16, }, },
{ 24576000, 176400, .v = { 1280, 441, }, }, { 24576000, 176400, .v = { 441, 1280, }, },
{ 24576000, 192000, .v = { 8, 3, }, }, { 24576000, 192000, .v = { 3, 8, }, },
{ 24576000, 352800, .v = { 640, 441, }, }, { 24576000, 352800, .v = { 441, 640, }, },
{ 24576000, 384000, .v = { 4, 3, }, }, { 24576000, 384000, .v = { 3, 4, }, },
}; };
/* frm_size = 64 */ /* frm_size = 64 */
static const struct cs43130_clk_gen cs43130_64_clk_gen[] = { static const struct cs43130_clk_gen cs43130_64_clk_gen[] = {
{ 22579200, 32000, .v = { 441, 40, }, }, { 22579200, 32000, .v = { 40, 441, }, },
{ 22579200, 44100, .v = { 8, 1, }, }, { 22579200, 44100, .v = { 1, 8, }, },
{ 22579200, 48000, .v = { 147, 20, }, }, { 22579200, 48000, .v = { 20, 147, }, },
{ 22579200, 88200, .v = { 4, 1, }, }, { 22579200, 88200, .v = { 1, 4, }, },
{ 22579200, 96000, .v = { 147, 40, }, }, { 22579200, 96000, .v = { 40, 147, }, },
{ 22579200, 176400, .v = { 2, 1, }, }, { 22579200, 176400, .v = { 1, 2, }, },
{ 22579200, 192000, .v = { 147, 80, }, }, { 22579200, 192000, .v = { 80, 147, }, },
{ 22579200, 352800, .v = { 1, 1, }, }, { 22579200, 352800, .v = { 1, 1, }, },
{ 24576000, 32000, .v = { 12, 1, }, }, { 24576000, 32000, .v = { 1, 12, }, },
{ 24576000, 44100, .v = { 1280, 147, }, }, { 24576000, 44100, .v = { 147, 1280, }, },
{ 24576000, 48000, .v = { 8, 1, }, }, { 24576000, 48000, .v = { 1, 8, }, },
{ 24576000, 88200, .v = { 640, 147, }, }, { 24576000, 88200, .v = { 147, 640, }, },
{ 24576000, 96000, .v = { 4, 1, }, }, { 24576000, 96000, .v = { 1, 4, }, },
{ 24576000, 176400, .v = { 320, 147, }, }, { 24576000, 176400, .v = { 147, 320, }, },
{ 24576000, 192000, .v = { 2, 1, }, }, { 24576000, 192000, .v = { 1, 2, }, },
{ 24576000, 352800, .v = { 160, 147, }, }, { 24576000, 352800, .v = { 147, 160, }, },
{ 24576000, 384000, .v = { 1, 1, }, }, { 24576000, 384000, .v = { 1, 1, }, },
}; };
......
...@@ -193,6 +193,7 @@ static int soc_compr_open_fe(struct snd_compr_stream *cstream) ...@@ -193,6 +193,7 @@ static int soc_compr_open_fe(struct snd_compr_stream *cstream)
snd_soc_dai_compr_shutdown(cpu_dai, cstream, 1); snd_soc_dai_compr_shutdown(cpu_dai, cstream, 1);
out: out:
dpcm_path_put(&list); dpcm_path_put(&list);
snd_soc_dpcm_mutex_unlock(fe);
be_err: be_err:
fe->dpcm[stream].runtime_update = SND_SOC_DPCM_UPDATE_NO; fe->dpcm[stream].runtime_update = SND_SOC_DPCM_UPDATE_NO;
snd_soc_card_mutex_unlock(fe->card); snd_soc_card_mutex_unlock(fe->card);
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// //
// tegra210_sfc.c - Tegra210 SFC driver // tegra210_sfc.c - Tegra210 SFC driver
// //
// Copyright (c) 2021 NVIDIA CORPORATION. All rights reserved. // Copyright (c) 2021-2023 NVIDIA CORPORATION. All rights reserved.
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/device.h> #include <linux/device.h>
...@@ -42,6 +42,7 @@ static const int tegra210_sfc_rates[TEGRA210_SFC_NUM_RATES] = { ...@@ -42,6 +42,7 @@ static const int tegra210_sfc_rates[TEGRA210_SFC_NUM_RATES] = {
32000, 32000,
44100, 44100,
48000, 48000,
64000,
88200, 88200,
96000, 96000,
176400, 176400,
...@@ -2857,6 +2858,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = { ...@@ -2857,6 +2858,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = {
coef_8to32, coef_8to32,
coef_8to44, coef_8to44,
coef_8to48, coef_8to48,
UNSUPP_CONV,
coef_8to88, coef_8to88,
coef_8to96, coef_8to96,
UNSUPP_CONV, UNSUPP_CONV,
...@@ -2872,6 +2874,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = { ...@@ -2872,6 +2874,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = {
coef_11to32, coef_11to32,
coef_11to44, coef_11to44,
coef_11to48, coef_11to48,
UNSUPP_CONV,
coef_11to88, coef_11to88,
coef_11to96, coef_11to96,
UNSUPP_CONV, UNSUPP_CONV,
...@@ -2887,6 +2890,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = { ...@@ -2887,6 +2890,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = {
coef_16to32, coef_16to32,
coef_16to44, coef_16to44,
coef_16to48, coef_16to48,
UNSUPP_CONV,
coef_16to88, coef_16to88,
coef_16to96, coef_16to96,
coef_16to176, coef_16to176,
...@@ -2902,6 +2906,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = { ...@@ -2902,6 +2906,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = {
coef_22to32, coef_22to32,
coef_22to44, coef_22to44,
coef_22to48, coef_22to48,
UNSUPP_CONV,
coef_22to88, coef_22to88,
coef_22to96, coef_22to96,
coef_22to176, coef_22to176,
...@@ -2917,6 +2922,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = { ...@@ -2917,6 +2922,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = {
coef_24to32, coef_24to32,
coef_24to44, coef_24to44,
coef_24to48, coef_24to48,
UNSUPP_CONV,
coef_24to88, coef_24to88,
coef_24to96, coef_24to96,
coef_24to176, coef_24to176,
...@@ -2932,6 +2938,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = { ...@@ -2932,6 +2938,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = {
BYPASS_CONV, BYPASS_CONV,
coef_32to44, coef_32to44,
coef_32to48, coef_32to48,
UNSUPP_CONV,
coef_32to88, coef_32to88,
coef_32to96, coef_32to96,
coef_32to176, coef_32to176,
...@@ -2947,6 +2954,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = { ...@@ -2947,6 +2954,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = {
coef_44to32, coef_44to32,
BYPASS_CONV, BYPASS_CONV,
coef_44to48, coef_44to48,
UNSUPP_CONV,
coef_44to88, coef_44to88,
coef_44to96, coef_44to96,
coef_44to176, coef_44to176,
...@@ -2962,11 +2970,28 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = { ...@@ -2962,11 +2970,28 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = {
coef_48to32, coef_48to32,
coef_48to44, coef_48to44,
BYPASS_CONV, BYPASS_CONV,
UNSUPP_CONV,
coef_48to88, coef_48to88,
coef_48to96, coef_48to96,
coef_48to176, coef_48to176,
coef_48to192, coef_48to192,
}, },
/* Convertions from 64 kHz */
{
UNSUPP_CONV,
UNSUPP_CONV,
UNSUPP_CONV,
UNSUPP_CONV,
UNSUPP_CONV,
UNSUPP_CONV,
UNSUPP_CONV,
UNSUPP_CONV,
UNSUPP_CONV,
UNSUPP_CONV,
UNSUPP_CONV,
UNSUPP_CONV,
UNSUPP_CONV,
},
/* Convertions from 88.2 kHz */ /* Convertions from 88.2 kHz */
{ {
coef_88to8, coef_88to8,
...@@ -2977,6 +3002,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = { ...@@ -2977,6 +3002,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = {
coef_88to32, coef_88to32,
coef_88to44, coef_88to44,
coef_88to48, coef_88to48,
UNSUPP_CONV,
BYPASS_CONV, BYPASS_CONV,
coef_88to96, coef_88to96,
coef_88to176, coef_88to176,
...@@ -2991,6 +3017,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = { ...@@ -2991,6 +3017,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = {
coef_96to32, coef_96to32,
coef_96to44, coef_96to44,
coef_96to48, coef_96to48,
UNSUPP_CONV,
coef_96to88, coef_96to88,
BYPASS_CONV, BYPASS_CONV,
coef_96to176, coef_96to176,
...@@ -3006,6 +3033,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = { ...@@ -3006,6 +3033,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = {
coef_176to32, coef_176to32,
coef_176to44, coef_176to44,
coef_176to48, coef_176to48,
UNSUPP_CONV,
coef_176to88, coef_176to88,
coef_176to96, coef_176to96,
BYPASS_CONV, BYPASS_CONV,
...@@ -3021,6 +3049,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = { ...@@ -3021,6 +3049,7 @@ static s32 *coef_addr_table[TEGRA210_SFC_NUM_RATES][TEGRA210_SFC_NUM_RATES] = {
coef_192to32, coef_192to32,
coef_192to44, coef_192to44,
coef_192to48, coef_192to48,
UNSUPP_CONV,
coef_192to88, coef_192to88,
coef_192to96, coef_192to96,
coef_192to176, coef_192to176,
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/* /*
* tegra210_sfc.h - Definitions for Tegra210 SFC driver * tegra210_sfc.h - Definitions for Tegra210 SFC driver
* *
* Copyright (c) 2021 NVIDIA CORPORATION. All rights reserved. * Copyright (c) 2021-2023 NVIDIA CORPORATION. All rights reserved.
* *
*/ */
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
#define TEGRA210_SFC_EN_SHIFT 0 #define TEGRA210_SFC_EN_SHIFT 0
#define TEGRA210_SFC_EN (1 << TEGRA210_SFC_EN_SHIFT) #define TEGRA210_SFC_EN (1 << TEGRA210_SFC_EN_SHIFT)
#define TEGRA210_SFC_NUM_RATES 12 #define TEGRA210_SFC_NUM_RATES 13
/* Fields in TEGRA210_SFC_COEF_RAM */ /* Fields in TEGRA210_SFC_COEF_RAM */
#define TEGRA210_SFC_COEF_RAM_EN BIT(0) #define TEGRA210_SFC_COEF_RAM_EN BIT(0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment