diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-08 13:03:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-08 13:03:52 -0400 |
commit | 132d68d37d33f1d0b9c1f507c8b4d64c27ecec8a (patch) | |
tree | b3c05972e5579e1574873fe745fb1358c62a269c /drivers/phy/phy-core.c | |
parent | 80f232121b69cc69a31ccb2b38c1665d770b0710 (diff) | |
parent | 3515468a87a47781f6af818773650513ff14656a (diff) |
Merge tag 'usb-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB/PHY updates from Greg KH:
"Here is the big set of USB and PHY driver patches for 5.2-rc1
There is the usual set of:
- USB gadget updates
- PHY driver updates and additions
- USB serial driver updates and fixes
- typec updates and new chips supported
- mtu3 driver updates
- xhci driver updates
- other tiny driver updates
Nothing really interesting, just constant forward progress.
All of these have been in linux-next for a while with no reported
issues. The usb-gadget and usb-serial trees were merged a bit "late",
but both of them had been in linux-next before they got merged here
last Friday"
* tag 'usb-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (206 commits)
USB: serial: f81232: implement break control
USB: serial: f81232: add high baud rate support
USB: serial: f81232: clear overrun flag
USB: serial: f81232: fix interrupt worker not stop
usb: dwc3: Rename DWC3_DCTL_LPM_ERRATA
usb: dwc3: Fix default lpm_nyet_threshold value
usb: dwc3: debug: Print GET_STATUS(device) tracepoint
usb: dwc3: Do core validation early on probe
usb: dwc3: gadget: Set lpm_capable
usb: gadget: atmel: tie wake lock to running clock
usb: gadget: atmel: support USB suspend
usb: gadget: atmel_usba_udc: simplify setting of interrupt-enabled mask
dwc2: gadget: Fix completed transfer size calculation in DDMA
usb: dwc2: Set lpm mode parameters depend on HW configuration
usb: dwc2: Fix channel disable flow
usb: dwc2: Set actual frame number for completed ISOC transfer
usb: gadget: do not use __constant_cpu_to_le16
usb: dwc2: gadget: Increase descriptors count for ISOC's
usb: introduce usb_ep_type_string() function
usb: dwc3: move synchronize_irq() out of the spinlock protected block
...
Diffstat (limited to 'drivers/phy/phy-core.c')
-rw-r--r-- | drivers/phy/phy-core.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c index cb38f6e8614c..c147ba843f0b 100644 --- a/drivers/phy/phy-core.c +++ b/drivers/phy/phy-core.c | |||
@@ -384,10 +384,16 @@ int phy_reset(struct phy *phy) | |||
384 | if (!phy || !phy->ops->reset) | 384 | if (!phy || !phy->ops->reset) |
385 | return 0; | 385 | return 0; |
386 | 386 | ||
387 | ret = phy_pm_runtime_get_sync(phy); | ||
388 | if (ret < 0 && ret != -ENOTSUPP) | ||
389 | return ret; | ||
390 | |||
387 | mutex_lock(&phy->mutex); | 391 | mutex_lock(&phy->mutex); |
388 | ret = phy->ops->reset(phy); | 392 | ret = phy->ops->reset(phy); |
389 | mutex_unlock(&phy->mutex); | 393 | mutex_unlock(&phy->mutex); |
390 | 394 | ||
395 | phy_pm_runtime_put(phy); | ||
396 | |||
391 | return ret; | 397 | return ret; |
392 | } | 398 | } |
393 | EXPORT_SYMBOL_GPL(phy_reset); | 399 | EXPORT_SYMBOL_GPL(phy_reset); |
@@ -564,6 +570,11 @@ void phy_put(struct phy *phy) | |||
564 | if (!phy || IS_ERR(phy)) | 570 | if (!phy || IS_ERR(phy)) |
565 | return; | 571 | return; |
566 | 572 | ||
573 | mutex_lock(&phy->mutex); | ||
574 | if (phy->ops->release) | ||
575 | phy->ops->release(phy); | ||
576 | mutex_unlock(&phy->mutex); | ||
577 | |||
567 | module_put(phy->ops->owner); | 578 | module_put(phy->ops->owner); |
568 | put_device(&phy->dev); | 579 | put_device(&phy->dev); |
569 | } | 580 | } |