lkml.org 
[lkml]   [2021]   [Mar]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRE: [PATCH v6 02/13] phy: ti: j721e-wiz: Invoke wiz_init() before of_platform_device_create()
    Date


    > -----Original Message-----
    > From: Kishon Vijay Abraham I <kishon@ti.com>
    > Sent: Wednesday, March 10, 2021 9:16 PM
    > To: Kishon Vijay Abraham I <kishon@ti.com>; Vinod Koul
    > <vkoul@kernel.org>; Rob Herring <robh+dt@kernel.org>; Philipp Zabel
    > <p.zabel@pengutronix.de>; Swapnil Kashinath Jakhade
    > <sjakhade@cadence.com>
    > Cc: linux-kernel@vger.kernel.org; devicetree@vger.kernel.org; Lokesh Vutla
    > <lokeshvutla@ti.com>; stable@vger.kernel.org
    > Subject: [PATCH v6 02/13] phy: ti: j721e-wiz: Invoke wiz_init() before
    > of_platform_device_create()
    >
    > EXTERNAL MAIL
    >
    >
    > Invoke wiz_init() before configuring anything else in Sierra/Torrent
    > (invoked as part of of_platform_device_create()). wiz_init() resets the
    > SERDES device and any configuration done in the probe() of
    > Sierra/Torrent will be lost. In order to prevent SERDES configuration
    > from getting reset, invoke wiz_init() immediately before invoking
    > of_platform_device_create().
    >
    > Fixes: 091876cc355d ("phy: ti: j721e-wiz: Add support for WIZ module
    > present in TI J721E SoC")
    > Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
    > Cc: <stable@vger.kernel.org> # v5.10
    > ---
    > drivers/phy/ti/phy-j721e-wiz.c | 17 +++++++----------
    > 1 file changed, 7 insertions(+), 10 deletions(-)
    >

    Reviewed-by: Swapnil Jakhade <sjakhade@cadence.com>

    Thanks & regards,
    Swapnil

    > diff --git a/drivers/phy/ti/phy-j721e-wiz.c b/drivers/phy/ti/phy-j721e-wiz.c
    > index 995c7dbec77b..1bb73822f44a 100644
    > --- a/drivers/phy/ti/phy-j721e-wiz.c
    > +++ b/drivers/phy/ti/phy-j721e-wiz.c
    > @@ -1262,27 +1262,24 @@ static int wiz_probe(struct platform_device
    > *pdev)
    > goto err_get_sync;
    > }
    >
    > + ret = wiz_init(wiz);
    > + if (ret) {
    > + dev_err(dev, "WIZ initialization failed\n");
    > + goto err_wiz_init;
    > + }
    > +
    > serdes_pdev = of_platform_device_create(child_node, NULL, dev);
    > if (!serdes_pdev) {
    > dev_WARN(dev, "Unable to create SERDES platform
    > device\n");
    > ret = -ENOMEM;
    > - goto err_pdev_create;
    > - }
    > - wiz->serdes_pdev = serdes_pdev;
    > -
    > - ret = wiz_init(wiz);
    > - if (ret) {
    > - dev_err(dev, "WIZ initialization failed\n");
    > goto err_wiz_init;
    > }
    > + wiz->serdes_pdev = serdes_pdev;
    >
    > of_node_put(child_node);
    > return 0;
    >
    > err_wiz_init:
    > - of_platform_device_destroy(&serdes_pdev->dev, NULL);
    > -
    > -err_pdev_create:
    > wiz_clock_cleanup(wiz, node);
    >
    > err_get_sync:
    > --
    > 2.17.1

    \
     
     \ /
      Last update: 2021-03-15 06:48    [W:4.083 / U:0.188 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site