diff options
author | Tom Rini <trini@konsulko.com> | 2020-09-21 16:44:16 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2020-09-21 16:44:16 -0400 |
commit | 2512b3b88ba6b193c3cada7e29e386613e8f9a6b (patch) | |
tree | c5e7417d6f2bdeffca0e2f297826e66527061e66 /drivers | |
parent | 751b18b8a1b576aecf51faf22c2bb9e7ce70debd (diff) | |
parent | 93d3bc5f8d7ecbbeaa7b55f5c64528420bf10ad4 (diff) | |
download | u-boot-2512b3b88ba6b193c3cada7e29e386613e8f9a6b.tar.gz |
Merge branch '2020-09-14-generic-phy-error-trace' into nextWIP/21Sep2020-next
- Add error tracing messages to the generic PHY infrastructure
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/ata/dwc_ahci.c | 4 | ||||
-rw-r--r-- | drivers/phy/phy-uclass.c | 45 | ||||
-rw-r--r-- | drivers/usb/host/ehci-hcd.c | 8 | ||||
-rw-r--r-- | drivers/usb/host/ohci-generic.c | 8 | ||||
-rw-r--r-- | drivers/usb/musb-new/sunxi.c | 8 |
5 files changed, 54 insertions, 19 deletions
diff --git a/drivers/ata/dwc_ahci.c b/drivers/ata/dwc_ahci.c index 825fe57f85..ed0527c976 100644 --- a/drivers/ata/dwc_ahci.c +++ b/drivers/ata/dwc_ahci.c @@ -62,13 +62,13 @@ static int dwc_ahci_probe(struct udevice *dev) ret = generic_phy_init(&phy); if (ret) { - pr_err("unable to initialize the sata phy\n"); + pr_debug("unable to initialize the sata phy\n"); return ret; } ret = generic_phy_power_on(&phy); if (ret) { - pr_err("unable to power on the sata phy\n"); + pr_debug("unable to power on the sata phy\n"); return ret; } diff --git a/drivers/phy/phy-uclass.c b/drivers/phy/phy-uclass.c index db7f39cd0b..8f456f33d2 100644 --- a/drivers/phy/phy-uclass.c +++ b/drivers/phy/phy-uclass.c @@ -117,56 +117,91 @@ int generic_phy_get_by_name(struct udevice *dev, const char *phy_name, int generic_phy_init(struct phy *phy) { struct phy_ops const *ops; + int ret; if (!generic_phy_valid(phy)) return 0; ops = phy_dev_ops(phy->dev); + if (!ops->init) + return 0; + ret = ops->init(phy); + if (ret) + dev_err(phy->dev, "PHY: Failed to init %s: %d.\n", + phy->dev->name, ret); - return ops->init ? ops->init(phy) : 0; + return ret; } int generic_phy_reset(struct phy *phy) { struct phy_ops const *ops; + int ret; if (!generic_phy_valid(phy)) return 0; ops = phy_dev_ops(phy->dev); + if (!ops->reset) + return 0; + ret = ops->reset(phy); + if (ret) + dev_err(phy->dev, "PHY: Failed to reset %s: %d.\n", + phy->dev->name, ret); - return ops->reset ? ops->reset(phy) : 0; + return ret; } int generic_phy_exit(struct phy *phy) { struct phy_ops const *ops; + int ret; if (!generic_phy_valid(phy)) return 0; ops = phy_dev_ops(phy->dev); + if (!ops->exit) + return 0; + ret = ops->exit(phy); + if (ret) + dev_err(phy->dev, "PHY: Failed to exit %s: %d.\n", + phy->dev->name, ret); - return ops->exit ? ops->exit(phy) : 0; + return ret; } int generic_phy_power_on(struct phy *phy) { struct phy_ops const *ops; + int ret; if (!generic_phy_valid(phy)) return 0; ops = phy_dev_ops(phy->dev); + if (!ops->power_on) + return 0; + ret = ops->power_on(phy); + if (ret) + dev_err(phy->dev, "PHY: Failed to power on %s: %d.\n", + phy->dev->name, ret); - return ops->power_on ? ops->power_on(phy) : 0; + return ret; } int generic_phy_power_off(struct phy *phy) { struct phy_ops const *ops; + int ret; if (!generic_phy_valid(phy)) return 0; ops = phy_dev_ops(phy->dev); + if (!ops->power_off) + return 0; + ret = ops->power_off(phy); + if (ret) + dev_err(phy->dev, "PHY: Failed to power off %s: %d.\n", + phy->dev->name, ret); - return ops->power_off ? ops->power_off(phy) : 0; + return ret; } int generic_phy_get_bulk(struct udevice *dev, struct phy_bulk *bulk) diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index f79f06320b..8933f60843 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c @@ -1762,13 +1762,13 @@ int ehci_setup_phy(struct udevice *dev, struct phy *phy, int index) } else { ret = generic_phy_init(phy); if (ret) { - dev_err(dev, "failed to init usb phy\n"); + dev_dbg(dev, "failed to init usb phy\n"); return ret; } ret = generic_phy_power_on(phy); if (ret) { - dev_err(dev, "failed to power on usb phy\n"); + dev_dbg(dev, "failed to power on usb phy\n"); return generic_phy_exit(phy); } } @@ -1786,13 +1786,13 @@ int ehci_shutdown_phy(struct udevice *dev, struct phy *phy) if (generic_phy_valid(phy)) { ret = generic_phy_power_off(phy); if (ret) { - dev_err(dev, "failed to power off usb phy\n"); + dev_dbg(dev, "failed to power off usb phy\n"); return ret; } ret = generic_phy_exit(phy); if (ret) { - dev_err(dev, "failed to power off usb phy\n"); + dev_dbg(dev, "failed to power off usb phy\n"); return ret; } } diff --git a/drivers/usb/host/ohci-generic.c b/drivers/usb/host/ohci-generic.c index b84bf8ac0f..ed5e500b2c 100644 --- a/drivers/usb/host/ohci-generic.c +++ b/drivers/usb/host/ohci-generic.c @@ -41,13 +41,13 @@ static int ohci_setup_phy(struct udevice *dev, int index) } else { ret = generic_phy_init(&priv->phy); if (ret) { - dev_err(dev, "failed to init usb phy\n"); + dev_dbg(dev, "failed to init usb phy\n"); return ret; } ret = generic_phy_power_on(&priv->phy); if (ret) { - dev_err(dev, "failed to power on usb phy\n"); + dev_dbg(dev, "failed to power on usb phy\n"); return generic_phy_exit(&priv->phy); } } @@ -63,13 +63,13 @@ static int ohci_shutdown_phy(struct udevice *dev) if (generic_phy_valid(&priv->phy)) { ret = generic_phy_power_off(&priv->phy); if (ret) { - dev_err(dev, "failed to power off usb phy\n"); + dev_dbg(dev, "failed to power off usb phy\n"); return ret; } ret = generic_phy_exit(&priv->phy); if (ret) { - dev_err(dev, "failed to power off usb phy\n"); + dev_dbg(dev, "failed to power off usb phy\n"); return ret; } } diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c index 53c336fc3f..06a55bf6ee 100644 --- a/drivers/usb/musb-new/sunxi.c +++ b/drivers/usb/musb-new/sunxi.c @@ -257,7 +257,7 @@ static int sunxi_musb_enable(struct musb *musb) ret = generic_phy_power_on(&glue->phy); if (ret) { - pr_err("failed to power on USB PHY\n"); + pr_debug("failed to power on USB PHY\n"); return ret; } } @@ -281,7 +281,7 @@ static void sunxi_musb_disable(struct musb *musb) if (is_host_enabled(musb)) { ret = generic_phy_power_off(&glue->phy); if (ret) { - pr_err("failed to power off USB PHY\n"); + pr_debug("failed to power off USB PHY\n"); return; } } @@ -315,7 +315,7 @@ static int sunxi_musb_init(struct musb *musb) ret = generic_phy_init(&glue->phy); if (ret) { - dev_err(dev, "failed to init USB PHY\n"); + dev_dbg(dev, "failed to init USB PHY\n"); goto err_rst; } @@ -352,7 +352,7 @@ static int sunxi_musb_exit(struct musb *musb) if (generic_phy_valid(&glue->phy)) { ret = generic_phy_exit(&glue->phy); if (ret) { - dev_err(dev, "failed to power off usb phy\n"); + dev_dbg(dev, "failed to power off usb phy\n"); return ret; } } |