diff options
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; |
