From: "Krzysztof Wilczyński" <kw@linux.com>
To: Richard Zhu <hongxing.zhu@nxp.com>
Cc: l.stach@pengutronix.de, bhelgaas@google.com,
lorenzo.pieralisi@arm.com, marcel.ziswiler@toradex.com,
tharvey@gateworks.com, kishon@ti.com, vkoul@kernel.org,
robh@kernel.org, galak@kernel.crashing.org, shawnguo@kernel.org,
linux-phy@lists.infradead.org, devicetree@vger.kernel.org,
linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, kernel@pengutronix.de,
linux-imx@nxp.com
Subject: Re: [PATCH v7 8/8] PCI: imx: Add the imx8mm pcie support
Date: Thu, 16 Dec 2021 17:51:47 +0100 [thread overview]
Message-ID: <Ybtuo0CzfUhoJwsT@rocinante> (raw)
In-Reply-To: <1638432158-4119-9-git-send-email-hongxing.zhu@nxp.com>
Hi Richard,
Apologies for a very late review! Especially since Lorenzo already took
patches as per:
https://lore.kernel.org/linux-pci/163965080404.20006.5241609551643501749.b4-ty@arm.com/
However, perhaps it's not too late.
[...]
> @@ -446,6 +452,13 @@ static int imx6_pcie_enable_ref_clk(struct imx6_pcie *imx6_pcie)
> break;
> case IMX7D:
> break;
> + case IMX8MM:
> + ret = clk_prepare_enable(imx6_pcie->pcie_aux);
> + if (ret) {
> + dev_err(dev, "unable to enable pcie_aux clock\n");
> + break;
> + }
> + break;
You can drop the inner break, it wouldn't do much here, unless this was
intended to be a return?
> @@ -538,6 +559,10 @@ static void imx6_pcie_deassert_core_reset(struct imx6_pcie *imx6_pcie)
> case IMX8MQ:
> reset_control_deassert(imx6_pcie->pciephy_reset);
> break;
> + case IMX8MM:
> + if (phy_init(imx6_pcie->phy) != 0)
> + dev_err(dev, "Waiting for PHY ready timeout!\n");
> + break;
If the above, you can keep the same style as used throughout the file
already, so it would just simply be:
if (phy_init(imx6_pcie->phy))
Also, a nitpick: to be consistent with other such messages here, the error
message would be all lower-case letters.
[...]
> @@ -614,6 +639,8 @@ static void imx6_pcie_configure_type(struct imx6_pcie *imx6_pcie)
> static void imx6_pcie_init_phy(struct imx6_pcie *imx6_pcie)
> {
> switch (imx6_pcie->drvdata->variant) {
> + case IMX8MM:
> + break;
> case IMX8MQ:
Would it warrant a comment that adds a note there to this single bare
break? Perhaps this version is not support, lack this particular
functionality, etc.
[...]
> @@ -1089,10 +1122,39 @@ static int imx6_pcie_probe(struct platform_device *pdev)
> dev_err(dev, "Failed to get PCIE APPS reset control\n");
> return PTR_ERR(imx6_pcie->apps_reset);
> }
> + break;
> + case IMX8MM:
> + imx6_pcie->pcie_aux = devm_clk_get(dev, "pcie_aux");
> + if (IS_ERR(imx6_pcie->pcie_aux))
> + return dev_err_probe(dev, PTR_ERR(imx6_pcie->pcie_aux),
> + "pcie_aux clock source missing or invalid\n");
> + imx6_pcie->apps_reset = devm_reset_control_get_exclusive(dev,
> + "apps");
> + if (IS_ERR(imx6_pcie->apps_reset)) {
> + dev_err(dev, "Failed to get PCIE APPS reset control\n");
> + return PTR_ERR(imx6_pcie->apps_reset);
> + }
> +
> + imx6_pcie->phy = devm_phy_get(dev, "pcie-phy");
> + if (IS_ERR(imx6_pcie->phy)) {
> + if (PTR_ERR(imx6_pcie->phy) == -EPROBE_DEFER)
> + return -EPROBE_DEFER;
> + dev_err(dev, "Failed to get PCIE PHY\n");
> + return PTR_ERR(imx6_pcie->phy);
> + }
A question about handling of the -EPROBE_DEFER above: why not to use the
dev_err_probe() helper similarly to the code above and below? Would there
be something different preventing the use of dev_err_probe() here too?
> break;
> default:
> break;
> }
> + /* Don't fetch the pcie_phy clock, if it has abstract PHY driver */
> + if (imx6_pcie->phy == NULL) {
> + imx6_pcie->pcie_phy = devm_clk_get(dev, "pcie_phy");
> + if (IS_ERR(imx6_pcie->pcie_phy))
> + return dev_err_probe(dev, PTR_ERR(imx6_pcie->pcie_phy),
> + "pcie_phy clock source missing or invalid\n");
> + }
Thank you for another amazing patch!
Krzysztof
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
WARNING: multiple messages have this Message-ID (diff)
From: "Krzysztof Wilczyński" <kw@linux.com>
To: Richard Zhu <hongxing.zhu@nxp.com>
Cc: l.stach@pengutronix.de, bhelgaas@google.com,
lorenzo.pieralisi@arm.com, marcel.ziswiler@toradex.com,
tharvey@gateworks.com, kishon@ti.com, vkoul@kernel.org,
robh@kernel.org, galak@kernel.crashing.org, shawnguo@kernel.org,
linux-phy@lists.infradead.org, devicetree@vger.kernel.org,
linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, kernel@pengutronix.de,
linux-imx@nxp.com
Subject: Re: [PATCH v7 8/8] PCI: imx: Add the imx8mm pcie support
Date: Thu, 16 Dec 2021 17:51:47 +0100 [thread overview]
Message-ID: <Ybtuo0CzfUhoJwsT@rocinante> (raw)
In-Reply-To: <1638432158-4119-9-git-send-email-hongxing.zhu@nxp.com>
Hi Richard,
Apologies for a very late review! Especially since Lorenzo already took
patches as per:
https://lore.kernel.org/linux-pci/163965080404.20006.5241609551643501749.b4-ty@arm.com/
However, perhaps it's not too late.
[...]
> @@ -446,6 +452,13 @@ static int imx6_pcie_enable_ref_clk(struct imx6_pcie *imx6_pcie)
> break;
> case IMX7D:
> break;
> + case IMX8MM:
> + ret = clk_prepare_enable(imx6_pcie->pcie_aux);
> + if (ret) {
> + dev_err(dev, "unable to enable pcie_aux clock\n");
> + break;
> + }
> + break;
You can drop the inner break, it wouldn't do much here, unless this was
intended to be a return?
> @@ -538,6 +559,10 @@ static void imx6_pcie_deassert_core_reset(struct imx6_pcie *imx6_pcie)
> case IMX8MQ:
> reset_control_deassert(imx6_pcie->pciephy_reset);
> break;
> + case IMX8MM:
> + if (phy_init(imx6_pcie->phy) != 0)
> + dev_err(dev, "Waiting for PHY ready timeout!\n");
> + break;
If the above, you can keep the same style as used throughout the file
already, so it would just simply be:
if (phy_init(imx6_pcie->phy))
Also, a nitpick: to be consistent with other such messages here, the error
message would be all lower-case letters.
[...]
> @@ -614,6 +639,8 @@ static void imx6_pcie_configure_type(struct imx6_pcie *imx6_pcie)
> static void imx6_pcie_init_phy(struct imx6_pcie *imx6_pcie)
> {
> switch (imx6_pcie->drvdata->variant) {
> + case IMX8MM:
> + break;
> case IMX8MQ:
Would it warrant a comment that adds a note there to this single bare
break? Perhaps this version is not support, lack this particular
functionality, etc.
[...]
> @@ -1089,10 +1122,39 @@ static int imx6_pcie_probe(struct platform_device *pdev)
> dev_err(dev, "Failed to get PCIE APPS reset control\n");
> return PTR_ERR(imx6_pcie->apps_reset);
> }
> + break;
> + case IMX8MM:
> + imx6_pcie->pcie_aux = devm_clk_get(dev, "pcie_aux");
> + if (IS_ERR(imx6_pcie->pcie_aux))
> + return dev_err_probe(dev, PTR_ERR(imx6_pcie->pcie_aux),
> + "pcie_aux clock source missing or invalid\n");
> + imx6_pcie->apps_reset = devm_reset_control_get_exclusive(dev,
> + "apps");
> + if (IS_ERR(imx6_pcie->apps_reset)) {
> + dev_err(dev, "Failed to get PCIE APPS reset control\n");
> + return PTR_ERR(imx6_pcie->apps_reset);
> + }
> +
> + imx6_pcie->phy = devm_phy_get(dev, "pcie-phy");
> + if (IS_ERR(imx6_pcie->phy)) {
> + if (PTR_ERR(imx6_pcie->phy) == -EPROBE_DEFER)
> + return -EPROBE_DEFER;
> + dev_err(dev, "Failed to get PCIE PHY\n");
> + return PTR_ERR(imx6_pcie->phy);
> + }
A question about handling of the -EPROBE_DEFER above: why not to use the
dev_err_probe() helper similarly to the code above and below? Would there
be something different preventing the use of dev_err_probe() here too?
> break;
> default:
> break;
> }
> + /* Don't fetch the pcie_phy clock, if it has abstract PHY driver */
> + if (imx6_pcie->phy == NULL) {
> + imx6_pcie->pcie_phy = devm_clk_get(dev, "pcie_phy");
> + if (IS_ERR(imx6_pcie->pcie_phy))
> + return dev_err_probe(dev, PTR_ERR(imx6_pcie->pcie_phy),
> + "pcie_phy clock source missing or invalid\n");
> + }
Thank you for another amazing patch!
Krzysztof
WARNING: multiple messages have this Message-ID (diff)
From: "Krzysztof Wilczyński" <kw@linux.com>
To: Richard Zhu <hongxing.zhu@nxp.com>
Cc: l.stach@pengutronix.de, bhelgaas@google.com,
lorenzo.pieralisi@arm.com, marcel.ziswiler@toradex.com,
tharvey@gateworks.com, kishon@ti.com, vkoul@kernel.org,
robh@kernel.org, galak@kernel.crashing.org, shawnguo@kernel.org,
linux-phy@lists.infradead.org, devicetree@vger.kernel.org,
linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, kernel@pengutronix.de,
linux-imx@nxp.com
Subject: Re: [PATCH v7 8/8] PCI: imx: Add the imx8mm pcie support
Date: Thu, 16 Dec 2021 17:51:47 +0100 [thread overview]
Message-ID: <Ybtuo0CzfUhoJwsT@rocinante> (raw)
In-Reply-To: <1638432158-4119-9-git-send-email-hongxing.zhu@nxp.com>
Hi Richard,
Apologies for a very late review! Especially since Lorenzo already took
patches as per:
https://lore.kernel.org/linux-pci/163965080404.20006.5241609551643501749.b4-ty@arm.com/
However, perhaps it's not too late.
[...]
> @@ -446,6 +452,13 @@ static int imx6_pcie_enable_ref_clk(struct imx6_pcie *imx6_pcie)
> break;
> case IMX7D:
> break;
> + case IMX8MM:
> + ret = clk_prepare_enable(imx6_pcie->pcie_aux);
> + if (ret) {
> + dev_err(dev, "unable to enable pcie_aux clock\n");
> + break;
> + }
> + break;
You can drop the inner break, it wouldn't do much here, unless this was
intended to be a return?
> @@ -538,6 +559,10 @@ static void imx6_pcie_deassert_core_reset(struct imx6_pcie *imx6_pcie)
> case IMX8MQ:
> reset_control_deassert(imx6_pcie->pciephy_reset);
> break;
> + case IMX8MM:
> + if (phy_init(imx6_pcie->phy) != 0)
> + dev_err(dev, "Waiting for PHY ready timeout!\n");
> + break;
If the above, you can keep the same style as used throughout the file
already, so it would just simply be:
if (phy_init(imx6_pcie->phy))
Also, a nitpick: to be consistent with other such messages here, the error
message would be all lower-case letters.
[...]
> @@ -614,6 +639,8 @@ static void imx6_pcie_configure_type(struct imx6_pcie *imx6_pcie)
> static void imx6_pcie_init_phy(struct imx6_pcie *imx6_pcie)
> {
> switch (imx6_pcie->drvdata->variant) {
> + case IMX8MM:
> + break;
> case IMX8MQ:
Would it warrant a comment that adds a note there to this single bare
break? Perhaps this version is not support, lack this particular
functionality, etc.
[...]
> @@ -1089,10 +1122,39 @@ static int imx6_pcie_probe(struct platform_device *pdev)
> dev_err(dev, "Failed to get PCIE APPS reset control\n");
> return PTR_ERR(imx6_pcie->apps_reset);
> }
> + break;
> + case IMX8MM:
> + imx6_pcie->pcie_aux = devm_clk_get(dev, "pcie_aux");
> + if (IS_ERR(imx6_pcie->pcie_aux))
> + return dev_err_probe(dev, PTR_ERR(imx6_pcie->pcie_aux),
> + "pcie_aux clock source missing or invalid\n");
> + imx6_pcie->apps_reset = devm_reset_control_get_exclusive(dev,
> + "apps");
> + if (IS_ERR(imx6_pcie->apps_reset)) {
> + dev_err(dev, "Failed to get PCIE APPS reset control\n");
> + return PTR_ERR(imx6_pcie->apps_reset);
> + }
> +
> + imx6_pcie->phy = devm_phy_get(dev, "pcie-phy");
> + if (IS_ERR(imx6_pcie->phy)) {
> + if (PTR_ERR(imx6_pcie->phy) == -EPROBE_DEFER)
> + return -EPROBE_DEFER;
> + dev_err(dev, "Failed to get PCIE PHY\n");
> + return PTR_ERR(imx6_pcie->phy);
> + }
A question about handling of the -EPROBE_DEFER above: why not to use the
dev_err_probe() helper similarly to the code above and below? Would there
be something different preventing the use of dev_err_probe() here too?
> break;
> default:
> break;
> }
> + /* Don't fetch the pcie_phy clock, if it has abstract PHY driver */
> + if (imx6_pcie->phy == NULL) {
> + imx6_pcie->pcie_phy = devm_clk_get(dev, "pcie_phy");
> + if (IS_ERR(imx6_pcie->pcie_phy))
> + return dev_err_probe(dev, PTR_ERR(imx6_pcie->pcie_phy),
> + "pcie_phy clock source missing or invalid\n");
> + }
Thank you for another amazing patch!
Krzysztof
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-12-16 17:06 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-02 8:02 [PATCH v7 0/8] Add the imx8m pcie phy driver and imx8mm pcie support Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2021-12-02 8:02 ` [PATCH v7 1/8] dt-bindings: phy: phy-imx8-pcie: Add binding for the pad modes of imx8 pcie phy Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2021-12-14 14:33 ` Vinod Koul
2021-12-14 14:33 ` Vinod Koul
2021-12-14 14:33 ` Vinod Koul
2021-12-02 8:02 ` [PATCH v7 2/8] dt-bindings: phy: Add imx8 pcie phy driver support Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2021-12-14 14:33 ` Vinod Koul
2021-12-14 14:33 ` Vinod Koul
2021-12-14 14:33 ` Vinod Koul
2021-12-02 8:02 ` [PATCH v7 3/8] dt-bindings: imx6q-pcie: Add PHY phandles and name properties Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2021-12-02 8:02 ` [PATCH v7 4/8] arm64: dts: imx8mm: Add the pcie phy support Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2022-01-26 2:25 ` Shawn Guo
2022-01-26 2:25 ` Shawn Guo
2022-01-26 2:25 ` Shawn Guo
2021-12-02 8:02 ` [PATCH v7 5/8] phy: freescale: pcie: Initialize the imx8 pcie standalone phy driver Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2021-12-14 14:34 ` Vinod Koul
2021-12-14 14:34 ` Vinod Koul
2021-12-14 14:34 ` Vinod Koul
2021-12-29 12:39 ` Philip Molloy
2021-12-29 12:39 ` Philip Molloy
2021-12-29 12:39 ` Philip Molloy
2021-12-30 4:58 ` Hongxing Zhu
2021-12-30 4:58 ` Hongxing Zhu
2021-12-30 4:58 ` Hongxing Zhu
2022-01-02 0:25 ` Marcel Ziswiler
2022-01-02 0:25 ` Marcel Ziswiler
2022-01-02 0:25 ` Marcel Ziswiler
2021-12-02 8:02 ` [PATCH v7 6/8] arm64: dts: imx8mm: Add the pcie support Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2022-01-26 2:25 ` Shawn Guo
2022-01-26 2:25 ` Shawn Guo
2022-01-26 2:25 ` Shawn Guo
2021-12-02 8:02 ` [PATCH v7 7/8] arm64: dts: imx8mm-evk: Add the pcie support on imx8mm evk board Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2022-01-26 2:26 ` Shawn Guo
2022-01-26 2:26 ` Shawn Guo
2022-01-26 2:26 ` Shawn Guo
2021-12-02 8:02 ` [PATCH v7 8/8] PCI: imx: Add the imx8mm pcie support Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2021-12-02 8:02 ` Richard Zhu
2021-12-16 16:51 ` Krzysztof Wilczyński [this message]
2021-12-16 16:51 ` Krzysztof Wilczyński
2021-12-16 16:51 ` Krzysztof Wilczyński
2021-12-17 5:54 ` Hongxing Zhu
2021-12-17 5:54 ` Hongxing Zhu
2021-12-17 5:54 ` Hongxing Zhu
2021-12-23 11:49 ` Lorenzo Pieralisi
2021-12-23 11:49 ` Lorenzo Pieralisi
2021-12-23 11:49 ` Lorenzo Pieralisi
2021-12-24 2:09 ` Hongxing Zhu
2021-12-24 2:09 ` Hongxing Zhu
2021-12-24 2:09 ` Hongxing Zhu
2021-12-16 10:33 ` (subset) [PATCH v7 0/8] Add the imx8m pcie phy driver and " Lorenzo Pieralisi
2021-12-16 10:33 ` Lorenzo Pieralisi
2021-12-16 10:33 ` Lorenzo Pieralisi
2022-01-13 8:07 ` Marcel Ziswiler
2022-01-13 8:07 ` Marcel Ziswiler
2022-01-13 8:07 ` Marcel Ziswiler
2022-01-14 2:03 ` Hongxing Zhu
2022-01-14 2:03 ` Hongxing Zhu
2022-01-14 2:03 ` Hongxing Zhu
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=Ybtuo0CzfUhoJwsT@rocinante \
--to=kw@linux.com \
--cc=bhelgaas@google.com \
--cc=devicetree@vger.kernel.org \
--cc=galak@kernel.crashing.org \
--cc=hongxing.zhu@nxp.com \
--cc=kernel@pengutronix.de \
--cc=kishon@ti.com \
--cc=l.stach@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=marcel.ziswiler@toradex.com \
--cc=robh@kernel.org \
--cc=shawnguo@kernel.org \
--cc=tharvey@gateworks.com \
--cc=vkoul@kernel.org \
/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.