net: airoha: honor reset return value in airoha_hw_init()
authorLorenzo Bianconi <lorenzo@kernel.org>
Sat, 3 Aug 2024 15:50:50 +0000 (17:50 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 6 Aug 2024 19:15:29 +0000 (12:15 -0700)
Take into account return value from reset_control_bulk_assert and
reset_control_bulk_deassert routines in airoha_hw_init().

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/f49dc04a87653e0155f4fab3e3eb584785c8ad6a.1722699555.git.lorenzo@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mediatek/airoha_eth.c

index db4267225fa499a03116d2eb946df0b812f552d5..1fb46db0c1e9a0840eff0755648e89d71bf4687a 100644 (file)
@@ -2071,13 +2071,21 @@ static int airoha_hw_init(struct platform_device *pdev,
        int err, i;
 
        /* disable xsi */
-       reset_control_bulk_assert(ARRAY_SIZE(eth->xsi_rsts), eth->xsi_rsts);
+       err = reset_control_bulk_assert(ARRAY_SIZE(eth->xsi_rsts),
+                                       eth->xsi_rsts);
+       if (err)
+               return err;
+
+       err = reset_control_bulk_assert(ARRAY_SIZE(eth->rsts), eth->rsts);
+       if (err)
+               return err;
 
-       reset_control_bulk_assert(ARRAY_SIZE(eth->rsts), eth->rsts);
-       msleep(20);
-       reset_control_bulk_deassert(ARRAY_SIZE(eth->rsts), eth->rsts);
        msleep(20);
+       err = reset_control_bulk_deassert(ARRAY_SIZE(eth->rsts), eth->rsts);
+       if (err)
+               return err;
 
+       msleep(20);
        err = airoha_fe_init(eth);
        if (err)
                return err;