All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Revert "phy: cadence-torrent: Do not configure SERDES if it's already configured"
@ 2021-11-26  5:06 ` Li Chen
  0 siblings, 0 replies; 10+ messages in thread
From: Li Chen @ 2021-11-26  5:06 UTC (permalink / raw)
  To: Kishon Vijay Abraham I, Vinod Koul, Philipp Zabel,
	Swapnil Jakhade, linux-phy, linux-kernel
  Cc: Dan Carpenter

This reverts commit
b69d39f68419("phy: cadence-torrent: Do not configure SERDES if it's already configured")

our soc will hang on any regmap field read before reset.

Signed-off-by: Li Chen <lchen@ambarella.com>
---
 drivers/phy/cadence/phy-cadence-torrent.c | 31 +++++++----------------
 1 file changed, 9 insertions(+), 22 deletions(-)

diff --git a/drivers/phy/cadence/phy-cadence-torrent.c b/drivers/phy/cadence/phy-cadence-torrent.c
index 415ace64adc5c..e57e0b1523aff 100644
--- a/drivers/phy/cadence/phy-cadence-torrent.c
+++ b/drivers/phy/cadence/phy-cadence-torrent.c
@@ -2031,11 +2031,6 @@ static int cdns_torrent_noop_phy_on(struct phy *phy)
 	return 0;
 }
 
-static const struct phy_ops noop_ops = {
-	.power_on	= cdns_torrent_noop_phy_on,
-	.owner		= THIS_MODULE,
-};
-
 static
 int cdns_torrent_phy_configure_multilink(struct cdns_torrent_phy *cdns_phy)
 {
@@ -2282,7 +2277,6 @@ static int cdns_torrent_phy_probe(struct platform_device *pdev)
 	struct device_node *child;
 	int ret, subnodes, node = 0, i;
 	u32 total_num_lanes = 0;
-	int already_configured;
 	u8 init_dp_regmap = 0;
 	u32 phy_type;
 
@@ -2321,20 +2315,16 @@ static int cdns_torrent_phy_probe(struct platform_device *pdev)
 	if (ret)
 		return ret;
 
-	regmap_field_read(cdns_phy->phy_pma_cmn_ctrl_1, &already_configured);
-
-	if (!already_configured) {
-		ret = cdns_torrent_reset(cdns_phy);
-		if (ret)
-			goto clk_cleanup;
+	ret = cdns_torrent_reset(cdns_phy);
+	if (ret)
+		goto clk_cleanup;
 
-		ret = cdns_torrent_clk(cdns_phy);
-		if (ret)
-			goto clk_cleanup;
+	ret = cdns_torrent_clk(cdns_phy);
+	if (ret)
+		goto clk_cleanup;
 
 		/* Enable APB */
-		reset_control_deassert(cdns_phy->apb_rst);
-	}
+	reset_control_deassert(cdns_phy->apb_rst);
 
 	for_each_available_child_of_node(dev->of_node, child) {
 		struct phy *gphy;
@@ -2404,10 +2394,7 @@ static int cdns_torrent_phy_probe(struct platform_device *pdev)
 		of_property_read_u32(child, "cdns,ssc-mode",
 				     &cdns_phy->phys[node].ssc_mode);
 
-		if (!already_configured)
-			gphy = devm_phy_create(dev, child, &cdns_torrent_phy_ops);
-		else
-			gphy = devm_phy_create(dev, child, &noop_ops);
+		gphy = devm_phy_create(dev, child, &cdns_torrent_phy_ops);
 		if (IS_ERR(gphy)) {
 			ret = PTR_ERR(gphy);
 			goto put_child;
@@ -2490,7 +2477,7 @@ static int cdns_torrent_phy_probe(struct platform_device *pdev)
 		goto put_lnk_rst;
 	}
 
-	if (cdns_phy->nsubnodes > 1 && !already_configured) {
+	if (cdns_phy->nsubnodes > 1) {
 		ret = cdns_torrent_phy_configure_multilink(cdns_phy);
 		if (ret)
 			goto put_lnk_rst;
-- 
2.33.1
 

**********************************************************************
This email and attachments contain Ambarella Proprietary and/or Confidential Information and is intended solely for the use of the individual(s) to whom it is addressed. Any unauthorized review, use, disclosure, distribute, copy, or print is prohibited. If you are not an intended recipient, please contact the sender by reply email and destroy all copies of the original message. Thank you.

-- 
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-12-31  8:10 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-26  5:06 [PATCH] Revert "phy: cadence-torrent: Do not configure SERDES if it's already configured" Li Chen
2021-11-26  5:06 ` Li Chen
2021-12-23  5:27 ` Vinod Koul
2021-12-23  5:27   ` Vinod Koul
2021-12-23  6:27   ` [EXT] " Li Chen
2021-12-23  6:27     ` Li Chen
2021-12-23 12:44     ` Vinod Koul
2021-12-23 12:44       ` Vinod Koul
2021-12-31  8:10       ` Li Chen
2021-12-31  8:10         ` Li Chen

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.