diff options
author | Takashi Iwai <tiwai@suse.de> | 2008-12-25 05:40:28 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2008-12-25 05:40:28 -0500 |
commit | a65056205cdf7efb96fb2558e4f1ec6bae2582ed (patch) | |
tree | 22a5fa35464f26183e34aa4210fa6c145f24ddf3 /sound/core | |
parent | 313769d9edb1bbd59d2e94f5069950eecfe6fa44 (diff) | |
parent | 7645c4bfbb36f357f03815f5729c46ce8d89f008 (diff) |
Merge branch 'topic/hda' into to-push
Diffstat (limited to 'sound/core')
-rw-r--r-- | sound/core/jack.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sound/core/jack.c b/sound/core/jack.c index bd2d9e6b55e9..284432f427f4 100644 --- a/sound/core/jack.c +++ b/sound/core/jack.c | |||
@@ -34,6 +34,7 @@ static int snd_jack_dev_free(struct snd_device *device) | |||
34 | else | 34 | else |
35 | input_free_device(jack->input_dev); | 35 | input_free_device(jack->input_dev); |
36 | 36 | ||
37 | kfree(jack->id); | ||
37 | kfree(jack); | 38 | kfree(jack); |
38 | 39 | ||
39 | return 0; | 40 | return 0; |
@@ -87,7 +88,7 @@ int snd_jack_new(struct snd_card *card, const char *id, int type, | |||
87 | if (jack == NULL) | 88 | if (jack == NULL) |
88 | return -ENOMEM; | 89 | return -ENOMEM; |
89 | 90 | ||
90 | jack->id = id; | 91 | jack->id = kstrdup(id, GFP_KERNEL); |
91 | 92 | ||
92 | jack->input_dev = input_allocate_device(); | 93 | jack->input_dev = input_allocate_device(); |
93 | if (jack->input_dev == NULL) { | 94 | if (jack->input_dev == NULL) { |
@@ -102,6 +103,9 @@ int snd_jack_new(struct snd_card *card, const char *id, int type, | |||
102 | if (type & SND_JACK_HEADPHONE) | 103 | if (type & SND_JACK_HEADPHONE) |
103 | input_set_capability(jack->input_dev, EV_SW, | 104 | input_set_capability(jack->input_dev, EV_SW, |
104 | SW_HEADPHONE_INSERT); | 105 | SW_HEADPHONE_INSERT); |
106 | if (type & SND_JACK_LINEOUT) | ||
107 | input_set_capability(jack->input_dev, EV_SW, | ||
108 | SW_LINEOUT_INSERT); | ||
105 | if (type & SND_JACK_MICROPHONE) | 109 | if (type & SND_JACK_MICROPHONE) |
106 | input_set_capability(jack->input_dev, EV_SW, | 110 | input_set_capability(jack->input_dev, EV_SW, |
107 | SW_MICROPHONE_INSERT); | 111 | SW_MICROPHONE_INSERT); |
@@ -153,6 +157,9 @@ void snd_jack_report(struct snd_jack *jack, int status) | |||
153 | if (jack->type & SND_JACK_HEADPHONE) | 157 | if (jack->type & SND_JACK_HEADPHONE) |
154 | input_report_switch(jack->input_dev, SW_HEADPHONE_INSERT, | 158 | input_report_switch(jack->input_dev, SW_HEADPHONE_INSERT, |
155 | status & SND_JACK_HEADPHONE); | 159 | status & SND_JACK_HEADPHONE); |
160 | if (jack->type & SND_JACK_LINEOUT) | ||
161 | input_report_switch(jack->input_dev, SW_LINEOUT_INSERT, | ||
162 | status & SND_JACK_LINEOUT); | ||
156 | if (jack->type & SND_JACK_MICROPHONE) | 163 | if (jack->type & SND_JACK_MICROPHONE) |
157 | input_report_switch(jack->input_dev, SW_MICROPHONE_INSERT, | 164 | input_report_switch(jack->input_dev, SW_MICROPHONE_INSERT, |
158 | status & SND_JACK_MICROPHONE); | 165 | status & SND_JACK_MICROPHONE); |