diff options
author | Andy Green <andy.green@linaro.org> | 2011-12-14 07:31:01 +0800 |
---|---|---|
committer | Andy Green <andy.green@linaro.org> | 2011-12-14 07:31:01 +0800 |
commit | 38c8f1814730c713b2d7c563e23d6fd788af0729 (patch) | |
tree | a9633c691b23ee649a6fba2a100a200b7a2ff5f1 | |
parent | 457b19d84cc1d28f84276d3a607c601c06df14ce (diff) |
musb protect mode store with rpm
Signed-off-by: Andy Green <andy.green@linaro.org>
-rw-r--r-- | drivers/usb/musb/musb_core.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c index 2d3f1edf37d..aa23a16593b 100644 --- a/drivers/usb/musb/musb_core.c +++ b/drivers/usb/musb/musb_core.c @@ -1663,6 +1663,8 @@ musb_mode_store(struct device *dev, struct device_attribute *attr, unsigned long flags; int status; + pm_runtime_get_sync(musb->controller); + spin_lock_irqsave(&musb->lock, flags); if (sysfs_streq(buf, "host")) status = musb_platform_set_mode(musb, MUSB_HOST); @@ -1674,6 +1676,8 @@ musb_mode_store(struct device *dev, struct device_attribute *attr, status = -EINVAL; spin_unlock_irqrestore(&musb->lock, flags); + pm_runtime_put(musb->controller); + return (status == 0) ? n : status; } static DEVICE_ATTR(mode, 0644, musb_mode_show, musb_mode_store); |