All of lore.kernel.org
 help / color / mirror / Atom feed
* [broonie-sound:for-7.4 6/6] sound/soc/codecs/rt721-sdca.c:124 rt721_sdca_jack_detect_handler() warn: inconsistent indenting
@ 2026-10-07 22:17 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-10-07 22:17 UTC (permalink / raw)
  To: Jack Yu; +Cc: oe-kbuild-all, Mark Brown

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-7.4
head:   e2eb4873b901290adc56b76f1d599005e620a6de
commit: e2eb4873b901290adc56b76f1d599005e620a6de [6/6] ASoC: rt721-sdca: Adjust blindwrite flow to fix type detection issue
config: alpha-randconfig-r2201-20261007 (https://download.01.org/0day-ci/archive/20261008/202610080041.JAcitVQd-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 13.4.0
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
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202610080041.JAcitVQd-lkp@intel.com/

smatch warnings:
sound/soc/codecs/rt721-sdca.c:124 rt721_sdca_jack_detect_handler() warn: inconsistent indenting

vim +124 sound/soc/codecs/rt721-sdca.c

   101	
   102	static void rt721_sdca_jack_detect_handler(struct work_struct *work)
   103	{
   104		struct rt721_sdca_priv *rt721 =
   105			container_of(work, struct rt721_sdca_priv, jack_detect_work.work);
   106		unsigned int sta_mode = 0;
   107		int btn_type = 0;
   108		int retry, retry_loop = 40;
   109		int real_JD;
   110	
   111		if (!rt721->hs_jack)
   112			return;
   113	
   114		if (!rt721->component->card || !rt721->component->card->instantiated)
   115			return;
   116	
   117		if (rt721->wf_id == RT721_S) {
   118			if (rt721->imp_sensing_ongoing) {
   119				dev_dbg(&rt721->slave->dev,
   120					"SKIP, imp_sensing_ongoing\n");
   121				return;
   122			}
   123	
 > 124				rt_sdca_index_read(rt721->mbq_regmap, RT721_JD_CTRL,
   125					RT721_JD_1PIN_GAT_STA1, &real_JD);
   126				real_JD &= 0x1;
   127			if (real_JD == 0x0)
   128				rt721_sdca_jack_reset_state(rt721);
   129	
   130			if ((rt721->scp_sdca_stat1 & SDW_SCP_SDCA_INT_SDCA_0) &&
   131				!(rt721->scp_sdca_stat2 & SDW_SCP_SDCA_INT_SDCA_8) &&
   132				real_JD == 0x1 && rt721->int_cnt == 0 &&
   133				!rt721->imp_sensing_done && rt721->jack_type != 0) {
   134				unsigned int cur_mode = 0;
   135				int cur_type = -1;
   136	
   137				for (retry = 0; retry < retry_loop; retry++) {
   138					regmap_read(rt721->regmap,
   139						SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC,
   140							RT721_SDCA_ENT_GE49,
   141							RT721_SDCA_CTL_DETECTED_MODE, 0),
   142						&cur_mode);
   143					if (cur_mode)
   144						break;
   145					usleep_range(20000, 21000);
   146				}
   147	
   148				switch (cur_mode) {
   149				case 0x03:
   150					cur_type = SND_JACK_HEADPHONE;
   151					break;
   152				case 0x05:
   153					cur_type = SND_JACK_HEADSET;
   154					break;
   155				default:
   156					cur_type = -1;
   157					break;
   158				}
   159	
   160				dev_info(&rt721->slave->dev,
   161					"%s: resume check, cur_mode=0x%x cur_type=%d retained jack_type=%d\n",
   162					__func__, cur_mode, cur_type, rt721->jack_type);
   163	
   164				if (cur_mode != 0 && cur_type == rt721->jack_type) {
   165					dev_info(&rt721->slave->dev,
   166						"%s: resume with same jack, reuse jack_type=%d\n",
   167						__func__, rt721->jack_type);
   168					rt721->imp_sensing_done = true;
   169					rt721->last_real_JD = real_JD;
   170					snd_soc_jack_report(rt721->hs_jack, rt721->jack_type,
   171						SND_JACK_HEADSET |
   172						SND_JACK_BTN_0 | SND_JACK_BTN_1 |
   173						SND_JACK_BTN_2 | SND_JACK_BTN_3);
   174					return;
   175				}
   176	
   177				dev_info(&rt721->slave->dev,
   178					"%s: resume jack changed/unsettled, redetect\n", __func__);
   179				rt721->jack_type = 0;
   180			}
   181	
   182			if ((rt721->scp_sdca_stat1 & SDW_SCP_SDCA_INT_SDCA_0) &&
   183				!(rt721->scp_sdca_stat2 & SDW_SCP_SDCA_INT_SDCA_8) &&
   184				real_JD == rt721->last_real_JD && real_JD == 0x1 &&
   185				rt721->int_cnt == 0 && rt721->imp_sensing_done &&
   186				rt721->jack_type != 0) {
   187				dev_info(&rt721->slave->dev,
   188					"%s: state settled (JD=%d), skip redetect\n",
   189					__func__, real_JD);
   190				rt721->last_real_JD = real_JD;
   191				return;
   192			}
   193			rt721->last_real_JD = real_JD;
   194	
   195			if ((rt721->scp_sdca_stat1 & SDW_SCP_SDCA_INT_SDCA_0) &&
   196				!(rt721->scp_sdca_stat2 & SDW_SCP_SDCA_INT_SDCA_8) &&
   197				rt721->int_cnt == 0 && real_JD == 0x1 &&
   198				!rt721->imp_sensing_done) {
   199				dev_info(&rt721->slave->dev,
   200					"%s: BRANCH impedance_sensing (SDCA_0 set, fresh pass)\n",
   201					__func__);
   202				rt721->imp_sensing_done = true;
   203				rt721_impedance_sensing(rt721);
   204				rt721->imp_sensing_ongoing = false;
   205				return;
   206			}
   207	
   208			/* SDW_SCP_SDCA_INT_SDCA_0 is used for jack detection */
   209			if ((rt721->scp_sdca_stat1 & SDW_SCP_SDCA_INT_SDCA_0) &&
   210				(rt721->int_cnt == 1 || real_JD == 0x0)) {
   211				if (real_JD == 0x1) {
   212					for (retry = 0; retry < retry_loop; retry++) {
   213						regmap_read(rt721->regmap,
   214							SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC,
   215								RT721_SDCA_ENT_GE49,
   216								RT721_SDCA_CTL_DETECTED_MODE, 0),
   217							&sta_mode);
   218						if (sta_mode)
   219							break;
   220						usleep_range(20000, 21000);
   221					}
   222					dev_dbg(&rt721->slave->dev,
   223						"%s: detected_mode settled=0x%x, %d retries\n",
   224						__func__, sta_mode, retry);
   225				}
   226				rt721->jack_type = rt_sdca_headset_detect(rt721->regmap,
   227									RT721_SDCA_ENT_GE49);
   228				rt721->int_cnt = 0;
   229				if (rt721->jack_type < 0)
   230					return;
   231			}
   232			dev_info(&rt721->slave->dev,
   233				"%s: handler run stat1=0x%x stat2=0x%x (SDCA_8=%d)\n",
   234				__func__, rt721->scp_sdca_stat1, rt721->scp_sdca_stat2,
   235				!!(rt721->scp_sdca_stat2 & SDW_SCP_SDCA_INT_SDCA_8));
   236		} else {
   237			if (rt721->scp_sdca_stat1 & SDW_SCP_SDCA_INT_SDCA_0) {
   238				rt721->jack_type = rt_sdca_headset_detect(rt721->regmap,
   239								RT721_SDCA_ENT_GE49);
   240				if (rt721->jack_type < 0)
   241					return;
   242			}
   243		}
   244	
   245		/* SDW_SCP_SDCA_INT_SDCA_8 is used for button detection */
   246		if (rt721->scp_sdca_stat2 & SDW_SCP_SDCA_INT_SDCA_8)
   247			btn_type = rt_sdca_button_detect(rt721->regmap,
   248						RT721_SDCA_ENT_HID01, RT721_BUF_ADDR_HID1,
   249						RT721_SDCA_HID_ID);
   250	
   251		if (rt721->jack_type == 0)
   252			btn_type = 0;
   253	
   254		dev_dbg(&rt721->slave->dev,
   255			"in %s, jack_type=%d\n", __func__, rt721->jack_type);
   256		dev_dbg(&rt721->slave->dev,
   257			"in %s, btn_type=0x%x\n", __func__, btn_type);
   258		dev_dbg(&rt721->slave->dev,
   259			"in %s, scp_sdca_stat1=0x%x, scp_sdca_stat2=0x%x\n", __func__,
   260			rt721->scp_sdca_stat1, rt721->scp_sdca_stat2);
   261	
   262		snd_soc_jack_report(rt721->hs_jack, rt721->jack_type | btn_type,
   263				SND_JACK_HEADSET |
   264				SND_JACK_BTN_0 | SND_JACK_BTN_1 |
   265				SND_JACK_BTN_2 | SND_JACK_BTN_3);
   266	
   267		if (btn_type) {
   268			/* button released */
   269			snd_soc_jack_report(rt721->hs_jack, rt721->jack_type,
   270				SND_JACK_HEADSET |
   271				SND_JACK_BTN_0 | SND_JACK_BTN_1 |
   272				SND_JACK_BTN_2 | SND_JACK_BTN_3);
   273	
   274			mod_delayed_work(system_power_efficient_wq,
   275				&rt721->jack_btn_check_work, msecs_to_jiffies(200));
   276		}
   277	}
   278	

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-10-07 22:17 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-07 22:17 [broonie-sound:for-7.4 6/6] sound/soc/codecs/rt721-sdca.c:124 rt721_sdca_jack_detect_handler() warn: inconsistent indenting kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.