Commit 1256961d authored by Nathan Chancellor's avatar Nathan Chancellor Committed by Takashi Iwai
Browse files

ALSA: hda: tas2781-spi: Fix -Wsometimes-uninitialized in tasdevice_spi_switch_book()



Clang warns (or errors with CONFIG_WERROR=y):

  sound/pci/hda/tas2781_hda_spi.c:110:6: error: variable 'ret' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
    110 |         if (tas_priv->cur_book != TASDEVICE_BOOK_ID(reg)) {
        |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  sound/pci/hda/tas2781_hda_spi.c:119:9: note: uninitialized use occurs here
    119 |         return ret;
        |                ^~~
  sound/pci/hda/tas2781_hda_spi.c:110:2: note: remove the 'if' if its condition is always true
    110 |         if (tas_priv->cur_book != TASDEVICE_BOOK_ID(reg)) {
        |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  sound/pci/hda/tas2781_hda_spi.c:108:9: note: initialize the variable 'ret' to silence this warning
    108 |         int ret;
        |                ^
        |                 = 0

Sink the declaration of ret into the if block and just return 0 at the
end of the function, as there is nothing to do if cur_book has already
been changed.

Fixes: bb5f86ea ("ALSA: hda/tas2781: Add tas2781 hda SPI driver")
Reported-by: default avatarkernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202501192006.Hm9GmKiV-lkp@intel.com/


Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
Link: https://patch.msgid.link/20250120-tas2781_hda_spi-fix-wsometimes-uninitialized-v1-1-d7fd104aa63e@kernel.org


Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent e576e784
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -105,10 +105,9 @@ static const struct regmap_config tasdevice_regmap = {
static int tasdevice_spi_switch_book(struct tasdevice_priv *tas_priv, int reg)
{
	struct regmap *map = tas_priv->regmap;
	int ret;

	if (tas_priv->cur_book != TASDEVICE_BOOK_ID(reg)) {
		ret = regmap_write(map, TASDEVICE_BOOKCTL_REG,
		int ret = regmap_write(map, TASDEVICE_BOOKCTL_REG,
				       TASDEVICE_BOOK_ID(reg));
		if (ret < 0) {
			dev_err(tas_priv->dev, "Switch Book E=%d\n", ret);
@@ -116,7 +115,7 @@ static int tasdevice_spi_switch_book(struct tasdevice_priv *tas_priv, int reg)
		}
		tas_priv->cur_book = TASDEVICE_BOOK_ID(reg);
	}
	return ret;
	return 0;
}

int tasdevice_spi_dev_read(struct tasdevice_priv *tas_priv,