The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* sound/soc/codecs/tac5xx2-sdw.c:984 tac5xx2_jack_init() warn: missing error code 'ret'
@ 2026-07-29  5:45 Dan Carpenter
  2026-07-29  9:56 ` Holalu Yogendra, Niranjan
  0 siblings, 1 reply; 4+ messages in thread
From: Dan Carpenter @ 2026-07-29  5:45 UTC (permalink / raw)
  To: oe-kbuild, Niranjan H Y
  Cc: lkp, oe-kbuild-all, linux-kernel, Mark Brown,
	Pierre-Louis Bossart

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   fc02acf6ac0ccde0c805c2daa9148683cdd01ba8
commit: 38c89fededd5a9472e8222a20aa066058585f7b2 ASoC: tac5xx2-sdw: add soundwire based codec driver
date:   3 months ago
config: i386-randconfig-r073-20260729 (https://download.01.org/0day-ci/archive/20260729/202607291308.8OeeiyIv-lkp@intel.com/config)
compiler: clang version 22.1.3 (https://github.com/llvm/llvm-project e9846648fd6183ee6d8cbdb4502213fcf902a211)
smatch: v0.5.0-9187-g5189e3fb

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Fixes: 38c89fededd5 ("ASoC: tac5xx2-sdw: add soundwire based codec driver")
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202607291308.8OeeiyIv-lkp@intel.com/

smatch warnings:
sound/soc/codecs/tac5xx2-sdw.c:984 tac5xx2_jack_init() warn: missing error code 'ret'

vim +/ret +984 sound/soc/codecs/tac5xx2-sdw.c

38c89fededd5a9 Niranjan H Y 2026-05-05   979  static int tac5xx2_jack_init(struct tac5xx2_prv *tac_dev)
38c89fededd5a9 Niranjan H Y 2026-05-05   980  {
38c89fededd5a9 Niranjan H Y 2026-05-05   981  	int ret = 0;
38c89fededd5a9 Niranjan H Y 2026-05-05   982  
38c89fededd5a9 Niranjan H Y 2026-05-05   983  	if (!tac_dev->hs_jack)
38c89fededd5a9 Niranjan H Y 2026-05-05  @984  		goto disable_interrupts;

Is this supposed to be an error path?  tac_dev->hs_jack can't be NULL
in real life.

38c89fededd5a9 Niranjan H Y 2026-05-05   985  
38c89fededd5a9 Niranjan H Y 2026-05-05   986  	ret = regmap_write(tac_dev->regmap, SDW_SCP_SDCA_INTMASK2,
38c89fededd5a9 Niranjan H Y 2026-05-05   987  			   SDW_SCP_SDCA_INTMASK_SDCA_11);
38c89fededd5a9 Niranjan H Y 2026-05-05   988  	if (ret) {
38c89fededd5a9 Niranjan H Y 2026-05-05   989  		dev_err(tac_dev->dev,
38c89fededd5a9 Niranjan H Y 2026-05-05   990  			"Failed to register jack detection interrupt: %d\n", ret);
38c89fededd5a9 Niranjan H Y 2026-05-05   991  		goto disable_interrupts;
38c89fededd5a9 Niranjan H Y 2026-05-05   992  	}
38c89fededd5a9 Niranjan H Y 2026-05-05   993  
38c89fededd5a9 Niranjan H Y 2026-05-05   994  	ret = regmap_write(tac_dev->regmap, SDW_SCP_SDCA_INTMASK3,
38c89fededd5a9 Niranjan H Y 2026-05-05   995  			   SDW_SCP_SDCA_INTMASK_SDCA_16);
38c89fededd5a9 Niranjan H Y 2026-05-05   996  	if (ret) {
38c89fededd5a9 Niranjan H Y 2026-05-05   997  		dev_err(tac_dev->dev,
38c89fededd5a9 Niranjan H Y 2026-05-05   998  			"Failed to register for button detect interrupt: %d\n", ret);
38c89fededd5a9 Niranjan H Y 2026-05-05   999  		goto disable_interrupts;
38c89fededd5a9 Niranjan H Y 2026-05-05  1000  	}
38c89fededd5a9 Niranjan H Y 2026-05-05  1001  
38c89fededd5a9 Niranjan H Y 2026-05-05  1002  	return 0;
38c89fededd5a9 Niranjan H Y 2026-05-05  1003  
38c89fededd5a9 Niranjan H Y 2026-05-05  1004  disable_interrupts:
38c89fededd5a9 Niranjan H Y 2026-05-05  1005  	/* ignore errors while disabling interrupts */
38c89fededd5a9 Niranjan H Y 2026-05-05  1006  	regmap_write(tac_dev->regmap, SDW_SCP_SDCA_INTMASK2, 0);
38c89fededd5a9 Niranjan H Y 2026-05-05  1007  	regmap_write(tac_dev->regmap, SDW_SCP_SDCA_INTMASK3, 0);
38c89fededd5a9 Niranjan H Y 2026-05-05  1008  
38c89fededd5a9 Niranjan H Y 2026-05-05  1009  	return ret;
38c89fededd5a9 Niranjan H Y 2026-05-05  1010  }

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: sound/soc/codecs/tac5xx2-sdw.c:984 tac5xx2_jack_init() warn: missing error code 'ret'
  2026-07-29  5:45 sound/soc/codecs/tac5xx2-sdw.c:984 tac5xx2_jack_init() warn: missing error code 'ret' Dan Carpenter
@ 2026-07-29  9:56 ` Holalu Yogendra, Niranjan
  2026-07-29 10:06   ` Dan Carpenter
  0 siblings, 1 reply; 4+ messages in thread
From: Holalu Yogendra, Niranjan @ 2026-07-29  9:56 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev,
	linux-kernel@vger.kernel.org, Mark Brown, Pierre-Louis Bossart,
	oe-kbuild@lists.linux.dev

> On 11:16-20260729, Dan Carpenter wrote:
> Subject: sound/soc/codecs/tac5xx2-sdw.c:984 tac5xx2_jack_init() warn: missing error code 'ret's
> 
> smatch warnings:
> sound/soc/codecs/tac5xx2-sdw.c:984 tac5xx2_jack_init() warn: missing error
> code 'ret'
> 
> vim +/ret +984 sound/soc/codecs/tac5xx2-sdw.c
> 
> 38c89fededd5a9 Niranjan H Y 2026-05-05   979  static int tac5xx2_jack_init(struct tac5xx2_prv *tac_dev)
> 38c89fededd5a9 Niranjan H Y 2026-05-05   980  {
> 38c89fededd5a9 Niranjan H Y 2026-05-05   981  	int ret = 0;
> 38c89fededd5a9 Niranjan H Y 2026-05-05   982
> 38c89fededd5a9 Niranjan H Y 2026-05-05   983  	if (!tac_dev->hs_jack)
> 38c89fededd5a9 Niranjan H Y 2026-05-05  @984  		goto disable_interrupts;
> 
> Is this supposed to be an error path?  tac_dev->hs_jack can't be NULL
> in real life.

We added this as defensive strategy in case someone calls like this
   snd_soc_component_set_jack(component, NULL, NULL);

Regards
Niranjan



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: sound/soc/codecs/tac5xx2-sdw.c:984 tac5xx2_jack_init() warn: missing error code 'ret'
  2026-07-29  9:56 ` Holalu Yogendra, Niranjan
