sound/soc/codecs/nau8824.c
1000
dev_dbg(nau8824->dev, "button %x pressed\n", event);
sound/soc/codecs/nau8824.c
1016
cancel_work_sync(&nau8824->jdet_work);
sound/soc/codecs/nau8824.c
1017
schedule_work(&nau8824->jdet_work);
sound/soc/codecs/nau8824.c
1022
nau8824_setup_auto_irq(nau8824);
sound/soc/codecs/nau8824.c
1031
snd_soc_jack_report(nau8824->jack, event, event_mask);
sound/soc/codecs/nau8824.c
1037
nau8824_get_osr(struct nau8824 *nau8824, int stream)
sound/soc/codecs/nau8824.c
1042
regmap_read(nau8824->regmap,
sound/soc/codecs/nau8824.c
1049
regmap_read(nau8824->regmap,
sound/soc/codecs/nau8824.c
1062
struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/nau8824.c
1065
osr = nau8824_get_osr(nau8824, substream->stream);
sound/soc/codecs/nau8824.c
1078
struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/nau8824.c
1083
nau8824_sema_acquire(nau8824, HZ);
sound/soc/codecs/nau8824.c
1091
nau8824->fs = params_rate(params);
sound/soc/codecs/nau8824.c
1092
osr = nau8824_get_osr(nau8824, substream->stream);
sound/soc/codecs/nau8824.c
1095
if (nau8824->fs * osr->osr > CLK_DA_AD_MAX)
sound/soc/codecs/nau8824.c
1098
regmap_update_bits(nau8824->regmap, NAU8824_REG_CLK_DIVIDER,
sound/soc/codecs/nau8824.c
1102
regmap_update_bits(nau8824->regmap, NAU8824_REG_CLK_DIVIDER,
sound/soc/codecs/nau8824.c
1107
regmap_read(nau8824->regmap,
sound/soc/codecs/nau8824.c
1111
bclk_fs = snd_soc_params_to_bclk(params) / nau8824->fs;
sound/soc/codecs/nau8824.c
1122
regmap_update_bits(nau8824->regmap,
sound/soc/codecs/nau8824.c
1145
regmap_update_bits(nau8824->regmap, NAU8824_REG_PORT0_I2S_PCM_CTRL_1,
sound/soc/codecs/nau8824.c
1150
nau8824_sema_release(nau8824);
sound/soc/codecs/nau8824.c
1158
struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/nau8824.c
1202
nau8824_sema_acquire(nau8824, HZ);
sound/soc/codecs/nau8824.c
1204
regmap_update_bits(nau8824->regmap, NAU8824_REG_PORT0_I2S_PCM_CTRL_1,
sound/soc/codecs/nau8824.c
1207
regmap_update_bits(nau8824->regmap, NAU8824_REG_PORT0_I2S_PCM_CTRL_2,
sound/soc/codecs/nau8824.c
1210
nau8824_sema_release(nau8824);
sound/soc/codecs/nau8824.c
1235
struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/nau8824.c
1256
regmap_update_bits(nau8824->regmap, NAU8824_REG_TDM_CTRL,
sound/soc/codecs/nau8824.c
1260
regmap_update_bits(nau8824->regmap, NAU8824_REG_PORT0_LEFT_TIME_SLOT,
sound/soc/codecs/nau8824.c
1376
struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/nau8824.c
1383
dev_err(nau8824->dev, "Unsupported input clock %d\n", freq_in);
sound/soc/codecs/nau8824.c
1386
dev_dbg(nau8824->dev, "mclk_src=%x ratio=%x fll_frac=%x fll_int=%x clk_ref_div=%x\n",
sound/soc/codecs/nau8824.c
1390
nau8824_fll_apply(nau8824->regmap, &fll_param);
sound/soc/codecs/nau8824.c
1392
regmap_update_bits(nau8824->regmap, NAU8824_REG_CLK_DIVIDER,
sound/soc/codecs/nau8824.c
1398
static int nau8824_config_sysclk(struct nau8824 *nau8824,
sound/soc/codecs/nau8824.c
1401
struct regmap *regmap = nau8824->regmap;
sound/soc/codecs/nau8824.c
1412
nau8824_sema_acquire(nau8824, HZ);
sound/soc/codecs/nau8824.c
1417
nau8824_sema_release(nau8824);
sound/soc/codecs/nau8824.c
1428
nau8824_sema_acquire(nau8824, HZ);
sound/soc/codecs/nau8824.c
1431
nau8824_sema_release(nau8824);
sound/soc/codecs/nau8824.c
1435
nau8824_sema_acquire(nau8824, HZ);
sound/soc/codecs/nau8824.c
1438
nau8824_sema_release(nau8824);
sound/soc/codecs/nau8824.c
1442
nau8824_sema_acquire(nau8824, HZ);
sound/soc/codecs/nau8824.c
1445
nau8824_sema_release(nau8824);
sound/soc/codecs/nau8824.c
1449
dev_err(nau8824->dev, "Invalid clock id (%d)\n", clk_id);
sound/soc/codecs/nau8824.c
1453
dev_dbg(nau8824->dev, "Sysclk is %dHz and clock id is %d\n", freq,
sound/soc/codecs/nau8824.c
1462
struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/nau8824.c
1464
return nau8824_config_sysclk(nau8824, clk_id, freq);
sound/soc/codecs/nau8824.c
1467
static void nau8824_resume_setup(struct nau8824 *nau8824)
sound/soc/codecs/nau8824.c
1469
nau8824_config_sysclk(nau8824, NAU8824_CLK_DIS, 0);
sound/soc/codecs/nau8824.c
1470
if (nau8824->irq) {
sound/soc/codecs/nau8824.c
1472
nau8824_int_status_clear_all(nau8824->regmap);
sound/soc/codecs/nau8824.c
1476
regmap_update_bits(nau8824->regmap, NAU8824_REG_ENA_CTRL,
sound/soc/codecs/nau8824.c
1478
regmap_update_bits(nau8824->regmap,
sound/soc/codecs/nau8824.c
1482
regmap_update_bits(nau8824->regmap,
sound/soc/codecs/nau8824.c
1491
struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/nau8824.c
1501
if (snd_soc_dapm_get_bias_level(nau8824->dapm) == SND_SOC_BIAS_OFF) {
sound/soc/codecs/nau8824.c
1503
nau8824_resume_setup(nau8824);
sound/soc/codecs/nau8824.c
1508
regmap_update_bits(nau8824->regmap,
sound/soc/codecs/nau8824.c
1510
regmap_update_bits(nau8824->regmap,
sound/soc/codecs/nau8824.c
1521
struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/nau8824.c
1524
nau8824->dapm = dapm;
sound/soc/codecs/nau8824.c
1531
struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/nau8824.c
1533
if (nau8824->irq) {
sound/soc/codecs/nau8824.c
1534
disable_irq(nau8824->irq);
sound/soc/codecs/nau8824.c
1535
snd_soc_dapm_force_bias_level(nau8824->dapm, SND_SOC_BIAS_OFF);
sound/soc/codecs/nau8824.c
1537
regcache_cache_only(nau8824->regmap, true);
sound/soc/codecs/nau8824.c
1538
regcache_mark_dirty(nau8824->regmap);
sound/soc/codecs/nau8824.c
1545
struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/nau8824.c
1548
regcache_cache_only(nau8824->regmap, false);
sound/soc/codecs/nau8824.c
1549
regcache_sync(nau8824->regmap);
sound/soc/codecs/nau8824.c
1550
if (nau8824->irq) {
sound/soc/codecs/nau8824.c
1554
nau8824->resume_lock = true;
sound/soc/codecs/nau8824.c
1555
ret = nau8824_sema_acquire(nau8824, 0);
sound/soc/codecs/nau8824.c
1557
nau8824->resume_lock = false;
sound/soc/codecs/nau8824.c
1558
enable_irq(nau8824->irq);
sound/soc/codecs/nau8824.c
1640
struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/nau8824.c
1643
nau8824->jack = jack;
sound/soc/codecs/nau8824.c
1645
INIT_WORK(&nau8824->jdet_work, nau8824_jdet_work);
sound/soc/codecs/nau8824.c
1646
ret = devm_request_threaded_irq(nau8824->dev, nau8824->irq, NULL,
sound/soc/codecs/nau8824.c
1648
"nau8824", nau8824);
sound/soc/codecs/nau8824.c
1650
dev_err(nau8824->dev, "Cannot request irq %d (%d)\n",
sound/soc/codecs/nau8824.c
1651
nau8824->irq, ret);
sound/soc/codecs/nau8824.c
1664
static void nau8824_setup_buttons(struct nau8824 *nau8824)
sound/soc/codecs/nau8824.c
1666
struct regmap *regmap = nau8824->regmap;
sound/soc/codecs/nau8824.c
1670
nau8824->sar_voltage << NAU8824_SAR_TRACKING_GAIN_SFT);
sound/soc/codecs/nau8824.c
1673
nau8824->sar_compare_time << NAU8824_SAR_COMPARE_TIME_SFT);
sound/soc/codecs/nau8824.c
1676
nau8824->sar_sampling_time << NAU8824_SAR_SAMPLING_TIME_SFT);
sound/soc/codecs/nau8824.c
1680
(nau8824->sar_threshold_num - 1) << NAU8824_LEVELS_NR_SFT);
sound/soc/codecs/nau8824.c
1683
nau8824->sar_hysteresis << NAU8824_HYSTERESIS_SFT);
sound/soc/codecs/nau8824.c
1686
nau8824->key_debounce << NAU8824_SHORTKEY_DEBOUNCE_SFT);
sound/soc/codecs/nau8824.c
1689
(nau8824->sar_threshold[0] << 8) | nau8824->sar_threshold[1]);
sound/soc/codecs/nau8824.c
1691
(nau8824->sar_threshold[2] << 8) | nau8824->sar_threshold[3]);
sound/soc/codecs/nau8824.c
1693
(nau8824->sar_threshold[4] << 8) | nau8824->sar_threshold[5]);
sound/soc/codecs/nau8824.c
1695
(nau8824->sar_threshold[6] << 8) | nau8824->sar_threshold[7]);
sound/soc/codecs/nau8824.c
1698
static void nau8824_init_regs(struct nau8824 *nau8824)
sound/soc/codecs/nau8824.c
1700
struct regmap *regmap = nau8824->regmap;
sound/soc/codecs/nau8824.c
1705
(nau8824->vref_impedance << NAU8824_VMID_SEL_SFT));
sound/soc/codecs/nau8824.c
1710
NAU8824_MICBIAS_VOLTAGE_MASK, nau8824->micbias_voltage);
sound/soc/codecs/nau8824.c
1790
nau8824->jkdet_polarity ? 0 : NAU8824_JACK_LOGIC);
sound/soc/codecs/nau8824.c
1793
(nau8824->jack_eject_debounce << NAU8824_JACK_EJECT_DT_SFT));
sound/soc/codecs/nau8824.c
1794
if (nau8824->sar_threshold_num)
sound/soc/codecs/nau8824.c
1795
nau8824_setup_buttons(nau8824);
sound/soc/codecs/nau8824.c
1798
static int nau8824_setup_irq(struct nau8824 *nau8824)
sound/soc/codecs/nau8824.c
1801
regmap_update_bits(nau8824->regmap, NAU8824_REG_ENA_CTRL,
sound/soc/codecs/nau8824.c
1803
regmap_update_bits(nau8824->regmap,
sound/soc/codecs/nau8824.c
1805
regmap_update_bits(nau8824->regmap, NAU8824_REG_INTERRUPT_SETTING_1,
sound/soc/codecs/nau8824.c
1811
static void nau8824_print_device_properties(struct nau8824 *nau8824)
sound/soc/codecs/nau8824.c
1813
struct device *dev = nau8824->dev;
sound/soc/codecs/nau8824.c
1816
dev_dbg(dev, "jkdet-polarity: %d\n", nau8824->jkdet_polarity);
sound/soc/codecs/nau8824.c
1817
dev_dbg(dev, "micbias-voltage: %d\n", nau8824->micbias_voltage);
sound/soc/codecs/nau8824.c
1818
dev_dbg(dev, "vref-impedance: %d\n", nau8824->vref_impedance);
sound/soc/codecs/nau8824.c
1820
dev_dbg(dev, "sar-threshold-num: %d\n", nau8824->sar_threshold_num);
sound/soc/codecs/nau8824.c
1821
for (i = 0; i < nau8824->sar_threshold_num; i++)
sound/soc/codecs/nau8824.c
1823
nau8824->sar_threshold[i]);
sound/soc/codecs/nau8824.c
1825
dev_dbg(dev, "sar-hysteresis: %d\n", nau8824->sar_hysteresis);
sound/soc/codecs/nau8824.c
1826
dev_dbg(dev, "sar-voltage: %d\n", nau8824->sar_voltage);
sound/soc/codecs/nau8824.c
1827
dev_dbg(dev, "sar-compare-time: %d\n", nau8824->sar_compare_time);
sound/soc/codecs/nau8824.c
1828
dev_dbg(dev, "sar-sampling-time: %d\n", nau8824->sar_sampling_time);
sound/soc/codecs/nau8824.c
1829
dev_dbg(dev, "short-key-debounce: %d\n", nau8824->key_debounce);
sound/soc/codecs/nau8824.c
1831
nau8824->jack_eject_debounce);
sound/soc/codecs/nau8824.c
1835
struct nau8824 *nau8824) {
sound/soc/codecs/nau8824.c
1839
&nau8824->jkdet_polarity);
sound/soc/codecs/nau8824.c
1841
nau8824->jkdet_polarity = 1;
sound/soc/codecs/nau8824.c
1843
&nau8824->micbias_voltage);
sound/soc/codecs/nau8824.c
1845
nau8824->micbias_voltage = 6;
sound/soc/codecs/nau8824.c
1847
&nau8824->vref_impedance);
sound/soc/codecs/nau8824.c
1849
nau8824->vref_impedance = 2;
sound/soc/codecs/nau8824.c
1851
&nau8824->sar_threshold_num);
sound/soc/codecs/nau8824.c
1853
nau8824->sar_threshold_num = 4;
sound/soc/codecs/nau8824.c
1855
nau8824->sar_threshold, nau8824->sar_threshold_num);
sound/soc/codecs/nau8824.c
1857
nau8824->sar_threshold[0] = 0x0a;
sound/soc/codecs/nau8824.c
1858
nau8824->sar_threshold[1] = 0x14;
sound/soc/codecs/nau8824.c
1859
nau8824->sar_threshold[2] = 0x26;
sound/soc/codecs/nau8824.c
1860
nau8824->sar_threshold[3] = 0x73;
sound/soc/codecs/nau8824.c
1863
&nau8824->sar_hysteresis);
sound/soc/codecs/nau8824.c
1865
nau8824->sar_hysteresis = 0;
sound/soc/codecs/nau8824.c
1867
&nau8824->sar_voltage);
sound/soc/codecs/nau8824.c
1869
nau8824->sar_voltage = 6;
sound/soc/codecs/nau8824.c
1871
&nau8824->sar_compare_time);
sound/soc/codecs/nau8824.c
1873
nau8824->sar_compare_time = 1;
sound/soc/codecs/nau8824.c
1875
&nau8824->sar_sampling_time);
sound/soc/codecs/nau8824.c
1877
nau8824->sar_sampling_time = 1;
sound/soc/codecs/nau8824.c
1879
&nau8824->key_debounce);
sound/soc/codecs/nau8824.c
1881
nau8824->key_debounce = 0;
sound/soc/codecs/nau8824.c
1883
&nau8824->jack_eject_debounce);
sound/soc/codecs/nau8824.c
1885
nau8824->jack_eject_debounce = 1;
sound/soc/codecs/nau8824.c
1887
nau8824->mclk = devm_clk_get_optional(dev, "mclk");
sound/soc/codecs/nau8824.c
1888
if (IS_ERR(nau8824->mclk))
sound/soc/codecs/nau8824.c
1889
return PTR_ERR(nau8824->mclk);
sound/soc/codecs/nau8824.c
1978
struct nau8824 *nau8824 = dev_get_platdata(dev);
sound/soc/codecs/nau8824.c
1981
if (!nau8824) {
sound/soc/codecs/nau8824.c
1982
nau8824 = devm_kzalloc(dev, sizeof(*nau8824), GFP_KERNEL);
sound/soc/codecs/nau8824.c
1983
if (!nau8824)
sound/soc/codecs/nau8824.c
1985
ret = nau8824_read_device_properties(dev, nau8824);
sound/soc/codecs/nau8824.c
1989
i2c_set_clientdata(i2c, nau8824);
sound/soc/codecs/nau8824.c
1991
nau8824->regmap = devm_regmap_init_i2c(i2c, &nau8824_regmap_config);
sound/soc/codecs/nau8824.c
1992
if (IS_ERR(nau8824->regmap))
sound/soc/codecs/nau8824.c
1993
return PTR_ERR(nau8824->regmap);
sound/soc/codecs/nau8824.c
1994
nau8824->resume_lock = false;
sound/soc/codecs/nau8824.c
1995
nau8824->dev = dev;
sound/soc/codecs/nau8824.c
1996
nau8824->irq = i2c->irq;
sound/soc/codecs/nau8824.c
1997
sema_init(&nau8824->jd_sem, 1);
sound/soc/codecs/nau8824.c
2002
nau8824->jkdet_polarity = 0;
sound/soc/codecs/nau8824.c
2004
nau8824_print_device_properties(nau8824);
sound/soc/codecs/nau8824.c
2006
ret = regmap_read(nau8824->regmap, NAU8824_REG_I2C_DEVICE_ID, &value);
sound/soc/codecs/nau8824.c
2012
nau8824_reset_chip(nau8824->regmap);
sound/soc/codecs/nau8824.c
2013
nau8824_init_regs(nau8824);
sound/soc/codecs/nau8824.c
2016
nau8824_setup_irq(nau8824);
sound/soc/codecs/nau8824.c
206
static int nau8824_sema_acquire(struct nau8824 *nau8824, long timeout)
sound/soc/codecs/nau8824.c
211
ret = down_timeout(&nau8824->jd_sem, timeout);
sound/soc/codecs/nau8824.c
213
dev_warn(nau8824->dev, "Acquire semaphore timeout\n");
sound/soc/codecs/nau8824.c
215
ret = down_interruptible(&nau8824->jd_sem);
sound/soc/codecs/nau8824.c
217
dev_warn(nau8824->dev, "Acquire semaphore fail\n");
sound/soc/codecs/nau8824.c
223
static inline void nau8824_sema_release(struct nau8824 *nau8824)
sound/soc/codecs/nau8824.c
225
up(&nau8824->jd_sem);
sound/soc/codecs/nau8824.c
39
static int nau8824_config_sysclk(struct nau8824 *nau8824,
sound/soc/codecs/nau8824.c
41
static bool nau8824_is_jack_inserted(struct nau8824 *nau8824);
sound/soc/codecs/nau8824.c
432
struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/nau8824.c
437
regmap_update_bits(nau8824->regmap, NAU8824_REG_ENABLE_LO,
sound/soc/codecs/nau8824.c
441
regmap_update_bits(nau8824->regmap, NAU8824_REG_ENABLE_LO,
sound/soc/codecs/nau8824.c
455
struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/nau8824.c
459
regmap_update_bits(nau8824->regmap,
sound/soc/codecs/nau8824.c
464
regmap_update_bits(nau8824->regmap,
sound/soc/codecs/nau8824.c
479
struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/nau8824.c
485
regmap_update_bits(nau8824->regmap,
sound/soc/codecs/nau8824.c
490
regmap_update_bits(nau8824->regmap,
sound/soc/codecs/nau8824.c
505
struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/nau8824.c
506
struct regmap *regmap = nau8824->regmap;
sound/soc/codecs/nau8824.c
512
dev_dbg(nau8824->dev, "system clock control : POWER OFF\n");
sound/soc/codecs/nau8824.c
518
if (nau8824_is_jack_inserted(nau8824)) {
sound/soc/codecs/nau8824.c
519
nau8824_config_sysclk(nau8824,
sound/soc/codecs/nau8824.c
522
nau8824_config_sysclk(nau8824, NAU8824_CLK_DIS, 0);
sound/soc/codecs/nau8824.c
525
clk_disable_unprepare(nau8824->mclk);
sound/soc/codecs/nau8824.c
527
dev_dbg(nau8824->dev, "system clock control : POWER ON\n");
sound/soc/codecs/nau8824.c
529
ret = clk_prepare_enable(nau8824->mclk);
sound/soc/codecs/nau8824.c
559
nau8824_config_sysclk(nau8824,
sound/soc/codecs/nau8824.c
572
struct nau8824 *nau8824 = snd_soc_component_get_drvdata(component);
sound/soc/codecs/nau8824.c
576
freq = clk_get_rate(nau8824->mclk);
sound/soc/codecs/nau8824.c
578
freq = nau8824->fs * 256;
sound/soc/codecs/nau8824.c
588
dev_dbg(nau8824->dev, "dmic src %d for mclk %d\n", src, freq);
sound/soc/codecs/nau8824.c
589
regmap_update_bits(nau8824->regmap, NAU8824_REG_CLK_DIVIDER,
sound/soc/codecs/nau8824.c
825
static bool nau8824_is_jack_inserted(struct nau8824 *nau8824)
sound/soc/codecs/nau8824.c
827
struct snd_soc_jack *jack = nau8824->jack;
sound/soc/codecs/nau8824.c
830
if (nau8824->irq && jack)
sound/soc/codecs/nau8824.c
852
static void nau8824_eject_jack(struct nau8824 *nau8824)
sound/soc/codecs/nau8824.c
854
struct snd_soc_dapm_context *dapm = nau8824->dapm;
sound/soc/codecs/nau8824.c
855
struct regmap *regmap = nau8824->regmap;
sound/soc/codecs/nau8824.c
880
nau8824_config_sysclk(nau8824, NAU8824_CLK_DIS, 0);
sound/soc/codecs/nau8824.c
885
struct nau8824 *nau8824 = container_of(
sound/soc/codecs/nau8824.c
886
work, struct nau8824, jdet_work);
sound/soc/codecs/nau8824.c
887
struct snd_soc_dapm_context *dapm = nau8824->dapm;
sound/soc/codecs/nau8824.c
888
struct regmap *regmap = nau8824->regmap;
sound/soc/codecs/nau8824.c
899
dev_dbg(nau8824->dev, "SAR ADC data 0x%02x\n", adc_value);
sound/soc/codecs/nau8824.c
910
snd_soc_jack_report(nau8824->jack, event, event_mask);
sound/soc/codecs/nau8824.c
917
if (nau8824->resume_lock) {
sound/soc/codecs/nau8824.c
918
nau8824_sema_release(nau8824);
sound/soc/codecs/nau8824.c
919
nau8824->resume_lock = false;
sound/soc/codecs/nau8824.c
923
static void nau8824_setup_auto_irq(struct nau8824 *nau8824)
sound/soc/codecs/nau8824.c
925
struct regmap *regmap = nau8824->regmap;
sound/soc/codecs/nau8824.c
934
if (snd_soc_dapm_get_bias_level(nau8824->dapm) < SND_SOC_BIAS_PREPARE)
sound/soc/codecs/nau8824.c
935
nau8824_config_sysclk(nau8824, NAU8824_CLK_INTERNAL, 0);
sound/soc/codecs/nau8824.c
968
struct nau8824 *nau8824 = (struct nau8824 *)data;
sound/soc/codecs/nau8824.c
969
struct regmap *regmap = nau8824->regmap;
sound/soc/codecs/nau8824.c
973
dev_err(nau8824->dev, "failed to read irq status\n");
sound/soc/codecs/nau8824.c
976
dev_dbg(nau8824->dev, "IRQ %x\n", active_irq);
sound/soc/codecs/nau8824.c
979
nau8824_eject_jack(nau8824);
sound/soc/codecs/nau8824.c
985
if (nau8824->resume_lock) {
sound/soc/codecs/nau8824.c
986
nau8824_sema_release(nau8824);
sound/soc/codecs/nau8824.c
987
nau8824->resume_lock = false;
sound/soc/codecs/nau8824.c
989
cancel_work_sync(&nau8824->jdet_work);