diff --git a/sys/dev/drm/radeon/r600_hdmi.c b/sys/dev/drm/radeon/r600_hdmi.c --- a/sys/dev/drm/radeon/r600_hdmi.c +++ b/sys/dev/drm/radeon/r600_hdmi.c @@ -129,12 +129,15 @@ changed = true; } + mutex_lock(&dev->mode_config.mutex); list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { if (!radeon_encoder_is_digital(encoder)) continue; if (changed || r600_hdmi_buffer_status_changed(encoder)) r600_hdmi_update_audio_settings(encoder); } + + mutex_unlock(&dev->mode_config.mutex); } /* enable the audio stream */