]> git.ipfire.org Git - thirdparty/kernel/linux.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)
committerTakashi Iwai <tiwai@suse.de>
Wed, 11 Feb 2026 09:00:38 +0000 (10:00 +0100)
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>
sound/hda/codecs/side-codecs/tas2781_hda_spi.c

index 0c9b57b6ff55bb359257d642096bb8a0c59b7234..f860e0eb7602a720b62f61a2553a09606f895cec 100644 (file)
@@ -631,7 +631,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;
 
        guard(pm_runtime_active_auto)(tas_priv->dev);
        guard(mutex)(&tas_priv->codec_lock);
@@ -670,20 +670,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)