* [plbossart-sound:fix/glk-chuwi-Hi10x 4/7] sound/soc/codecs/es8316.c:457:2: warning: this 'if' clause does not guard...
@ 2021-07-30 21:02 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-07-30 21:02 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 29083 bytes --]
tree: https://github.com/plbossart/sound fix/glk-chuwi-Hi10x
head: 8d2c8b66245b0b2c8c3d4b8a8a7b890b469277d0
commit: aa983d82765d8f1f797f33d2ae1ac1b7272cac02 [4/7] [HACK][FOR FOR UPSTREAM] es8336 support
config: i386-randconfig-r006-20210730 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
reproduce (this is a W=1 build):
# https://github.com/plbossart/sound/commit/aa983d82765d8f1f797f33d2ae1ac1b7272cac02
git remote add plbossart-sound https://github.com/plbossart/sound
git fetch --no-tags plbossart-sound fix/glk-chuwi-Hi10x
git checkout aa983d82765d8f1f797f33d2ae1ac1b7272cac02
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
In file included from sound/soc/codecs/es8316.c:25:
sound/soc/codecs/es8316.h:225: warning: "ES8316_GPIO_FLAG" redefined
225 | #define ES8316_GPIO_FLAG 0x4f
|
sound/soc/codecs/es8316.h:95: note: this is the location of the previous definition
95 | #define ES8316_GPIO_FLAG 0x4F
|
sound/soc/codecs/es8316.c: In function 'es8316_set_dai_fmt':
sound/soc/codecs/es8316.c:403:5: warning: unused variable 'clksw' [-Wunused-variable]
403 | u8 clksw;
| ^~~~~
sound/soc/codecs/es8316.c: In function 'es8316_pcm_startup':
>> sound/soc/codecs/es8316.c:457:2: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
457 | if (es8316->sysclk_constraints.list)
| ^~
sound/soc/codecs/es8316.c:462:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
462 | if(a){
| ^~
sound/soc/codecs/es8316.c: In function 'es8316_irq':
>> sound/soc/codecs/es8316.c:638:6: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
638 | if(a=5)
| ^
sound/soc/codecs/es8316.c:613:31: warning: unused variable 'dapm' [-Wunused-variable]
613 | struct snd_soc_dapm_context *dapm;
| ^~~~
In file included from include/sound/tlv.h:10,
from sound/soc/codecs/es8316.c:23:
At top level:
sound/soc/codecs/es8316.c:72:46: warning: 'hpout_vol_tlv' defined but not used [-Wunused-const-variable=]
72 | static const SNDRV_CTL_TLVD_DECLARE_DB_RANGE(hpout_vol_tlv,
| ^~~~~~~~~~~~~
include/uapi/sound/tlv.h:111:15: note: in definition of macro 'SNDRV_CTL_TLVD_DECLARE_DB_RANGE'
111 | unsigned int name[] = { \
| ^~~~
vim +/if +457 sound/soc/codecs/es8316.c
b8b88b70875af7 Daniel Drake 2017-06-12 449
b8b88b70875af7 Daniel Drake 2017-06-12 450 static int es8316_pcm_startup(struct snd_pcm_substream *substream,
b8b88b70875af7 Daniel Drake 2017-06-12 451 struct snd_soc_dai *dai)
b8b88b70875af7 Daniel Drake 2017-06-12 452 {
2ff52976788bae Kuninori Morimoto 2018-01-29 453 struct snd_soc_component *component = dai->component;
2ff52976788bae Kuninori Morimoto 2018-01-29 454 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 455 static int a=1;
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 456 printk("Enter into %s\n", __func__);
ebe02a5b9ef05e Katsuhiro Suzuki 2019-09-08 @457 if (es8316->sysclk_constraints.list)
b8b88b70875af7 Daniel Drake 2017-06-12 458 snd_pcm_hw_constraint_list(substream->runtime, 0,
b8b88b70875af7 Daniel Drake 2017-06-12 459 SNDRV_PCM_HW_PARAM_RATE,
b8b88b70875af7 Daniel Drake 2017-06-12 460 &es8316->sysclk_constraints);
b8b88b70875af7 Daniel Drake 2017-06-12 461
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 462 if(a){
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 463 //gpiod_set_value_cansleep(es8316->pa_enable, false);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 464 a++;
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 465 if(a==19)
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 466 {
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 467 mdelay(5000);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 468 printk("i2cset 0x0d 0x08");
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 469 snd_soc_component_write(component, 0x4e, 0xf1);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 470 snd_soc_component_write(component, 0x4e, 0xf2);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 471 }
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 472
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 473
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 474 }
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 475
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 476 printk("Exit %s\n", __func__);
b8b88b70875af7 Daniel Drake 2017-06-12 477 return 0;
b8b88b70875af7 Daniel Drake 2017-06-12 478 }
b8b88b70875af7 Daniel Drake 2017-06-12 479
b8b88b70875af7 Daniel Drake 2017-06-12 480 static int es8316_pcm_hw_params(struct snd_pcm_substream *substream,
b8b88b70875af7 Daniel Drake 2017-06-12 481 struct snd_pcm_hw_params *params,
b8b88b70875af7 Daniel Drake 2017-06-12 482 struct snd_soc_dai *dai)
b8b88b70875af7 Daniel Drake 2017-06-12 483 {
2ff52976788bae Kuninori Morimoto 2018-01-29 484 struct snd_soc_component *component = dai->component;
2ff52976788bae Kuninori Morimoto 2018-01-29 485 struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component);
b8b88b70875af7 Daniel Drake 2017-06-12 486 u8 wordlen = 0;
ebe02a5b9ef05e Katsuhiro Suzuki 2019-09-08 487 int i;
b8b88b70875af7 Daniel Drake 2017-06-12 488
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 489 printk("Enter into %s\n", __func__);
ebe02a5b9ef05e Katsuhiro Suzuki 2019-09-08 490 /* Validate supported sample rates that are autodetected from MCLK */
ebe02a5b9ef05e Katsuhiro Suzuki 2019-09-08 491 for (i = 0; i < NR_SUPPORTED_MCLK_LRCK_RATIOS; i++) {
ebe02a5b9ef05e Katsuhiro Suzuki 2019-09-08 492 const unsigned int ratio = supported_mclk_lrck_ratios[i];
ebe02a5b9ef05e Katsuhiro Suzuki 2019-09-08 493
ebe02a5b9ef05e Katsuhiro Suzuki 2019-09-08 494 if (es8316->sysclk % ratio != 0)
ebe02a5b9ef05e Katsuhiro Suzuki 2019-09-08 495 continue;
ebe02a5b9ef05e Katsuhiro Suzuki 2019-09-08 496 if (es8316->sysclk / ratio == params_rate(params))
ebe02a5b9ef05e Katsuhiro Suzuki 2019-09-08 497 break;
b8b88b70875af7 Daniel Drake 2017-06-12 498 }
ebe02a5b9ef05e Katsuhiro Suzuki 2019-09-08 499 if (i == NR_SUPPORTED_MCLK_LRCK_RATIOS)
ebe02a5b9ef05e Katsuhiro Suzuki 2019-09-08 500 return -EINVAL;
b8b88b70875af7 Daniel Drake 2017-06-12 501
b8b88b70875af7 Daniel Drake 2017-06-12 502 switch (params_format(params)) {
b8b88b70875af7 Daniel Drake 2017-06-12 503 case SNDRV_PCM_FORMAT_S16_LE:
b8b88b70875af7 Daniel Drake 2017-06-12 504 wordlen = ES8316_SERDATA2_LEN_16;
b8b88b70875af7 Daniel Drake 2017-06-12 505 break;
b8b88b70875af7 Daniel Drake 2017-06-12 506 case SNDRV_PCM_FORMAT_S20_3LE:
b8b88b70875af7 Daniel Drake 2017-06-12 507 wordlen = ES8316_SERDATA2_LEN_20;
b8b88b70875af7 Daniel Drake 2017-06-12 508 break;
b8b88b70875af7 Daniel Drake 2017-06-12 509 case SNDRV_PCM_FORMAT_S24_LE:
b8b88b70875af7 Daniel Drake 2017-06-12 510 wordlen = ES8316_SERDATA2_LEN_24;
b8b88b70875af7 Daniel Drake 2017-06-12 511 break;
b8b88b70875af7 Daniel Drake 2017-06-12 512 case SNDRV_PCM_FORMAT_S32_LE:
b8b88b70875af7 Daniel Drake 2017-06-12 513 wordlen = ES8316_SERDATA2_LEN_32;
b8b88b70875af7 Daniel Drake 2017-06-12 514 break;
b8b88b70875af7 Daniel Drake 2017-06-12 515 default:
b8b88b70875af7 Daniel Drake 2017-06-12 516 return -EINVAL;
b8b88b70875af7 Daniel Drake 2017-06-12 517 }
b8b88b70875af7 Daniel Drake 2017-06-12 518
2ff52976788bae Kuninori Morimoto 2018-01-29 519 snd_soc_component_update_bits(component, ES8316_SERDATA_DAC,
b8b88b70875af7 Daniel Drake 2017-06-12 520 ES8316_SERDATA2_LEN_MASK, wordlen);
2ff52976788bae Kuninori Morimoto 2018-01-29 521 snd_soc_component_update_bits(component, ES8316_SERDATA_ADC,
b8b88b70875af7 Daniel Drake 2017-06-12 522 ES8316_SERDATA2_LEN_MASK, wordlen);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 523
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 524 snd_soc_component_write(component, 0x01, 0x7f);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 525 snd_soc_component_write(component, 0x02, 0x09);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 526 snd_soc_component_update_bits(component,ES8316_ADC_PDN_LINSEL,0xcf,0x00);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 527 //snd_soc_component_write(component, 0x22, 0x30);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 528 snd_soc_component_write(component, 0x0a, 0x00);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 529 snd_soc_component_write(component, 0x0d, 0x00);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 530
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 531 printk("Exit %s\n", __func__);
b8b88b70875af7 Daniel Drake 2017-06-12 532 return 0;
b8b88b70875af7 Daniel Drake 2017-06-12 533 }
b8b88b70875af7 Daniel Drake 2017-06-12 534
8667d948a6185f Kuninori Morimoto 2020-07-09 535 static int es8316_mute(struct snd_soc_dai *dai, int mute, int direction)
b8b88b70875af7 Daniel Drake 2017-06-12 536 {
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 537 printk("Enter into %s\n", __func__);
2ff52976788bae Kuninori Morimoto 2018-01-29 538 snd_soc_component_update_bits(dai->component, ES8316_DAC_SET1, 0x20,
b8b88b70875af7 Daniel Drake 2017-06-12 539 mute ? 0x20 : 0);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 540 printk("Exit %s\n", __func__);
b8b88b70875af7 Daniel Drake 2017-06-12 541 return 0;
b8b88b70875af7 Daniel Drake 2017-06-12 542 }
b8b88b70875af7 Daniel Drake 2017-06-12 543
b8b88b70875af7 Daniel Drake 2017-06-12 544 #define ES8316_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE | \
b8b88b70875af7 Daniel Drake 2017-06-12 545 SNDRV_PCM_FMTBIT_S24_LE)
b8b88b70875af7 Daniel Drake 2017-06-12 546
eb59d73cb535ba Arvind Yadav 2017-08-18 547 static const struct snd_soc_dai_ops es8316_ops = {
b8b88b70875af7 Daniel Drake 2017-06-12 548 .startup = es8316_pcm_startup,
b8b88b70875af7 Daniel Drake 2017-06-12 549 .hw_params = es8316_pcm_hw_params,
b8b88b70875af7 Daniel Drake 2017-06-12 550 .set_fmt = es8316_set_dai_fmt,
b8b88b70875af7 Daniel Drake 2017-06-12 551 .set_sysclk = es8316_set_dai_sysclk,
8667d948a6185f Kuninori Morimoto 2020-07-09 552 .mute_stream = es8316_mute,
8667d948a6185f Kuninori Morimoto 2020-07-09 553 .no_capture_mute = 1,
b8b88b70875af7 Daniel Drake 2017-06-12 554 };
b8b88b70875af7 Daniel Drake 2017-06-12 555
b8b88b70875af7 Daniel Drake 2017-06-12 556 static struct snd_soc_dai_driver es8316_dai = {
b8b88b70875af7 Daniel Drake 2017-06-12 557 .name = "ES8316 HiFi",
b8b88b70875af7 Daniel Drake 2017-06-12 558 .playback = {
b8b88b70875af7 Daniel Drake 2017-06-12 559 .stream_name = "Playback",
b8b88b70875af7 Daniel Drake 2017-06-12 560 .channels_min = 1,
b8b88b70875af7 Daniel Drake 2017-06-12 561 .channels_max = 2,
b8b88b70875af7 Daniel Drake 2017-06-12 562 .rates = SNDRV_PCM_RATE_8000_48000,
b8b88b70875af7 Daniel Drake 2017-06-12 563 .formats = ES8316_FORMATS,
b8b88b70875af7 Daniel Drake 2017-06-12 564 },
b8b88b70875af7 Daniel Drake 2017-06-12 565 .capture = {
b8b88b70875af7 Daniel Drake 2017-06-12 566 .stream_name = "Capture",
b8b88b70875af7 Daniel Drake 2017-06-12 567 .channels_min = 1,
b8b88b70875af7 Daniel Drake 2017-06-12 568 .channels_max = 2,
b8b88b70875af7 Daniel Drake 2017-06-12 569 .rates = SNDRV_PCM_RATE_8000_48000,
b8b88b70875af7 Daniel Drake 2017-06-12 570 .formats = ES8316_FORMATS,
b8b88b70875af7 Daniel Drake 2017-06-12 571 },
b8b88b70875af7 Daniel Drake 2017-06-12 572 .ops = &es8316_ops,
4060064e8baf04 Kuninori Morimoto 2021-01-15 573 .symmetric_rate = 1,
b8b88b70875af7 Daniel Drake 2017-06-12 574 };
b8b88b70875af7 Daniel Drake 2017-06-12 575
822257661031fa Hans de Goede 2019-01-03 576 static void es8316_enable_micbias_for_mic_gnd_short_detect(
822257661031fa Hans de Goede 2019-01-03 577 struct snd_soc_component *component)
822257661031fa Hans de Goede 2019-01-03 578 {
822257661031fa Hans de Goede 2019-01-03 579 struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
822257661031fa Hans de Goede 2019-01-03 580
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 581 printk("Enter into %s\n", __func__);
822257661031fa Hans de Goede 2019-01-03 582 snd_soc_dapm_mutex_lock(dapm);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 583 //snd_soc_dapm_force_enable_pin_unlocked(dapm, "Bias");
822257661031fa Hans de Goede 2019-01-03 584 snd_soc_dapm_force_enable_pin_unlocked(dapm, "Analog power");
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 585 //snd_soc_dapm_force_enable_pin_unlocked(dapm, "Mic Bias");
822257661031fa Hans de Goede 2019-01-03 586 snd_soc_dapm_sync_unlocked(dapm);
822257661031fa Hans de Goede 2019-01-03 587 snd_soc_dapm_mutex_unlock(dapm);
822257661031fa Hans de Goede 2019-01-03 588
822257661031fa Hans de Goede 2019-01-03 589 msleep(20);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 590 printk("Exit %s\n", __func__);
822257661031fa Hans de Goede 2019-01-03 591 }
822257661031fa Hans de Goede 2019-01-03 592
822257661031fa Hans de Goede 2019-01-03 593 static void es8316_disable_micbias_for_mic_gnd_short_detect(
822257661031fa Hans de Goede 2019-01-03 594 struct snd_soc_component *component)
822257661031fa Hans de Goede 2019-01-03 595 {
822257661031fa Hans de Goede 2019-01-03 596 struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 597 printk("Enter into %s\n", __func__);
822257661031fa Hans de Goede 2019-01-03 598
822257661031fa Hans de Goede 2019-01-03 599 snd_soc_dapm_mutex_lock(dapm);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 600 //snd_soc_dapm_disable_pin_unlocked(dapm, "Mic Bias");
822257661031fa Hans de Goede 2019-01-03 601 snd_soc_dapm_disable_pin_unlocked(dapm, "Analog power");
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 602 //snd_soc_dapm_disable_pin_unlocked(dapm, "Bias");
822257661031fa Hans de Goede 2019-01-03 603 snd_soc_dapm_sync_unlocked(dapm);
822257661031fa Hans de Goede 2019-01-03 604 snd_soc_dapm_mutex_unlock(dapm);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 605 printk("Exit %s\n", __func__);
822257661031fa Hans de Goede 2019-01-03 606 }
822257661031fa Hans de Goede 2019-01-03 607
822257661031fa Hans de Goede 2019-01-03 608 static irqreturn_t es8316_irq(int irq, void *data)
822257661031fa Hans de Goede 2019-01-03 609 {
822257661031fa Hans de Goede 2019-01-03 610 struct es8316_priv *es8316 = data;
822257661031fa Hans de Goede 2019-01-03 611 struct snd_soc_component *comp = es8316->component;
822257661031fa Hans de Goede 2019-01-03 612 unsigned int flags;
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 613 struct snd_soc_dapm_context *dapm;
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 614 static int a=1;
822257661031fa Hans de Goede 2019-01-03 615
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 616 printk("Enter into %s\n", __func__);
822257661031fa Hans de Goede 2019-01-03 617 mutex_lock(&es8316->lock);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 618 snd_soc_component_write(comp, ES8316_GPIO_DEBUNCE_INT_REG4E, 0xf0);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 619 snd_soc_component_write(comp,0x01,0x7f);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 620 msleep(500);
822257661031fa Hans de Goede 2019-01-03 621 regmap_read(es8316->regmap, ES8316_GPIO_FLAG, &flags);
822257661031fa Hans de Goede 2019-01-03 622 if (flags == 0x00)
822257661031fa Hans de Goede 2019-01-03 623 goto out; /* Powered-down / reset */
822257661031fa Hans de Goede 2019-01-03 624
822257661031fa Hans de Goede 2019-01-03 625 /* Catch spurious IRQ before set_jack is called */
822257661031fa Hans de Goede 2019-01-03 626 if (!es8316->jack)
822257661031fa Hans de Goede 2019-01-03 627 goto out;
822257661031fa Hans de Goede 2019-01-03 628
0bbcedd6bb41b8 Paul Cercueil 2019-03-29 629 if (es8316->jd_inverted)
0bbcedd6bb41b8 Paul Cercueil 2019-03-29 630 flags ^= ES8316_GPIO_FLAG_HP_NOT_INSERTED;
0bbcedd6bb41b8 Paul Cercueil 2019-03-29 631
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 632 //dapm = snd_soc_component_get_dapm(es8316->component);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 633
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 634 if(a){
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 635 //es8316_enable_micbias_for_mic_gnd_short_detect(comp);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 636 //es8316_disable_micbias_for_mic_gnd_short_detect(comp);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 637 a++;
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 @638 if(a=5)
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 639 a=0;
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 640 //
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 641 //snd_soc_dapm_force_enable_pin(dapm,"");
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 642 //snd_soc_dapm_disable_pin(dapm, "MIC1");
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 643 //snd_soc_dapm_disable_pin(dapm, "MIC2");
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 644
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 645 }
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 646
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 647
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 648
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 649 printk("%s, gpio flags %#04x\n", __func__, flags);
822257661031fa Hans de Goede 2019-01-03 650 if (flags & ES8316_GPIO_FLAG_HP_NOT_INSERTED) {
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 651 printk("%s, removed detected--1!\n", __func__);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 652 printk("%s, set pa enable to true!\n", __func__);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 653 gpiod_set_value_cansleep(es8316->pa_enable, true);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 654 snd_soc_component_write(comp,ES8316_ADC_PDN_LINSEL,0x20);
822257661031fa Hans de Goede 2019-01-03 655 /* Jack removed, or spurious IRQ? */
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 656 //if (es8316->jack->status & SND_JACK_MICROPHONE)
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 657 // es8316_disable_micbias_for_mic_gnd_short_detect(comp);
822257661031fa Hans de Goede 2019-01-03 658
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 659 if ((es8316->jack->status & SND_JACK_HEADPHONE)|a) {
822257661031fa Hans de Goede 2019-01-03 660 snd_soc_jack_report(es8316->jack, 0,
822257661031fa Hans de Goede 2019-01-03 661 SND_JACK_HEADSET | SND_JACK_BTN_0);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 662 printk("%s. jack unplugged\n", __func__);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 663 //snd_soc_dapm_force_enable_pin(dapm, "MIC1");
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 664 //snd_soc_dapm_disable_pin(dapm, "MIC2");
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 665 snd_soc_component_write(comp,ES8316_ADC_PDN_LINSEL,0x20);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 666 if(a){
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 667 snd_soc_jack_report(es8316->jack,
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 668 SND_JACK_HEADSET,
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 669 SND_JACK_HEADSET);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 670 snd_soc_jack_report(es8316->jack, 0,
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 671 SND_JACK_HEADSET | SND_JACK_BTN_0);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 672 snd_soc_component_write(comp,ES8316_ADC_PDN_LINSEL,0x20);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 673 }
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 674
822257661031fa Hans de Goede 2019-01-03 675 }
822257661031fa Hans de Goede 2019-01-03 676 } else if (!(es8316->jack->status & SND_JACK_HEADPHONE)) {
822257661031fa Hans de Goede 2019-01-03 677 /* Jack inserted, determine type */
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 678 snd_soc_component_write(comp, ES8316_GPIO_DEBUNCE_INT_REG4E, 0xf2);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 679 snd_soc_component_write(comp, 0x0d, 0x00);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 680 //es8316_enable_micbias_for_mic_gnd_short_detect(comp);
822257661031fa Hans de Goede 2019-01-03 681 regmap_read(es8316->regmap, ES8316_GPIO_FLAG, &flags);
0bbcedd6bb41b8 Paul Cercueil 2019-03-29 682 if (es8316->jd_inverted)
0bbcedd6bb41b8 Paul Cercueil 2019-03-29 683 flags ^= ES8316_GPIO_FLAG_HP_NOT_INSERTED;
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 684 printk("%s, gpio flags %#04x\n", __func__, flags);
822257661031fa Hans de Goede 2019-01-03 685 if (flags & ES8316_GPIO_FLAG_HP_NOT_INSERTED) {
822257661031fa Hans de Goede 2019-01-03 686 /* Jack unplugged underneath us */
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 687 printk("%s, Removal detected--2!\n", __func__);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 688 printk("%s, set pa enable to true!\n", __func__);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 689 gpiod_set_value_cansleep(es8316->pa_enable, true);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 690 //es8316_disable_micbias_for_mic_gnd_short_detect(comp);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 691 snd_soc_component_write(comp,ES8316_ADC_PDN_LINSEL,0x20);
822257661031fa Hans de Goede 2019-01-03 692 } else if (flags & ES8316_GPIO_FLAG_GM_NOT_SHORTED) {
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 693 printk("%s, headset detected!\n", __func__);
822257661031fa Hans de Goede 2019-01-03 694 /* Open, headset */
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 695 printk("%s, set pa enable to false!\n", __func__);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 696 gpiod_set_value_cansleep(es8316->pa_enable, false);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 697 snd_soc_component_write(comp,ES8316_ADC_PDN_LINSEL,0x30);
822257661031fa Hans de Goede 2019-01-03 698 snd_soc_jack_report(es8316->jack,
822257661031fa Hans de Goede 2019-01-03 699 SND_JACK_HEADSET,
822257661031fa Hans de Goede 2019-01-03 700 SND_JACK_HEADSET);
822257661031fa Hans de Goede 2019-01-03 701 /* Keep mic-gnd-short detection on for button press */
822257661031fa Hans de Goede 2019-01-03 702 } else {
822257661031fa Hans de Goede 2019-01-03 703 /* Shorted, headphones */
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 704 printk("%s, headphone detected!\n", __func__);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 705 printk("%s, set pa enable to false!\n", __func__);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 706 if(a)
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 707 {snd_soc_jack_report(es8316->jack, 0, SND_JACK_HEADSET | SND_JACK_BTN_0);}
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 708 gpiod_set_value_cansleep(es8316->pa_enable, false);
822257661031fa Hans de Goede 2019-01-03 709 snd_soc_jack_report(es8316->jack,
822257661031fa Hans de Goede 2019-01-03 710 SND_JACK_HEADPHONE,
822257661031fa Hans de Goede 2019-01-03 711 SND_JACK_HEADSET);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 712 snd_soc_component_write(comp,ES8316_ADC_PDN_LINSEL,0x20);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 713
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 714
822257661031fa Hans de Goede 2019-01-03 715 /* No longer need mic-gnd-short detection */
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 716 //es8316_disable_micbias_for_mic_gnd_short_detect(comp);
822257661031fa Hans de Goede 2019-01-03 717 }
822257661031fa Hans de Goede 2019-01-03 718 } else if (es8316->jack->status & SND_JACK_MICROPHONE) {
822257661031fa Hans de Goede 2019-01-03 719 /* Interrupt while jack inserted, report button state */
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 720 printk("%s, button detected!\n", __func__);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 721 printk("%s, set pa enable to false!\n", __func__);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 722 gpiod_set_value_cansleep(es8316->pa_enable, false);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 723 snd_soc_component_write(comp,ES8316_ADC_PDN_LINSEL,0x30);
822257661031fa Hans de Goede 2019-01-03 724 }else{
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 725 if (flags & ES8316_GPIO_FLAG_GM_NOT_SHORTED) {
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 726 printk("%s, headset detected!\n", __func__);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 727 /* Open, headset */
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 728 printk("%s, set pa enable to false!\n", __func__);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 729 gpiod_set_value_cansleep(es8316->pa_enable, false);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 730 snd_soc_component_write(comp,ES8316_ADC_PDN_LINSEL,0x30);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 731 if(a)
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 732 {snd_soc_jack_report(es8316->jack, 0, SND_JACK_HEADSET);}
822257661031fa Hans de Goede 2019-01-03 733 snd_soc_jack_report(es8316->jack,
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 734 SND_JACK_HEADSET,
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 735 SND_JACK_HEADSET);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 736 //es8316_disable_micbias_for_mic_gnd_short_detect(comp);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 737
822257661031fa Hans de Goede 2019-01-03 738 }
822257661031fa Hans de Goede 2019-01-03 739 }
822257661031fa Hans de Goede 2019-01-03 740
822257661031fa Hans de Goede 2019-01-03 741 out:
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 742 //snd_soc_dapm_sync(dapm);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 743 mdelay(5);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 744 snd_soc_component_write(comp, ES8316_GPIO_DEBUNCE_INT_REG4E, 0xf2);
822257661031fa Hans de Goede 2019-01-03 745 mutex_unlock(&es8316->lock);
aa983d82765d8f Pierre-Louis Bossart 2021-07-30 746 printk("Exit %s\n", __func__);
822257661031fa Hans de Goede 2019-01-03 747 return IRQ_HANDLED;
822257661031fa Hans de Goede 2019-01-03 748 }
822257661031fa Hans de Goede 2019-01-03 749
:::::: The code at line 457 was first introduced by commit
:::::: ebe02a5b9ef05e3b812af3d628cdf6206d9ba610 ASoC: es8316: support fixed and variable both clock rates
:::::: TO: Katsuhiro Suzuki <katsuhiro@katsuster.net>
:::::: CC: Mark Brown <broonie@kernel.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 39220 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-07-30 21:02 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-30 21:02 [plbossart-sound:fix/glk-chuwi-Hi10x 4/7] sound/soc/codecs/es8316.c:457:2: warning: this 'if' clause does not guard 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.