@ 2026-07-29 10:06   ` Dan Carpenter
  2026-07-29 10:38     ` Holalu Yogendra, Niranjan
  0 siblings, 1 reply; 4+ messages in thread
From: Dan Carpenter @ 2026-07-29 10:06 UTC (permalink / raw)
  To: Holalu Yogendra, Niranjan
  Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev,
	linux-kernel@vger.kernel.org, Mark Brown, Pierre-Louis Bossart,
	oe-kbuild@lists.linux.dev

On Wed, Jul 29, 2026 at 09:56:57AM +0000, Holalu Yogendra, Niranjan wrote:
> > On 11:16-20260729, Dan Carpenter wrote:
> > Subject: sound/soc/codecs/tac5xx2-sdw.c:984 tac5xx2_jack_init() warn: missing error code 'ret's
> > 
> > smatch warnings:
> > sound/soc/codecs/tac5xx2-sdw.c:984 tac5xx2_jack_init() warn: missing error
> > code 'ret'
> > 
> > vim +/ret +984 sound/soc/codecs/tac5xx2-sdw.c
> > 
> > 38c89fededd5a9 Niranjan H Y 2026-05-05   979  static int tac5xx2_jack_init(struct tac5xx2_prv *tac_dev)
> > 38c89fededd5a9 Niranjan H Y 2026-05-05   980  {
> > 38c89fededd5a9 Niranjan H Y 2026-05-05   981  	int ret = 0;
> > 38c89fededd5a9 Niranjan H Y 2026-05-05   982
> > 38c89fededd5a9 Niranjan H Y 2026-05-05   983  	if (!tac_dev->hs_jack)
> > 38c89fededd5a9 Niranjan H Y 2026-05-05  @984  		goto disable_interrupts;
> > 
> > Is this supposed to be an error path?  tac_dev->hs_jack can't be NULL
> > in real life.
> 
> We added this as defensive strategy in case someone calls like this
>    snd_soc_component_set_jack(component, NULL, NULL);

Should it return zero or an error code?  I feel like it should
return an error code since it disables interrupts which
pretty much stops the driver.

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE:  Re: sound/soc/codecs/tac5xx2-sdw.c:984 tac5xx2_jack_init() warn: missing error code 'ret'
  2026-07-29 10:06   ` Dan Carpenter
@ 2026-07-29 10:38     ` Holalu Yogendra, Niranjan
  0 siblings, 0 replies; 4+ messages in thread
From: Holalu Yogendra, Niranjan @ 2026-07-29 10:38 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev,
	linux-kernel@vger.kernel.org, Mark Brown, Pierre-Louis Bossart,
	oe-kbuild@lists.linux.dev

> On 15:37-20260729, Dan Carpenter wrote:
> Subject: [EXTERNAL] Re: sound/soc/codecs/tac5xx2-sdw.c:984 tac5xx2_jack_init() warn: missing error code 'ret'
> On Wed, Jul 29, 2026 at 09:56:57AM +0000, Holalu Yogendra, Niranjan wrote:
> > > On 11:16-20260729, Dan Carpenter wrote:
> > > Subject: sound/soc/codecs/tac5xx2-sdw.c:984 tac5xx2_jack_init() warn: missing error code 'ret's
> > >
> > > smatch warnings:
> > > sound/soc/codecs/tac5xx2-sdw.c:984 tac5xx2_jack_init() warn: missing
> error
> > > code 'ret'
> > >
> > > vim +/ret +984 sound/soc/codecs/tac5xx2-sdw.c
> > >
> > > 38c89fededd5a9 Niranjan H Y 2026-05-05   979  static int tac5xx2_jack_init(struct tac5xx2_prv *tac_dev)
> > > 38c89fededd5a9 Niranjan H Y 2026-05-05   980  {
> > > 38c89fededd5a9 Niranjan H Y 2026-05-05   981  	int ret = 0;
> > > 38c89fededd5a9 Niranjan H Y 2026-05-05   982
> > > 38c89fededd5a9 Niranjan H Y 2026-05-05   983  	if (!tac_dev->hs_jack) 
> > > 38c89fededd5a9 Niranjan H Y 2026-05-05  @984  		goto disable_interrupts;
> > >
> > > Is this supposed to be an error path?  tac_dev->hs_jack can't be NULL
> > > in real life.
> >
> > We added this as defensive strategy in case someone calls like this
> >    snd_soc_component_set_jack(component, NULL, NULL);
> 
> Should it return zero or an error code?  I feel like it should
> return an error code since it disables interrupts which
> pretty much stops the driver.
> 
It should return 0 as we intentionally setting the jack pointer to NULL to disable the jack detection. 
And the interrupts which we  are disabling are jack detection related interrupts, based on which
we were earlier creating the jack report - which is no longer required.

I see a few places where they set the jack pointer to NULL, for e.g. 
https://elixir.bootlin.com/linux/v7.2-rc4/source/sound/soc/amd/acp/acp3x-es83xx/acp3x-es83xx.c#L209
https://elixir.bootlin.com/linux/v7.2-rc4/source/sound/soc/intel/avs/boards/es8336.c#L248
https://elixir.bootlin.com/linux/v7.2-rc4/source/sound/soc/intel/avs/boards/da7219.c#L144
..
I believe they are during either clean up or putting the device to suspend/sleep state. 
So it looks okay to me. 

Regards
Niranjan

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-07-29 10:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-29  5:45 sound/soc/codecs/tac5xx2-sdw.c:984 tac5xx2_jack_init() warn: missing error code 'ret' Dan Carpenter
2026-07-29  9:56 ` Holalu Yogendra, Niranjan
2026-07-29 10:06   ` Dan Carpenter
2026-07-29 10:38     ` Holalu Yogendra, Niranjan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox