{
        struct bcm2835_chip *chip = snd_kcontrol_chip(kcontrol);
 
-       if (mutex_lock_interruptible(&chip->audio_mutex))
-               return -EINTR;
+       mutex_lock(&chip->audio_mutex);
 
        BUG_ON(!chip && !(chip->avail_substreams & AVAIL_SUBSTREAMS_MASK));
 
        struct bcm2835_chip *chip = snd_kcontrol_chip(kcontrol);
        int changed = 0;
 
-       if (mutex_lock_interruptible(&chip->audio_mutex))
-               return -EINTR;
+       mutex_lock(&chip->audio_mutex);
 
        if (kcontrol->private_value == PCM_PLAYBACK_VOLUME) {
                audio_info("Volume change attempted.. volume = %d new_volume = %d\n", chip->volume, (int)ucontrol->value.integer.value[0]);
        struct bcm2835_chip *chip = snd_kcontrol_chip(kcontrol);
        int i;
 
-       if (mutex_lock_interruptible(&chip->audio_mutex))
-               return -EINTR;
+       mutex_lock(&chip->audio_mutex);
 
        for (i = 0; i < 4; i++)
                ucontrol->value.iec958.status[i] =
        unsigned int val = 0;
        int i, change;
 
-       if (mutex_lock_interruptible(&chip->audio_mutex))
-               return -EINTR;
+       mutex_lock(&chip->audio_mutex);
 
        for (i = 0; i < 4; i++)
                val |= (unsigned int)ucontrol->value.iec958.status[i] << (i * 8);
        struct bcm2835_chip *chip = snd_kcontrol_chip(kcontrol);
        int i;
 
-       if (mutex_lock_interruptible(&chip->audio_mutex))
-               return -EINTR;
+       mutex_lock(&chip->audio_mutex);
 
        for (i = 0; i < 4; i++)
                ucontrol->value.iec958.status[i] =
        unsigned int val = 0;
        int i, change;
 
-       if (mutex_lock_interruptible(&chip->audio_mutex))
-               return -EINTR;
+       mutex_lock(&chip->audio_mutex);
 
        for (i = 0; i < 4; i++)
                val |= (unsigned int)ucontrol->value.iec958.status[i] << (i * 8);
 
        int idx;
        int err;
 
-       if (mutex_lock_interruptible(&chip->audio_mutex)) {
-               audio_error("Interrupted whilst waiting for lock\n");
-               return -EINTR;
-       }
+       mutex_lock(&chip->audio_mutex);
        audio_info("Alsa open (%d)\n", substream->number);
        idx = substream->number;
 
        struct bcm2835_alsa_stream *alsa_stream;
 
        chip = snd_pcm_substream_chip(substream);
-       if (mutex_lock_interruptible(&chip->audio_mutex)) {
-               audio_error("Interrupted whilst waiting for lock\n");
-               return -EINTR;
-       }
+       mutex_lock(&chip->audio_mutex);
        runtime = substream->runtime;
        alsa_stream = runtime->private_data;
 
        int channels;
        int err;
 
-       if (mutex_lock_interruptible(&chip->audio_mutex))
-               return -EINTR;
+       mutex_lock(&chip->audio_mutex);
 
        /* notify the vchiq that it should enter spdif passthrough mode by
         * setting channels=0 (see
        struct snd_pcm *pcm;
        int err;
 
-       mutex_init(&chip->audio_mutex);
-       if (mutex_lock_interruptible(&chip->audio_mutex)) {
-               audio_error("Interrupted whilst waiting for lock\n");
-               return -EINTR;
-       }
        err = snd_pcm_new(chip->card, "bcm2835 ALSA", 0, numchannels, 0, &pcm);
        if (err < 0)
-               goto out;
+               return err;
        pcm->private_data = chip;
        strcpy(pcm->name, "bcm2835 ALSA");
        chip->pcm = pcm;
                                              snd_bcm2835_playback_hw.buffer_bytes_max,
                                              snd_bcm2835_playback_hw.buffer_bytes_max);
 
-out:
-       mutex_unlock(&chip->audio_mutex);
-
        return 0;
 }
 
        struct snd_pcm *pcm;
        int err;
 
-       if (mutex_lock_interruptible(&chip->audio_mutex)) {
-               audio_error("Interrupted whilst waiting for lock\n");
-               return -EINTR;
-       }
        err = snd_pcm_new(chip->card, "bcm2835 ALSA", 1, 1, 0, &pcm);
        if (err < 0)
-               goto out;
+               return err;
 
        pcm->private_data = chip;
        strcpy(pcm->name, "bcm2835 IEC958/HDMI");
        snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS,
                snd_dma_continuous_data(GFP_KERNEL),
                snd_bcm2835_playback_spdif_hw.buffer_bytes_max, snd_bcm2835_playback_spdif_hw.buffer_bytes_max);
-out:
-       mutex_unlock(&chip->audio_mutex);
 
        return 0;
 }
        struct snd_pcm *pcm;
        int err;
 
-       mutex_init(&chip->audio_mutex);
-
        err = snd_pcm_new(chip->card, name, 0, numchannels,
                          0, &pcm);
        if (err)
 
        }
 
        LOG_DBG(" .. about to lock (%d)\n", instance->num_connections);
-       if (mutex_lock_interruptible(&instance->vchi_mutex)) {
-               LOG_DBG("Interrupted whilst waiting for lock on (%d)\n",
-                       instance->num_connections);
-               return -EINTR;
-       }
+       mutex_lock(&instance->vchi_mutex);
 
        /* Close all VCHI service connections */
        for (i = 0; i < instance->num_connections; i++) {
        instance = alsa_stream->instance;
        LOG_DBG(" instance (%p)\n", instance);
 
-       if (mutex_lock_interruptible(&instance->vchi_mutex)) {
-               LOG_DBG("Interrupted whilst waiting for lock on (%d)\n", instance->num_connections);
-               ret = -EINTR;
-               goto free_wq;
-       }
+       mutex_lock(&instance->vchi_mutex);
        vchi_service_use(instance->vchi_handle[0]);
 
        m.type = VC_AUDIO_MSG_TYPE_OPEN;
        LOG_INFO(" Setting ALSA dest(%d), volume(%d)\n",
                 chip->dest, chip->volume);
 
-       if (mutex_lock_interruptible(&instance->vchi_mutex)) {
-               LOG_DBG("Interrupted whilst waiting for lock on (%d)\n",
-                       instance->num_connections);
-               return -EINTR;
-       }
+       mutex_lock(&instance->vchi_mutex);
        vchi_service_use(instance->vchi_handle[0]);
 
        instance->result = -1;
                return -EINVAL;
        }
 
-       if (mutex_lock_interruptible(&instance->vchi_mutex)) {
-               LOG_DBG("Interrupted whilst waiting for lock on (%d)\n", instance->num_connections);
-               return -EINTR;
-       }
+       mutex_lock(&instance->vchi_mutex);
        vchi_service_use(instance->vchi_handle[0]);
 
        instance->result = -1;
        int status;
        int ret;
 
-       if (mutex_lock_interruptible(&instance->vchi_mutex)) {
-               LOG_DBG("Interrupted whilst waiting for lock on (%d)\n",
-                       instance->num_connections);
-               return -EINTR;
-       }
+       mutex_lock(&instance->vchi_mutex);
        vchi_service_use(instance->vchi_handle[0]);
 
        m.type = VC_AUDIO_MSG_TYPE_START;
        int status;
        int ret;
 
-       if (mutex_lock_interruptible(&instance->vchi_mutex)) {
-               LOG_DBG("Interrupted whilst waiting for lock on (%d)\n",
-                       instance->num_connections);
-               return -EINTR;
-       }
+       mutex_lock(&instance->vchi_mutex);
        vchi_service_use(instance->vchi_handle[0]);
 
        m.type = VC_AUDIO_MSG_TYPE_STOP;
 
        my_workqueue_quit(alsa_stream);
 
-       if (mutex_lock_interruptible(&instance->vchi_mutex)) {
-               LOG_DBG("Interrupted whilst waiting for lock on (%d)\n",
-                       instance->num_connections);
-               return -EINTR;
-       }
+       mutex_lock(&instance->vchi_mutex);
        vchi_service_use(instance->vchi_handle[0]);
 
        m.type = VC_AUDIO_MSG_TYPE_CLOSE;
 
        LOG_INFO(" Writing %d bytes from %p\n", count, src);
 
-       if (mutex_lock_interruptible(&instance->vchi_mutex)) {
-               LOG_DBG("Interrupted whilst waiting for lock on (%d)\n",
-                       instance->num_connections);
-               return -EINTR;
-       }
+       mutex_lock(&instance->vchi_mutex);
        vchi_service_use(instance->vchi_handle[0]);
 
        if (instance->peer_version == 0 &&
 
                return -ENOMEM;
 
        chip->card = card;
+       mutex_init(&chip->audio_mutex);
 
        chip->vchi_ctx = devres_find(card->dev->parent,
                                     bcm2835_devm_free_vchi_ctx, NULL, NULL);