es8316 367 sound/soc/codecs/es8316.c struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); es8316 371 sound/soc/codecs/es8316.c es8316->sysclk = freq; es8316 374 sound/soc/codecs/es8316.c es8316->sysclk_constraints.list = NULL; es8316 375 sound/soc/codecs/es8316.c es8316->sysclk_constraints.count = 0; es8316 380 sound/soc/codecs/es8316.c ret = clk_set_rate(es8316->mclk, freq); es8316 391 sound/soc/codecs/es8316.c es8316->allowed_rates[count++] = freq / ratio; es8316 394 sound/soc/codecs/es8316.c es8316->sysclk_constraints.list = es8316->allowed_rates; es8316 395 sound/soc/codecs/es8316.c es8316->sysclk_constraints.count = count; es8316 455 sound/soc/codecs/es8316.c struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); es8316 457 sound/soc/codecs/es8316.c if (es8316->sysclk_constraints.list) es8316 460 sound/soc/codecs/es8316.c &es8316->sysclk_constraints); es8316 470 sound/soc/codecs/es8316.c struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); es8316 478 sound/soc/codecs/es8316.c if (es8316->sysclk % ratio != 0) es8316 480 sound/soc/codecs/es8316.c if (es8316->sysclk / ratio == params_rate(params)) es8316 578 sound/soc/codecs/es8316.c struct es8316_priv *es8316 = data; es8316 579 sound/soc/codecs/es8316.c struct snd_soc_component *comp = es8316->component; es8316 582 sound/soc/codecs/es8316.c mutex_lock(&es8316->lock); es8316 584 sound/soc/codecs/es8316.c regmap_read(es8316->regmap, ES8316_GPIO_FLAG, &flags); es8316 589 sound/soc/codecs/es8316.c if (!es8316->jack) es8316 592 sound/soc/codecs/es8316.c if (es8316->jd_inverted) es8316 598 sound/soc/codecs/es8316.c if (es8316->jack->status & SND_JACK_MICROPHONE) es8316 601 sound/soc/codecs/es8316.c if (es8316->jack->status & SND_JACK_HEADPHONE) { es8316 602 sound/soc/codecs/es8316.c snd_soc_jack_report(es8316->jack, 0, es8316 606 sound/soc/codecs/es8316.c } else if (!(es8316->jack->status & SND_JACK_HEADPHONE)) { es8316 609 sound/soc/codecs/es8316.c regmap_read(es8316->regmap, ES8316_GPIO_FLAG, &flags); es8316 610 sound/soc/codecs/es8316.c if (es8316->jd_inverted) es8316 618 sound/soc/codecs/es8316.c snd_soc_jack_report(es8316->jack, es8316 624 sound/soc/codecs/es8316.c snd_soc_jack_report(es8316->jack, es8316 630 sound/soc/codecs/es8316.c } else if (es8316->jack->status & SND_JACK_MICROPHONE) { es8316 634 sound/soc/codecs/es8316.c snd_soc_jack_report(es8316->jack, 0, SND_JACK_BTN_0); es8316 637 sound/soc/codecs/es8316.c snd_soc_jack_report(es8316->jack, es8316 644 sound/soc/codecs/es8316.c mutex_unlock(&es8316->lock); es8316 651 sound/soc/codecs/es8316.c struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); es8316 658 sound/soc/codecs/es8316.c es8316->jd_inverted = device_property_read_bool(component->dev, es8316 661 sound/soc/codecs/es8316.c mutex_lock(&es8316->lock); es8316 663 sound/soc/codecs/es8316.c es8316->jack = jack; es8316 665 sound/soc/codecs/es8316.c if (es8316->jack->status & SND_JACK_MICROPHONE) es8316 672 sound/soc/codecs/es8316.c mutex_unlock(&es8316->lock); es8316 675 sound/soc/codecs/es8316.c enable_irq(es8316->irq); es8316 676 sound/soc/codecs/es8316.c es8316_irq(es8316->irq, es8316); es8316 681 sound/soc/codecs/es8316.c struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); es8316 683 sound/soc/codecs/es8316.c disable_irq(es8316->irq); es8316 685 sound/soc/codecs/es8316.c mutex_lock(&es8316->lock); es8316 690 sound/soc/codecs/es8316.c if (es8316->jack->status & SND_JACK_MICROPHONE) { es8316 692 sound/soc/codecs/es8316.c snd_soc_jack_report(es8316->jack, 0, SND_JACK_BTN_0); es8316 695 sound/soc/codecs/es8316.c es8316->jack = NULL; es8316 697 sound/soc/codecs/es8316.c mutex_unlock(&es8316->lock); es8316 713 sound/soc/codecs/es8316.c struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); es8316 716 sound/soc/codecs/es8316.c es8316->component = component; es8316 718 sound/soc/codecs/es8316.c es8316->mclk = devm_clk_get_optional(component->dev, "mclk"); es8316 719 sound/soc/codecs/es8316.c if (IS_ERR(es8316->mclk)) { es8316 721 sound/soc/codecs/es8316.c return PTR_ERR(es8316->mclk); es8316 723 sound/soc/codecs/es8316.c if (!es8316->mclk) es8316 726 sound/soc/codecs/es8316.c ret = clk_prepare_enable(es8316->mclk); es8316 756 sound/soc/codecs/es8316.c struct es8316_priv *es8316 = snd_soc_component_get_drvdata(component); es8316 758 sound/soc/codecs/es8316.c clk_disable_unprepare(es8316->mclk); es8316 797 sound/soc/codecs/es8316.c struct es8316_priv *es8316; es8316 800 sound/soc/codecs/es8316.c es8316 = devm_kzalloc(&i2c_client->dev, sizeof(struct es8316_priv), es8316 802 sound/soc/codecs/es8316.c if (es8316 == NULL) es8316 805 sound/soc/codecs/es8316.c i2c_set_clientdata(i2c_client, es8316); es8316 807 sound/soc/codecs/es8316.c es8316->regmap = devm_regmap_init_i2c(i2c_client, &es8316_regmap); es8316 808 sound/soc/codecs/es8316.c if (IS_ERR(es8316->regmap)) es8316 809 sound/soc/codecs/es8316.c return PTR_ERR(es8316->regmap); es8316 811 sound/soc/codecs/es8316.c es8316->irq = i2c_client->irq; es8316 812 sound/soc/codecs/es8316.c mutex_init(&es8316->lock); es8316 814 sound/soc/codecs/es8316.c ret = devm_request_threaded_irq(dev, es8316->irq, NULL, es8316_irq, es8316 816 sound/soc/codecs/es8316.c "es8316", es8316); es8316 819 sound/soc/codecs/es8316.c disable_irq(es8316->irq); es8316 821 sound/soc/codecs/es8316.c dev_warn(dev, "Failed to get IRQ %d: %d\n", es8316->irq, ret); es8316 822 sound/soc/codecs/es8316.c es8316->irq = -ENXIO;