ed25ccb89dda1e1ba9e9c6686995325517bc51f5
[openwrt/staging/xback.git] /
1 From 63a796b4988c3dca83176a534890b510d44f105a Mon Sep 17 00:00:00 2001
2 From: Lorenzo Bianconi <lorenzo@kernel.org>
3 Date: Sat, 3 Aug 2024 17:50:50 +0200
4 Subject: [PATCH] net: airoha: honor reset return value in airoha_hw_init()
5
6 Take into account return value from reset_control_bulk_assert and
7 reset_control_bulk_deassert routines in airoha_hw_init().
8
9 Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
10 Reviewed-by: Simon Horman <horms@kernel.org>
11 Link: https://patch.msgid.link/f49dc04a87653e0155f4fab3e3eb584785c8ad6a.1722699555.git.lorenzo@kernel.org
12 Signed-off-by: Jakub Kicinski <kuba@kernel.org>
13 ---
14 drivers/net/ethernet/mediatek/airoha_eth.c | 16 ++++++++++++----
15 1 file changed, 12 insertions(+), 4 deletions(-)
16
17 --- a/drivers/net/ethernet/mediatek/airoha_eth.c
18 +++ b/drivers/net/ethernet/mediatek/airoha_eth.c
19 @@ -2072,13 +2072,21 @@ static int airoha_hw_init(struct platfor
20 int err, i;
21
22 /* disable xsi */
23 - reset_control_bulk_assert(ARRAY_SIZE(eth->xsi_rsts), eth->xsi_rsts);
24 + err = reset_control_bulk_assert(ARRAY_SIZE(eth->xsi_rsts),
25 + eth->xsi_rsts);
26 + if (err)
27 + return err;
28 +
29 + err = reset_control_bulk_assert(ARRAY_SIZE(eth->rsts), eth->rsts);
30 + if (err)
31 + return err;
32
33 - reset_control_bulk_assert(ARRAY_SIZE(eth->rsts), eth->rsts);
34 - msleep(20);
35 - reset_control_bulk_deassert(ARRAY_SIZE(eth->rsts), eth->rsts);
36 msleep(20);
37 + err = reset_control_bulk_deassert(ARRAY_SIZE(eth->rsts), eth->rsts);
38 + if (err)
39 + return err;
40
41 + msleep(20);
42 err = airoha_fe_init(eth);
43 if (err)
44 return err;