diff options
Diffstat (limited to 'sound/aoa')
-rw-r--r-- | sound/aoa/codecs/onyx.c | 1 | ||||
-rw-r--r-- | sound/aoa/core/gpio-feature.c | 7 | ||||
-rw-r--r-- | sound/aoa/core/gpio-pmf.c | 7 |
3 files changed, 6 insertions, 9 deletions
diff --git a/sound/aoa/codecs/onyx.c b/sound/aoa/codecs/onyx.c index 91852e49910e..3687a6cc9881 100644 --- a/sound/aoa/codecs/onyx.c +++ b/sound/aoa/codecs/onyx.c | |||
@@ -1114,7 +1114,6 @@ static int onyx_i2c_remove(struct i2c_client *client) | |||
1114 | of_node_put(onyx->codec.node); | 1114 | of_node_put(onyx->codec.node); |
1115 | if (onyx->codec_info) | 1115 | if (onyx->codec_info) |
1116 | kfree(onyx->codec_info); | 1116 | kfree(onyx->codec_info); |
1117 | i2c_set_clientdata(client, onyx); | ||
1118 | kfree(onyx); | 1117 | kfree(onyx); |
1119 | return 0; | 1118 | return 0; |
1120 | } | 1119 | } |
diff --git a/sound/aoa/core/gpio-feature.c b/sound/aoa/core/gpio-feature.c index de8e03afa97b..faa317490545 100644 --- a/sound/aoa/core/gpio-feature.c +++ b/sound/aoa/core/gpio-feature.c | |||
@@ -287,10 +287,9 @@ static void ftr_gpio_exit(struct gpio_runtime *rt) | |||
287 | free_irq(linein_detect_irq, &rt->line_in_notify); | 287 | free_irq(linein_detect_irq, &rt->line_in_notify); |
288 | if (rt->line_out_notify.gpio_private) | 288 | if (rt->line_out_notify.gpio_private) |
289 | free_irq(lineout_detect_irq, &rt->line_out_notify); | 289 | free_irq(lineout_detect_irq, &rt->line_out_notify); |
290 | cancel_delayed_work(&rt->headphone_notify.work); | 290 | cancel_delayed_work_sync(&rt->headphone_notify.work); |
291 | cancel_delayed_work(&rt->line_in_notify.work); | 291 | cancel_delayed_work_sync(&rt->line_in_notify.work); |
292 | cancel_delayed_work(&rt->line_out_notify.work); | 292 | cancel_delayed_work_sync(&rt->line_out_notify.work); |
293 | flush_scheduled_work(); | ||
294 | mutex_destroy(&rt->headphone_notify.mutex); | 293 | mutex_destroy(&rt->headphone_notify.mutex); |
295 | mutex_destroy(&rt->line_in_notify.mutex); | 294 | mutex_destroy(&rt->line_in_notify.mutex); |
296 | mutex_destroy(&rt->line_out_notify.mutex); | 295 | mutex_destroy(&rt->line_out_notify.mutex); |
diff --git a/sound/aoa/core/gpio-pmf.c b/sound/aoa/core/gpio-pmf.c index 7e267c9379bc..c8d8a1a6f964 100644 --- a/sound/aoa/core/gpio-pmf.c +++ b/sound/aoa/core/gpio-pmf.c | |||
@@ -107,10 +107,9 @@ static void pmf_gpio_exit(struct gpio_runtime *rt) | |||
107 | 107 | ||
108 | /* make sure no work is pending before freeing | 108 | /* make sure no work is pending before freeing |
109 | * all things */ | 109 | * all things */ |
110 | cancel_delayed_work(&rt->headphone_notify.work); | 110 | cancel_delayed_work_sync(&rt->headphone_notify.work); |
111 | cancel_delayed_work(&rt->line_in_notify.work); | 111 | cancel_delayed_work_sync(&rt->line_in_notify.work); |
112 | cancel_delayed_work(&rt->line_out_notify.work); | 112 | cancel_delayed_work_sync(&rt->line_out_notify.work); |
113 | flush_scheduled_work(); | ||
114 | 113 | ||
115 | mutex_destroy(&rt->headphone_notify.mutex); | 114 | mutex_destroy(&rt->headphone_notify.mutex); |
116 | mutex_destroy(&rt->line_in_notify.mutex); | 115 | mutex_destroy(&rt->line_in_notify.mutex); |