diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2015-03-04 04:33:16 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-03-04 12:09:51 -0500 |
commit | c472b93990e02c31f02322ddf0fdd9d571169310 (patch) | |
tree | 18fb840cb3f42e5be3d5a638c5d4d9674a252f53 /sound/soc/codecs/sn95031.c | |
parent | c517d838eb7d07bbe9507871fab3931deccff539 (diff) |
ASoC: sn95031: Pass CODEC to sn95031_jack_detection()
The sn95031 driver currently gets the CODEC implicitly from the jack that is
passed to sn95031_jack_detection(). But the codec field is going to be
removed from the snd_soc_jack struct, so refactor things to pass the CODEC
explicitly.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/sn95031.c')
-rw-r--r-- | sound/soc/codecs/sn95031.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/sound/soc/codecs/sn95031.c b/sound/soc/codecs/sn95031.c index 47b257e41809..1e5d2643c286 100644 --- a/sound/soc/codecs/sn95031.c +++ b/sound/soc/codecs/sn95031.c | |||
@@ -783,19 +783,21 @@ static inline void sn95031_enable_jack_btn(struct snd_soc_codec *codec) | |||
783 | snd_soc_write(codec, SN95031_BTNCTRL2, 0x01); | 783 | snd_soc_write(codec, SN95031_BTNCTRL2, 0x01); |
784 | } | 784 | } |
785 | 785 | ||
786 | static int sn95031_get_headset_state(struct snd_soc_jack *mfld_jack) | 786 | static int sn95031_get_headset_state(struct snd_soc_codec *codec, |
787 | struct snd_soc_jack *mfld_jack) | ||
787 | { | 788 | { |
788 | int micbias = sn95031_get_mic_bias(mfld_jack->codec); | 789 | int micbias = sn95031_get_mic_bias(codec); |
789 | 790 | ||
790 | int jack_type = snd_soc_jack_get_type(mfld_jack, micbias); | 791 | int jack_type = snd_soc_jack_get_type(mfld_jack, micbias); |
791 | 792 | ||
792 | pr_debug("jack type detected = %d\n", jack_type); | 793 | pr_debug("jack type detected = %d\n", jack_type); |
793 | if (jack_type == SND_JACK_HEADSET) | 794 | if (jack_type == SND_JACK_HEADSET) |
794 | sn95031_enable_jack_btn(mfld_jack->codec); | 795 | sn95031_enable_jack_btn(codec); |
795 | return jack_type; | 796 | return jack_type; |
796 | } | 797 | } |
797 | 798 | ||
798 | void sn95031_jack_detection(struct mfld_jack_data *jack_data) | 799 | void sn95031_jack_detection(struct snd_soc_codec *codec, |
800 | struct mfld_jack_data *jack_data) | ||
799 | { | 801 | { |
800 | unsigned int status; | 802 | unsigned int status; |
801 | unsigned int mask = SND_JACK_BTN_0 | SND_JACK_BTN_1 | SND_JACK_HEADSET; | 803 | unsigned int mask = SND_JACK_BTN_0 | SND_JACK_BTN_1 | SND_JACK_HEADSET; |
@@ -809,11 +811,11 @@ void sn95031_jack_detection(struct mfld_jack_data *jack_data) | |||
809 | status = SND_JACK_HEADSET | SND_JACK_BTN_1; | 811 | status = SND_JACK_HEADSET | SND_JACK_BTN_1; |
810 | } else if (jack_data->intr_id & 0x4) { | 812 | } else if (jack_data->intr_id & 0x4) { |
811 | pr_debug("headset or headphones inserted\n"); | 813 | pr_debug("headset or headphones inserted\n"); |
812 | status = sn95031_get_headset_state(jack_data->mfld_jack); | 814 | status = sn95031_get_headset_state(codec, jack_data->mfld_jack); |
813 | } else if (jack_data->intr_id & 0x8) { | 815 | } else if (jack_data->intr_id & 0x8) { |
814 | pr_debug("headset or headphones removed\n"); | 816 | pr_debug("headset or headphones removed\n"); |
815 | status = 0; | 817 | status = 0; |
816 | sn95031_disable_jack_btn(jack_data->mfld_jack->codec); | 818 | sn95031_disable_jack_btn(codec); |
817 | } else { | 819 | } else { |
818 | pr_err("unidentified interrupt\n"); | 820 | pr_err("unidentified interrupt\n"); |
819 | return; | 821 | return; |