* [PATCH] PCI/keystone: check return value of devm_phy_get with EPROBE_DEFER @ 2016-03-07 4:32 Shawn Lin 2016-03-11 18:38 ` Bjorn Helgaas 0 siblings, 1 reply; 3+ messages in thread From: Shawn Lin @ 2016-03-07 4:32 UTC (permalink / raw) To: Murali Karicheri, Bjorn Helgaas; +Cc: linux-pci, linux-kernel, Shawn Lin If the return value of devm_phy_get is EPROBE_DEFER, we should defer probing the driver. Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> --- drivers/pci/host/pci-keystone.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/pci/host/pci-keystone.c b/drivers/pci/host/pci-keystone.c index 0aa81bd..42af6ac 100644 --- a/drivers/pci/host/pci-keystone.c +++ b/drivers/pci/host/pci-keystone.c @@ -363,6 +363,8 @@ static int __init ks_pcie_probe(struct platform_device *pdev) ret = phy_init(phy); if (ret < 0) return ret; + } else if (PTR_ERR(phy) == -EPROBE_DEFER) { + return PTR_ERR(phy); } /* index 2 is to read PCI DEVICE_ID */ -- 2.3.7 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] PCI/keystone: check return value of devm_phy_get with EPROBE_DEFER 2016-03-07 4:32 [PATCH] PCI/keystone: check return value of devm_phy_get with EPROBE_DEFER Shawn Lin @ 2016-03-11 18:38 ` Bjorn Helgaas 2016-03-11 23:33 ` Bjorn Helgaas 0 siblings, 1 reply; 3+ messages in thread From: Bjorn Helgaas @ 2016-03-11 18:38 UTC (permalink / raw) To: Shawn Lin; +Cc: Murali Karicheri, Bjorn Helgaas, linux-pci, linux-kernel On Mon, Mar 07, 2016 at 12:32:21PM +0800, Shawn Lin wrote: > If the return value of devm_phy_get is EPROBE_DEFER, we should > defer probing the driver. > > Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> Applied to pci/host-keystone for v4.6 with the following changelog. Thanks, Shawn! PCI: keystone: Defer probing if devm_phy_get() returns -EPROBE_DEFER A SerDes PHY is optional, so if devm_phy_get() doesn't find one at all, that's fine. But if devm_phy_get() finds a PHY that doesn't have a driver yet, it returns -EPROBE_DEFER. In that case, defer probing the Keystone driver. We may be able to load it later after a PHY driver is loaded. [bhelgaas: changelog] Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> > --- > > drivers/pci/host/pci-keystone.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/pci/host/pci-keystone.c b/drivers/pci/host/pci-keystone.c > index 0aa81bd..42af6ac 100644 > --- a/drivers/pci/host/pci-keystone.c > +++ b/drivers/pci/host/pci-keystone.c > @@ -363,6 +363,8 @@ static int __init ks_pcie_probe(struct platform_device *pdev) > ret = phy_init(phy); > if (ret < 0) > return ret; > + } else if (PTR_ERR(phy) == -EPROBE_DEFER) { > + return PTR_ERR(phy); > } > > /* index 2 is to read PCI DEVICE_ID */ > -- > 2.3.7 > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-pci" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] PCI/keystone: check return value of devm_phy_get with EPROBE_DEFER 2016-03-11 18:38 ` Bjorn Helgaas @ 2016-03-11 23:33 ` Bjorn Helgaas 0 siblings, 0 replies; 3+ messages in thread From: Bjorn Helgaas @ 2016-03-11 23:33 UTC (permalink / raw) To: Shawn Lin; +Cc: Murali Karicheri, Bjorn Helgaas, linux-pci, linux-kernel On Fri, Mar 11, 2016 at 12:38:23PM -0600, Bjorn Helgaas wrote: > On Mon, Mar 07, 2016 at 12:32:21PM +0800, Shawn Lin wrote: > > If the return value of devm_phy_get is EPROBE_DEFER, we should > > defer probing the driver. > > > > Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> > > Applied to pci/host-keystone for v4.6 with the following changelog. > Thanks, Shawn! > > PCI: keystone: Defer probing if devm_phy_get() returns -EPROBE_DEFER > > A SerDes PHY is optional, so if devm_phy_get() doesn't find one at all, > that's fine. But if devm_phy_get() finds a PHY that doesn't have a driver > yet, it returns -EPROBE_DEFER. In that case, defer probing the Keystone > driver. We may be able to load it later after a PHY driver is loaded. > > [bhelgaas: changelog] > Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> > Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> I meant to include the patch, too, because I tweaked it slightly to try to make it easier to read. Here's what I applied: diff --git a/drivers/pci/host/pci-keystone.c b/drivers/pci/host/pci-keystone.c index 0aa81bd..cd70345 100644 --- a/drivers/pci/host/pci-keystone.c +++ b/drivers/pci/host/pci-keystone.c @@ -359,6 +359,9 @@ static int __init ks_pcie_probe(struct platform_device *pdev) /* initialize SerDes Phy if present */ phy = devm_phy_get(dev, "pcie-phy"); + if (PTR_ERR_OR_ZERO(phy) == -EPROBE_DEFER) + return PTR_ERR(phy); + if (!IS_ERR_OR_NULL(phy)) { ret = phy_init(phy); if (ret < 0) > > > --- > > > > drivers/pci/host/pci-keystone.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/pci/host/pci-keystone.c b/drivers/pci/host/pci-keystone.c > > index 0aa81bd..42af6ac 100644 > > --- a/drivers/pci/host/pci-keystone.c > > +++ b/drivers/pci/host/pci-keystone.c > > @@ -363,6 +363,8 @@ static int __init ks_pcie_probe(struct platform_device *pdev) > > ret = phy_init(phy); > > if (ret < 0) > > return ret; > > + } else if (PTR_ERR(phy) == -EPROBE_DEFER) { > > + return PTR_ERR(phy); > > } > > > > /* index 2 is to read PCI DEVICE_ID */ > > -- > > 2.3.7 > > > > > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-pci" in > > the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- > To unsubscribe from this list: send the line "unsubscribe linux-pci" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-03-11 23:33 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-03-07 4:32 [PATCH] PCI/keystone: check return value of devm_phy_get with EPROBE_DEFER Shawn Lin 2016-03-11 18:38 ` Bjorn Helgaas 2016-03-11 23:33 ` Bjorn Helgaas
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).