ALSA: virtio: introduce jack support
[sfrench/cifs-2.6.git] / sound / virtio / virtio_card.c
index 57b9b7f3a9c00d502a936984a0725e190c58622a..89bd66c1256e832c8ea4449db10f81d00ba2f07c 100644 (file)
@@ -56,6 +56,10 @@ static void virtsnd_event_dispatch(struct virtio_snd *snd,
                                   struct virtio_snd_event *event)
 {
        switch (le32_to_cpu(event->hdr.code)) {
+       case VIRTIO_SND_EVT_JACK_CONNECTED:
+       case VIRTIO_SND_EVT_JACK_DISCONNECTED:
+               virtsnd_jack_event(snd, event);
+               break;
        case VIRTIO_SND_EVT_PCM_PERIOD_ELAPSED:
        case VIRTIO_SND_EVT_PCM_XRUN:
                virtsnd_pcm_event(snd, event);
@@ -219,10 +223,20 @@ static int virtsnd_build_devs(struct virtio_snd *snd)
                         VIRTIO_SND_CARD_NAME " at %s/%s",
                         dev_name(dev->parent), dev_name(dev));
 
+       rc = virtsnd_jack_parse_cfg(snd);
+       if (rc)
+               return rc;
+
        rc = virtsnd_pcm_parse_cfg(snd);
        if (rc)
                return rc;
 
+       if (snd->njacks) {
+               rc = virtsnd_jack_build_devs(snd);
+               if (rc)
+                       return rc;
+       }
+
        if (snd->nsubstreams) {
                rc = virtsnd_pcm_build_devs(snd);
                if (rc)