tree:
https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-4.14
head: bbebfb4634bb843e284ba8fcf9cb816d51fada7b
commit: 972c48e87ad66b0893810f0b2d839fcd77e5e31e [14/20] CHROMIUM: ASoC: cs42l42: Switch
to SCLK in IRQ
config: i386-randconfig-m021-20210513 (attached as .config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
smatch warnings:
sound/soc/codecs/cs42l42.c:1476 cs42l42_irq_thread() warn: inconsistent indenting
vim +1476 sound/soc/codecs/cs42l42.c
1439
1440 static irqreturn_t cs42l42_irq_thread(int irq, void *data)
1441 {
1442 struct cs42l42_private *cs42l42 = (struct cs42l42_private *)data;
1443 struct snd_soc_component *component = cs42l42->component;
1444 unsigned int stickies[12];
1445 unsigned int masks[12];
1446 unsigned int current_plug_status;
1447 unsigned int current_button_status;
1448 unsigned int i;
1449 int report = 0;
1450
1451
1452 /* Read sticky registers to clear interurpt */
1453 for (i = 0; i < ARRAY_SIZE(stickies); i++) {
1454 regmap_read(cs42l42->regmap, irq_params_table[i].status_addr,
1455 &(stickies[i]));
1456 regmap_read(cs42l42->regmap, irq_params_table[i].mask_addr,
1457 &(masks[i]));
1458 stickies[i] = stickies[i] & (~masks[i]) &
1459 irq_params_table[i].mask;
1460 }
1461
1462 if(cs42l42->pll_lock != stickies[10]) {
1463
1464 dev_dbg(component->dev, "%s() PLL lock transition %d => %d\n",
1465 __func__, cs42l42->pll_lock, stickies[10]);
1466
1467 /* Update pll_lock status */
1468 cs42l42->pll_lock = stickies[10];
1469
1470 if(cs42l42->pll_lock) {
1471 dev_dbg(component->dev, "%s() Switching to PLL\n", __func__);
1472 /* Mark SCLK as present */
1473 regmap_multi_reg_write(cs42l42->regmap, cs42l42_to_sclk_seq,
1474 ARRAY_SIZE(cs42l42_to_sclk_seq));
1475
1476 return IRQ_HANDLED;
1477 }
1478 }
1479
1480 /* Read tip sense status before handling type detect */
1481 current_plug_status = (stickies[11] &
1482 (CS42L42_TS_PLUG_MASK | CS42L42_TS_UNPLUG_MASK)) >>
1483 CS42L42_TS_PLUG_SHIFT;
1484
1485 /* Read button sense status */
1486 current_button_status = stickies[7] &
1487 (CS42L42_M_DETECT_TF_MASK |
1488 CS42L42_M_DETECT_FT_MASK |
1489 CS42L42_M_HSBIAS_HIZ_MASK);
1490
1491 /* Check auto-detect status */
1492 if ((~masks[5]) & irq_params_table[5].mask) {
1493 if (stickies[5] & CS42L42_HSDET_AUTO_DONE_MASK) {
1494 cs42l42_process_hs_type_detect(cs42l42);
1495 switch(cs42l42->hs_type){
1496 case CS42L42_PLUG_CTIA:
1497 case CS42L42_PLUG_OMTP:
1498 snd_soc_jack_report(cs42l42->jack, SND_JACK_HEADSET,
1499 SND_JACK_HEADSET);
1500 break;
1501 case CS42L42_PLUG_HEADPHONE:
1502 snd_soc_jack_report(cs42l42->jack, SND_JACK_HEADPHONE,
1503 SND_JACK_HEADPHONE);
1504 break;
1505 default:
1506 break;
1507 }
1508 dev_dbg(component->dev, "Auto detect done (%d)\n",
cs42l42->hs_type);
1509 }
1510 }
1511
1512 /* Check tip sense status */
1513 if ((~masks[11]) & irq_params_table[11].mask) {
1514 switch (current_plug_status) {
1515 case CS42L42_TS_PLUG:
1516 if (cs42l42->plug_state != CS42L42_TS_PLUG) {
1517 cs42l42->plug_state = CS42L42_TS_PLUG;
1518 cs42l42_init_hs_type_detect(cs42l42);
1519 }
1520 break;
1521
1522 case CS42L42_TS_UNPLUG:
1523 if (cs42l42->plug_state != CS42L42_TS_UNPLUG) {
1524 cs42l42->plug_state = CS42L42_TS_UNPLUG;
1525 cs42l42_cancel_hs_type_detect(cs42l42);
1526
1527 switch(cs42l42->hs_type){
1528 case CS42L42_PLUG_CTIA:
1529 case CS42L42_PLUG_OMTP:
1530 snd_soc_jack_report(cs42l42->jack, 0, SND_JACK_HEADSET);
1531 break;
1532 case CS42L42_PLUG_HEADPHONE:
1533 snd_soc_jack_report(cs42l42->jack, 0, SND_JACK_HEADPHONE);
1534 break;
1535 default:
1536 break;
1537 }
1538 dev_dbg(component->dev, "Unplug event\n");
1539 }
1540 break;
1541
1542 default:
1543 if (cs42l42->plug_state != CS42L42_TS_TRANS)
1544 cs42l42->plug_state = CS42L42_TS_TRANS;
1545 }
1546 }
1547
1548 /* Check button detect status */
1549 if ((~masks[7]) & irq_params_table[7].mask) {
1550 if (!(current_button_status &
1551 CS42L42_M_HSBIAS_HIZ_MASK)) {
1552
1553 if (current_button_status & CS42L42_M_DETECT_TF_MASK) {
1554 dev_dbg(component->dev, "Button released\n");
1555 report = 0;
1556 } else if (current_button_status & CS42L42_M_DETECT_FT_MASK) {
1557 report = cs42l42_handle_button_press(cs42l42);
1558
1559 }
1560 snd_soc_jack_report(cs42l42->jack, report, SND_JACK_BTN_0 | SND_JACK_BTN_1 |
1561 SND_JACK_BTN_2 | SND_JACK_BTN_3);
1562 }
1563 }
1564
1565 return IRQ_HANDLED;
1566 }
1567
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org