Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ASoC: rt722: change the interrupt mask for jack type detection

This patch changed the interrupt mask from XU to GE.

Signed-off-by: Shuming Fan <shumingf@realtek.com>
Link: https://patch.msgid.link/20241105100557.1987917-1-shumingf@realtek.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Shuming Fan and committed by
Mark Brown
93b763a5 adf7ea48

+8 -11
+4 -8
sound/soc/codecs/rt722-sdca-sdw.c
··· 177 177 * This also could sync with the cache value as the rt722_sdca_jack_init set. 178 178 */ 179 179 sdw_write_no_pm(rt722->slave, SDW_SCP_SDCA_INTMASK1, 180 - SDW_SCP_SDCA_INTMASK_SDCA_6); 180 + SDW_SCP_SDCA_INTMASK_SDCA_0); 181 181 sdw_write_no_pm(rt722->slave, SDW_SCP_SDCA_INTMASK2, 182 182 SDW_SCP_SDCA_INTMASK_SDCA_8); 183 183 } ··· 308 308 SDW_SCP_SDCA_INT_SDCA_0, SDW_SCP_SDCA_INT_SDCA_0); 309 309 if (ret < 0) 310 310 goto io_error; 311 - } else if (ret & SDW_SCP_SDCA_INTMASK_SDCA_6) { 312 - ret = sdw_update_no_pm(rt722->slave, SDW_SCP_SDCA_INT1, 313 - SDW_SCP_SDCA_INT_SDCA_6, SDW_SCP_SDCA_INT_SDCA_6); 314 - if (ret < 0) 315 - goto io_error; 316 311 } 312 + 317 313 ret = sdw_read_no_pm(rt722->slave, SDW_SCP_SDCA_INT2); 318 314 if (ret < 0) 319 315 goto io_error; ··· 440 444 mutex_lock(&rt722_sdca->disable_irq_lock); 441 445 rt722_sdca->disable_irq = true; 442 446 ret1 = sdw_update_no_pm(slave, SDW_SCP_SDCA_INTMASK1, 443 - SDW_SCP_SDCA_INTMASK_SDCA_0 | SDW_SCP_SDCA_INTMASK_SDCA_6, 0); 447 + SDW_SCP_SDCA_INTMASK_SDCA_0, 0); 444 448 ret2 = sdw_update_no_pm(slave, SDW_SCP_SDCA_INTMASK2, 445 449 SDW_SCP_SDCA_INTMASK_SDCA_8, 0); 446 450 mutex_unlock(&rt722_sdca->disable_irq_lock); ··· 467 471 if (!slave->unattach_request) { 468 472 mutex_lock(&rt722->disable_irq_lock); 469 473 if (rt722->disable_irq == true) { 470 - sdw_write_no_pm(slave, SDW_SCP_SDCA_INTMASK1, SDW_SCP_SDCA_INTMASK_SDCA_6); 474 + sdw_write_no_pm(slave, SDW_SCP_SDCA_INTMASK1, SDW_SCP_SDCA_INTMASK_SDCA_0); 471 475 sdw_write_no_pm(slave, SDW_SCP_SDCA_INTMASK2, SDW_SCP_SDCA_INTMASK_SDCA_8); 472 476 rt722->disable_irq = false; 473 477 }
+4 -3
sound/soc/codecs/rt722-sdca.c
··· 190 190 if (!rt722->component->card || !rt722->component->card->instantiated) 191 191 return; 192 192 193 - /* SDW_SCP_SDCA_INT_SDCA_6 is used for jack detection */ 194 - if (rt722->scp_sdca_stat1 & SDW_SCP_SDCA_INT_SDCA_6) { 193 + /* SDW_SCP_SDCA_INT_SDCA_0 is used for jack detection */ 194 + if (rt722->scp_sdca_stat1 & SDW_SCP_SDCA_INT_SDCA_0) { 195 195 ret = rt722_sdca_headset_detect(rt722); 196 196 if (ret < 0) 197 197 return; ··· 294 294 if (rt722->hs_jack) { 295 295 /* set SCP_SDCA_IntMask1[0]=1 */ 296 296 sdw_write_no_pm(rt722->slave, SDW_SCP_SDCA_INTMASK1, 297 - SDW_SCP_SDCA_INTMASK_SDCA_0 | SDW_SCP_SDCA_INTMASK_SDCA_6); 297 + SDW_SCP_SDCA_INTMASK_SDCA_0); 298 298 /* set SCP_SDCA_IntMask2[0]=1 */ 299 299 sdw_write_no_pm(rt722->slave, SDW_SCP_SDCA_INTMASK2, 300 300 SDW_SCP_SDCA_INTMASK_SDCA_8); ··· 308 308 regmap_write(rt722->regmap, 309 309 SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC, RT722_SDCA_ENT_XU0D, 310 310 RT722_SDCA_CTL_SELECTED_MODE, 0), 0); 311 + rt722_sdca_index_write(rt722, RT722_VENDOR_HDA_CTL, RT722_GE_RELATED_CTL1, 0x0000); 311 312 /* trigger GE interrupt */ 312 313 rt722_sdca_index_update_bits(rt722, RT722_VENDOR_HDA_CTL, 313 314 RT722_GE_RELATED_CTL2, 0x4000, 0x4000);