From: Thierry Reding <thierry.reding@gmail.com>
To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Andrew Murray <amurray@thegoodpenguin.co.uk>,
Bjorn Helgaas <bhelgaas@google.com>,
Jon Hunter <jonathanh@nvidia.com>,
Vidya Sagar <vidyas@nvidia.com>,
linux-pci@vger.kernel.org, linux-tegra@vger.kernel.org
Subject: Re: [PATCH] PCI: tegra: Print -EPROBE_DEFER error message at debug level
Date: Mon, 23 Mar 2020 14:34:56 +0100 [thread overview]
Message-ID: <20200323133456.GG3883508@ulmo> (raw)
In-Reply-To: <20200319180529.GB7433@e121166-lin.cambridge.arm.com>
[-- Attachment #1: Type: text/plain, Size: 4140 bytes --]
On Thu, Mar 19, 2020 at 06:05:30PM +0000, Lorenzo Pieralisi wrote:
> On Thu, Mar 19, 2020 at 02:12:30PM +0100, Thierry Reding wrote:
> > From: Thierry Reding <treding@nvidia.com>
> >
> > Probe deferral is an expected error condition that will usually be
> > recovered from. Print such error messages at debug level to make them
> > available for diagnostic purposes when building with debugging enabled
> > and hide them otherwise to not spam the kernel log with them.
> >
> > Signed-off-by: Thierry Reding <treding@nvidia.com>
> > ---
> > drivers/pci/controller/dwc/pcie-tegra194.c | 42 ++++++++++++++++++----
> > 1 file changed, 35 insertions(+), 7 deletions(-)
>
> Hi Thierry,
>
> what tree/branch is it based on ? I assume it may depend on some
> patches queued in one of my branches so please let me know and
> I will apply accordingly.
Hi Lorenzo,
This should apply on top of commit 5b645b7fade9 ("PCI: tegra: Add
support for PCIe endpoint mode in Tegra194") which is currently in
linux-next.
Looking at your "pci" tree, that commit seems to be in a branch
called pci/endpoint, though the equivalent commit there has a slightly
different SHA:
f4746b0ccef9 ("PCI: tegra: Add support for PCIe endpoint mode in Tegra194")
git range-diff shows that the only difference is that in the patch in
linux-next there are a couple of additional exported symbols that are
not in your pci/endpoint branch. That shouldn't be relevant, though,
since this patch touches another area of the code, so applying this to
your pci/endpoint branch should work.
Thierry
> > diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
> > index 97d3f3db1020..e4870fa6ce9c 100644
> > --- a/drivers/pci/controller/dwc/pcie-tegra194.c
> > +++ b/drivers/pci/controller/dwc/pcie-tegra194.c
> > @@ -1159,17 +1159,31 @@ static int tegra_pcie_dw_parse_dt(struct tegra_pcie_dw *pcie)
> > /* Endpoint mode specific DT entries */
> > pcie->pex_rst_gpiod = devm_gpiod_get(pcie->dev, "reset", GPIOD_IN);
> > if (IS_ERR(pcie->pex_rst_gpiod)) {
> > - dev_err(pcie->dev, "Failed to get PERST GPIO: %ld\n",
> > - PTR_ERR(pcie->pex_rst_gpiod));
> > - return PTR_ERR(pcie->pex_rst_gpiod);
> > + int err = PTR_ERR(pcie->pex_rst_gpiod);
> > + const char *level = KERN_ERR;
> > +
> > + if (err == -EPROBE_DEFER)
> > + level = KERN_DEBUG;
> > +
> > + dev_printk(level, pcie->dev,
> > + dev_fmt("Failed to get PERST GPIO: %d\n"),
> > + err);
> > + return err;
> > }
> >
> > pcie->pex_refclk_sel_gpiod = devm_gpiod_get(pcie->dev,
> > "nvidia,refclk-select",
> > GPIOD_OUT_HIGH);
> > if (IS_ERR(pcie->pex_refclk_sel_gpiod)) {
> > - dev_info(pcie->dev, "Failed to get REFCLK select GPIOs: %ld\n",
> > - PTR_ERR(pcie->pex_refclk_sel_gpiod));
> > + int err = PTR_ERR(pcie->pex_refclk_sel_gpiod);
> > + const char *level = KERN_ERR;
> > +
> > + if (err == -EPROBE_DEFER)
> > + level = KERN_DEBUG;
> > +
> > + dev_printk(level, pcie->dev,
> > + dev_fmt("Failed to get REFCLK select GPIOs: %d\n"),
> > + err);
> > pcie->pex_refclk_sel_gpiod = NULL;
> > }
> >
> > @@ -2058,13 +2072,27 @@ static int tegra_pcie_dw_probe(struct platform_device *pdev)
> >
> > ret = tegra_pcie_dw_parse_dt(pcie);
> > if (ret < 0) {
> > - dev_err(dev, "Failed to parse device tree: %d\n", ret);
> > + const char *level = KERN_ERR;
> > +
> > + if (ret == -EPROBE_DEFER)
> > + level = KERN_DEBUG;
> > +
> > + dev_printk(level, dev,
> > + dev_fmt("Failed to parse device tree: %d\n"),
> > + ret);
> > return ret;
> > }
> >
> > ret = tegra_pcie_get_slot_regulators(pcie);
> > if (ret < 0) {
> > - dev_err(dev, "Failed to get slot regulators: %d\n", ret);
> > + const char *level = KERN_ERR;
> > +
> > + if (ret == -EPROBE_DEFER)
> > + level = KERN_DEBUG;
> > +
> > + dev_printk(level, dev,
> > + dev_fmt("Failed to get slot regulators: %d\n"),
> > + ret);
> > return ret;
> > }
> >
> > --
> > 2.24.1
> >
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Thierry Reding <thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Lorenzo Pieralisi <lorenzo.pieralisi-5wv7dgnIgG8@public.gmane.org>
Cc: Andrew Murray
<amurray-tUaQ5FxYRYX4aQPF92CzsNBc4/FLrbF6@public.gmane.org>,
Bjorn Helgaas <bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
Vidya Sagar <vidyas-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH] PCI: tegra: Print -EPROBE_DEFER error message at debug level
Date: Mon, 23 Mar 2020 14:34:56 +0100 [thread overview]
Message-ID: <20200323133456.GG3883508@ulmo> (raw)
In-Reply-To: <20200319180529.GB7433-LhTu/34fCX3ZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 4198 bytes --]
On Thu, Mar 19, 2020 at 06:05:30PM +0000, Lorenzo Pieralisi wrote:
> On Thu, Mar 19, 2020 at 02:12:30PM +0100, Thierry Reding wrote:
> > From: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> >
> > Probe deferral is an expected error condition that will usually be
> > recovered from. Print such error messages at debug level to make them
> > available for diagnostic purposes when building with debugging enabled
> > and hide them otherwise to not spam the kernel log with them.
> >
> > Signed-off-by: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
> > ---
> > drivers/pci/controller/dwc/pcie-tegra194.c | 42 ++++++++++++++++++----
> > 1 file changed, 35 insertions(+), 7 deletions(-)
>
> Hi Thierry,
>
> what tree/branch is it based on ? I assume it may depend on some
> patches queued in one of my branches so please let me know and
> I will apply accordingly.
Hi Lorenzo,
This should apply on top of commit 5b645b7fade9 ("PCI: tegra: Add
support for PCIe endpoint mode in Tegra194") which is currently in
linux-next.
Looking at your "pci" tree, that commit seems to be in a branch
called pci/endpoint, though the equivalent commit there has a slightly
different SHA:
f4746b0ccef9 ("PCI: tegra: Add support for PCIe endpoint mode in Tegra194")
git range-diff shows that the only difference is that in the patch in
linux-next there are a couple of additional exported symbols that are
not in your pci/endpoint branch. That shouldn't be relevant, though,
since this patch touches another area of the code, so applying this to
your pci/endpoint branch should work.
Thierry
> > diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
> > index 97d3f3db1020..e4870fa6ce9c 100644
> > --- a/drivers/pci/controller/dwc/pcie-tegra194.c
> > +++ b/drivers/pci/controller/dwc/pcie-tegra194.c
> > @@ -1159,17 +1159,31 @@ static int tegra_pcie_dw_parse_dt(struct tegra_pcie_dw *pcie)
> > /* Endpoint mode specific DT entries */
> > pcie->pex_rst_gpiod = devm_gpiod_get(pcie->dev, "reset", GPIOD_IN);
> > if (IS_ERR(pcie->pex_rst_gpiod)) {
> > - dev_err(pcie->dev, "Failed to get PERST GPIO: %ld\n",
> > - PTR_ERR(pcie->pex_rst_gpiod));
> > - return PTR_ERR(pcie->pex_rst_gpiod);
> > + int err = PTR_ERR(pcie->pex_rst_gpiod);
> > + const char *level = KERN_ERR;
> > +
> > + if (err == -EPROBE_DEFER)
> > + level = KERN_DEBUG;
> > +
> > + dev_printk(level, pcie->dev,
> > + dev_fmt("Failed to get PERST GPIO: %d\n"),
> > + err);
> > + return err;
> > }
> >
> > pcie->pex_refclk_sel_gpiod = devm_gpiod_get(pcie->dev,
> > "nvidia,refclk-select",
> > GPIOD_OUT_HIGH);
> > if (IS_ERR(pcie->pex_refclk_sel_gpiod)) {
> > - dev_info(pcie->dev, "Failed to get REFCLK select GPIOs: %ld\n",
> > - PTR_ERR(pcie->pex_refclk_sel_gpiod));
> > + int err = PTR_ERR(pcie->pex_refclk_sel_gpiod);
> > + const char *level = KERN_ERR;
> > +
> > + if (err == -EPROBE_DEFER)
> > + level = KERN_DEBUG;
> > +
> > + dev_printk(level, pcie->dev,
> > + dev_fmt("Failed to get REFCLK select GPIOs: %d\n"),
> > + err);
> > pcie->pex_refclk_sel_gpiod = NULL;
> > }
> >
> > @@ -2058,13 +2072,27 @@ static int tegra_pcie_dw_probe(struct platform_device *pdev)
> >
> > ret = tegra_pcie_dw_parse_dt(pcie);
> > if (ret < 0) {
> > - dev_err(dev, "Failed to parse device tree: %d\n", ret);
> > + const char *level = KERN_ERR;
> > +
> > + if (ret == -EPROBE_DEFER)
> > + level = KERN_DEBUG;
> > +
> > + dev_printk(level, dev,
> > + dev_fmt("Failed to parse device tree: %d\n"),
> > + ret);
> > return ret;
> > }
> >
> > ret = tegra_pcie_get_slot_regulators(pcie);
> > if (ret < 0) {
> > - dev_err(dev, "Failed to get slot regulators: %d\n", ret);
> > + const char *level = KERN_ERR;
> > +
> > + if (ret == -EPROBE_DEFER)
> > + level = KERN_DEBUG;
> > +
> > + dev_printk(level, dev,
> > + dev_fmt("Failed to get slot regulators: %d\n"),
> > + ret);
> > return ret;
> > }
> >
> > --
> > 2.24.1
> >
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2020-03-23 13:35 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-19 13:12 [PATCH] PCI: tegra: Print -EPROBE_DEFER error message at debug level Thierry Reding
2020-03-19 13:12 ` Thierry Reding
2020-03-19 17:04 ` Vidya Sagar
2020-03-19 17:04 ` Vidya Sagar
2020-03-19 18:05 ` Lorenzo Pieralisi
2020-03-19 18:05 ` Lorenzo Pieralisi
2020-03-23 13:34 ` Thierry Reding [this message]
2020-03-23 13:34 ` Thierry Reding
2020-03-23 17:21 ` Lorenzo Pieralisi
2020-03-23 17:21 ` Lorenzo Pieralisi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200323133456.GG3883508@ulmo \
--to=thierry.reding@gmail.com \
--cc=amurray@thegoodpenguin.co.uk \
--cc=bhelgaas@google.com \
--cc=jonathanh@nvidia.com \
--cc=linux-pci@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=vidyas@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.