ASoC: Fixes for v6.1
A clutch of small fixes that have come in in the past week, people seem to have been unusually active for this late in the release cycle. The most critical one here is the fix to renumber the SOF DAI types in order to restore ABI compatibility which was broken by the addition of AMD support. -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmN+Q1YACgkQJNaLcl1U h9BTiAf/XnEsihT/L7mt6o22HwKyN9MuQnG5yye44o/Z8u3B0KLZncTGKayEgroB d8fFtk+WUHB/wdHu2tZzbbqdYk/MIEaOqFd/chg0XTWgj2HqXZZC9ML53NVe2l2/ DVq/szyesayXVhuWouqDygm04b9Ieoo0FnKwn4nYcTrvXowGd4bAwXdqJCFxTArA RNBR3esALPSGKZg9HbR0L7zliZP4fuvTGQi+hq6H8X6HySJh1RukIzYOyjacwUP2 CcotbkNmzEN16JqSKDuZJtGOG6t1IFBWqMuAyKjugVrHWVZBemqa0Q73Gl6ErhNV ttFV/oNYmfABaTAxFdNIFWyfWUj/vA== =13wZ -----END PGP SIGNATURE----- Merge tag 'asoc-fix-v6.1-rc6' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v6.1 A clutch of small fixes that have come in in the past week, people seem to have been unusually active for this late in the release cycle. The most critical one here is the fix to renumber the SOF DAI types in order to restore ABI compatibility which was broken by the addition of AMD support.
This commit is contained in:
commit
ecae4c8954
|
@ -84,8 +84,8 @@ enum sof_ipc_dai_type {
|
|||
SOF_DAI_AMD_BT, /**< AMD ACP BT*/
|
||||
SOF_DAI_AMD_SP, /**< AMD ACP SP */
|
||||
SOF_DAI_AMD_DMIC, /**< AMD ACP DMIC */
|
||||
SOF_DAI_AMD_HS, /**< Amd HS */
|
||||
SOF_DAI_MEDIATEK_AFE, /**< Mediatek AFE */
|
||||
SOF_DAI_AMD_HS, /**< Amd HS */
|
||||
};
|
||||
|
||||
/* general purpose DAI configuration */
|
||||
|
|
|
@ -14,7 +14,7 @@ enum {
|
|||
HDAC_HDMI_1_DAI_ID,
|
||||
HDAC_HDMI_2_DAI_ID,
|
||||
HDAC_HDMI_3_DAI_ID,
|
||||
HDAC_LAST_DAI_ID = HDAC_HDMI_3_DAI_ID,
|
||||
HDAC_DAI_ID_NUM
|
||||
};
|
||||
|
||||
struct hdac_hda_pcm {
|
||||
|
@ -24,7 +24,7 @@ struct hdac_hda_pcm {
|
|||
|
||||
struct hdac_hda_priv {
|
||||
struct hda_codec *codec;
|
||||
struct hdac_hda_pcm pcm[HDAC_LAST_DAI_ID];
|
||||
struct hdac_hda_pcm pcm[HDAC_DAI_ID_NUM];
|
||||
bool need_display_power;
|
||||
};
|
||||
|
||||
|
|
|
@ -549,6 +549,10 @@ static int max98373_i2c_probe(struct i2c_client *i2c)
|
|||
max98373->cache = devm_kcalloc(&i2c->dev, max98373->cache_num,
|
||||
sizeof(*max98373->cache),
|
||||
GFP_KERNEL);
|
||||
if (!max98373->cache) {
|
||||
ret = -ENOMEM;
|
||||
return ret;
|
||||
}
|
||||
|
||||
for (i = 0; i < max98373->cache_num; i++)
|
||||
max98373->cache[i].reg = max98373_i2c_cache_reg[i];
|
||||
|
|
|
@ -230,7 +230,7 @@ static int rt711_sdca_read_prop(struct sdw_slave *slave)
|
|||
}
|
||||
|
||||
/* set the timeout values */
|
||||
prop->clk_stop_timeout = 20;
|
||||
prop->clk_stop_timeout = 700;
|
||||
|
||||
/* wake-up event */
|
||||
prop->wake_capable = 1;
|
||||
|
|
|
@ -1794,6 +1794,7 @@ static void sgtl5000_i2c_remove(struct i2c_client *client)
|
|||
{
|
||||
struct sgtl5000_priv *sgtl5000 = i2c_get_clientdata(client);
|
||||
|
||||
regmap_write(sgtl5000->regmap, SGTL5000_CHIP_CLK_CTRL, SGTL5000_CHIP_CLK_CTRL_DEFAULT);
|
||||
regmap_write(sgtl5000->regmap, SGTL5000_CHIP_DIG_POWER, SGTL5000_DIG_POWER_DEFAULT);
|
||||
regmap_write(sgtl5000->regmap, SGTL5000_CHIP_ANA_POWER, SGTL5000_ANA_POWER_DEFAULT);
|
||||
|
||||
|
|
|
@ -2503,6 +2503,14 @@ static void wm8962_configure_bclk(struct snd_soc_component *component)
|
|||
snd_soc_component_update_bits(component, WM8962_CLOCKING2,
|
||||
WM8962_SYSCLK_ENA_MASK, WM8962_SYSCLK_ENA);
|
||||
|
||||
/* DSPCLK_DIV field in WM8962_CLOCKING1 register is used to generate
|
||||
* correct frequency of LRCLK and BCLK. Sometimes the read-only value
|
||||
* can't be updated timely after enabling SYSCLK. This results in wrong
|
||||
* calculation values. Delay is introduced here to wait for newest
|
||||
* value from register. The time of the delay should be at least
|
||||
* 500~1000us according to test.
|
||||
*/
|
||||
usleep_range(500, 1000);
|
||||
dspclk = snd_soc_component_read(component, WM8962_CLOCKING1);
|
||||
|
||||
if (snd_soc_component_get_bias_level(component) != SND_SOC_BIAS_ON)
|
||||
|
|
|
@ -822,11 +822,6 @@ static int __soc_pcm_open(struct snd_soc_pcm_runtime *rtd,
|
|||
ret = snd_soc_dai_startup(dai, substream);
|
||||
if (ret < 0)
|
||||
goto err;
|
||||
|
||||
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
|
||||
dai->tx_mask = 0;
|
||||
else
|
||||
dai->rx_mask = 0;
|
||||
}
|
||||
|
||||
/* Dynamic PCM DAI links compat checks use dynamic capabilities */
|
||||
|
@ -1252,6 +1247,8 @@ static void dpcm_be_reparent(struct snd_soc_pcm_runtime *fe,
|
|||
return;
|
||||
|
||||
be_substream = snd_soc_dpcm_get_substream(be, stream);
|
||||
if (!be_substream)
|
||||
return;
|
||||
|
||||
for_each_dpcm_fe(be, stream, dpcm) {
|
||||
if (dpcm->fe == fe)
|
||||
|
|
|
@ -1077,7 +1077,7 @@ static int stm32_i2s_parse_dt(struct platform_device *pdev,
|
|||
if (irq < 0)
|
||||
return irq;
|
||||
|
||||
ret = devm_request_irq(&pdev->dev, irq, stm32_i2s_isr, IRQF_ONESHOT,
|
||||
ret = devm_request_irq(&pdev->dev, irq, stm32_i2s_isr, 0,
|
||||
dev_name(&pdev->dev), i2s);
|
||||
if (ret) {
|
||||
dev_err(&pdev->dev, "irq request returned %d\n", ret);
|
||||
|
|
Loading…
Reference in New Issue