From a55643ecb37cba1a2c6124ef18e67d924b3647d9 Mon Sep 17 00:00:00 2001 From: Clemens Ladisch Date: Wed, 11 May 2011 11:07:09 +0200 Subject: [PATCH] --- yaml --- r: 248177 b: refs/heads/master c: f3f7c1837f6bcae3601fc535b339426868bf1549 h: refs/heads/master i: 248175: 7ce8b5978bb56d95020954f28ed270755eacd79c v: v3 --- [refs] | 2 +- trunk/sound/firewire/isight.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 9ce4dc1187cc..08cadd558413 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3cabffd72c303c3b5bbbbe88c95b49043898d1f3 +refs/heads/master: f3f7c1837f6bcae3601fc535b339426868bf1549 diff --git a/trunk/sound/firewire/isight.c b/trunk/sound/firewire/isight.c index 96267437d373..86ee16ca365e 100644 --- a/trunk/sound/firewire/isight.c +++ b/trunk/sound/firewire/isight.c @@ -692,9 +692,11 @@ static int isight_remove(struct device *dev) { struct isight *isight = dev_get_drvdata(dev); - mutex_lock(&isight->mutex); isight_pcm_abort(isight); + snd_card_disconnect(isight->card); + + mutex_lock(&isight->mutex); isight_stop_streaming(isight); mutex_unlock(&isight->mutex); @@ -707,12 +709,13 @@ static void isight_bus_reset(struct fw_unit *unit) { struct isight *isight = dev_get_drvdata(&unit->device); - mutex_lock(&isight->mutex); if (fw_iso_resources_update(&isight->resources) < 0) { isight_pcm_abort(isight); + + mutex_lock(&isight->mutex); isight_stop_streaming(isight); + mutex_unlock(&isight->mutex); } - mutex_unlock(&isight->mutex); } static const struct ieee1394_device_id isight_id_table[] = {