summaryrefslogtreecommitdiff
path: root/drivers/usb/gadget/function
diff options
context:
space:
mode:
authorVijayavardhan Vennapusa <vvreddy@codeaurora.org>2017-06-23 14:45:49 +0530
committerVijayavardhan Vennapusa <vvreddy@codeaurora.org>2017-06-23 14:45:49 +0530
commitb12f86c5b2b0dcf7146df895ef84cbd2180d3782 (patch)
treed2ade70783d97c267296e430edafc0b82c27170d /drivers/usb/gadget/function
parent85baaeb2e2d0e7c67bf4e5cc22d15e173d01b209 (diff)
USB: f_audio_source: Remove pm_qos request under non atomic context
Currently driver is removing pm_qos request after acquiring spinlock in pcm_close() callback. This could cause warning as pm_qos_remove_request() can sleep. Hence move removing pm_qos request before acquiring spin lock. Change-Id: I8e898934c4e83b80c994b2a293abbd920589ac62 Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
Diffstat (limited to 'drivers/usb/gadget/function')
-rw-r--r--drivers/usb/gadget/function/f_audio_source.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/usb/gadget/function/f_audio_source.c b/drivers/usb/gadget/function/f_audio_source.c
index 46be62b737f1..ec73b67096c5 100644
--- a/drivers/usb/gadget/function/f_audio_source.c
+++ b/drivers/usb/gadget/function/f_audio_source.c
@@ -776,11 +776,11 @@ static int audio_pcm_close(struct snd_pcm_substream *substream)
struct audio_dev *audio = substream->private_data;
unsigned long flags;
- spin_lock_irqsave(&audio->lock, flags);
-
/* Remove the QoS request */
pm_qos_remove_request(&audio->pm_qos);
+ spin_lock_irqsave(&audio->lock, flags);
+
audio->substream = NULL;
spin_unlock_irqrestore(&audio->lock, flags);