]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ALSA: hda/tas2781: Ignore reset check for SPI device
authorBaojun Xu <baojun.xu@ti.com>
Wed, 11 Feb 2026 03:09:46 +0000 (11:09 +0800)
committerSasha Levin <sashal@kernel.org>
Wed, 4 Mar 2026 12:20:47 +0000 (07:20 -0500)
[ Upstream commit 908ef80e31e4d3bd953a0088fe57640cd9ae7b3e ]

In the SPI driver probe, the device should be in the default state, so the
device status check is not necessary. It should be forced to do the
firmware download as I2C device.

Signed-off-by: Baojun Xu <baojun.xu@ti.com>
Link: https://patch.msgid.link/20260211030946.2330-1-baojun.xu@ti.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/hda/codecs/side-codecs/tas2781_hda_spi.c

index b9a55672bf15d53d144b476f3755919592761312..488e35dac9524c8585d67e7fad733af8439a64d1 100644 (file)
@@ -634,7 +634,7 @@ static void tasdev_fw_ready(const struct firmware *fmw, void *context)
        struct tasdevice_priv *tas_priv = context;
        struct tas2781_hda *tas_hda = dev_get_drvdata(tas_priv->dev);
        struct hda_codec *codec = tas_priv->codec;
-       int ret, val;
+       int ret;
 
        pm_runtime_get_sync(tas_priv->dev);
        guard(mutex)(&tas_priv->codec_lock);
@@ -673,20 +673,14 @@ static void tasdev_fw_ready(const struct firmware *fmw, void *context)
        tas_priv->rcabin.profile_cfg_id = 0;
 
        tas_priv->fw_state = TASDEVICE_DSP_FW_ALL_OK;
-       ret = tasdevice_spi_dev_read(tas_priv, tas_priv->index,
-               TAS2781_REG_CLK_CONFIG, &val);
-       if (ret < 0)
-               goto out;
 
-       if (val == TAS2781_REG_CLK_CONFIG_RESET) {
-               ret = tasdevice_prmg_load(tas_priv, 0);
-               if (ret < 0) {
-                       dev_err(tas_priv->dev, "FW download failed = %d\n",
-                               ret);
-                       goto out;
-               }
-               tas_priv->fw_state = TASDEVICE_DSP_FW_ALL_OK;
+       ret = tasdevice_prmg_load(tas_priv, 0);
+       if (ret < 0) {
+               dev_err(tas_priv->dev, "FW download failed = %d\n", ret);
+               goto out;
        }
+       tas_priv->fw_state = TASDEVICE_DSP_FW_ALL_OK;
+
        if (tas_priv->fmw->nr_programs > 0)
                tas_priv->tasdevice[tas_priv->index].cur_prog = 0;
        if (tas_priv->fmw->nr_configurations > 0)