* 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