789497970779d063527243ae85c8c168786c696c
[openwrt/staging/stintel.git] /
1 From 1763b155da022ac0f984463e68cb0cda8ffc1fe8 Mon Sep 17 00:00:00 2001
2 From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
3 Date: Tue, 11 Jun 2024 15:54:26 +0200
4 Subject: net: dsa: lantiq_gswip: Use dev_err_probe where appropriate
5
6 dev_err_probe() can be used to simplify the existing code. Also it means
7 we get rid of the following warning which is seen whenever the PMAC
8 (Ethernet controller which connects to GSWIP's CPU port) has not been
9 probed yet:
10 gswip 1e108000.switch: dsa switch register failed: -517
11
12 Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
13 Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
14 Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
15 Signed-off-by: Martin Schiller <ms@dev.tdt.de>
16 Link: https://lore.kernel.org/r/20240611135434.3180973-5-ms@dev.tdt.de
17 Signed-off-by: Jakub Kicinski <kuba@kernel.org>
18 ---
19 drivers/net/dsa/lantiq_gswip.c | 53 ++++++++++++++++++++----------------------
20 1 file changed, 25 insertions(+), 28 deletions(-)
21
22 --- a/drivers/net/dsa/lantiq_gswip.c
23 +++ b/drivers/net/dsa/lantiq_gswip.c
24 @@ -1919,11 +1919,9 @@ static int gswip_gphy_fw_load(struct gsw
25 msleep(200);
26
27 ret = request_firmware(&fw, gphy_fw->fw_name, dev);
28 - if (ret) {
29 - dev_err(dev, "failed to load firmware: %s, error: %i\n",
30 - gphy_fw->fw_name, ret);
31 - return ret;
32 - }
33 + if (ret)
34 + return dev_err_probe(dev, ret, "failed to load firmware: %s\n",
35 + gphy_fw->fw_name);
36
37 /* GPHY cores need the firmware code in a persistent and contiguous
38 * memory area with a 16 kB boundary aligned start address.
39 @@ -1936,9 +1934,9 @@ static int gswip_gphy_fw_load(struct gsw
40 dev_addr = ALIGN(dma_addr, XRX200_GPHY_FW_ALIGN);
41 memcpy(fw_addr, fw->data, fw->size);
42 } else {
43 - dev_err(dev, "failed to alloc firmware memory\n");
44 release_firmware(fw);
45 - return -ENOMEM;
46 + return dev_err_probe(dev, -ENOMEM,
47 + "failed to alloc firmware memory\n");
48 }
49
50 release_firmware(fw);
51 @@ -1965,8 +1963,8 @@ static int gswip_gphy_fw_probe(struct gs
52
53 gphy_fw->clk_gate = devm_clk_get(dev, gphyname);
54 if (IS_ERR(gphy_fw->clk_gate)) {
55 - dev_err(dev, "Failed to lookup gate clock\n");
56 - return PTR_ERR(gphy_fw->clk_gate);
57 + return dev_err_probe(dev, PTR_ERR(gphy_fw->clk_gate),
58 + "Failed to lookup gate clock\n");
59 }
60
61 ret = of_property_read_u32(gphy_fw_np, "reg", &gphy_fw->fw_addr_offset);
62 @@ -1986,8 +1984,8 @@ static int gswip_gphy_fw_probe(struct gs
63 gphy_fw->fw_name = priv->gphy_fw_name_cfg->ge_firmware_name;
64 break;
65 default:
66 - dev_err(dev, "Unknown GPHY mode %d\n", gphy_mode);
67 - return -EINVAL;
68 + return dev_err_probe(dev, -EINVAL, "Unknown GPHY mode %d\n",
69 + gphy_mode);
70 }
71
72 gphy_fw->reset = of_reset_control_array_get_exclusive(gphy_fw_np);
73 @@ -2038,8 +2036,9 @@ static int gswip_gphy_fw_list(struct gsw
74 priv->gphy_fw_name_cfg = &xrx200a2x_gphy_data;
75 break;
76 default:
77 - dev_err(dev, "unknown GSWIP version: 0x%x\n", version);
78 - return -ENOENT;
79 + return dev_err_probe(dev, -ENOENT,
80 + "unknown GSWIP version: 0x%x\n",
81 + version);
82 }
83 }
84
85 @@ -2047,10 +2046,9 @@ static int gswip_gphy_fw_list(struct gsw
86 if (match && match->data)
87 priv->gphy_fw_name_cfg = match->data;
88
89 - if (!priv->gphy_fw_name_cfg) {
90 - dev_err(dev, "GPHY compatible type not supported\n");
91 - return -ENOENT;
92 - }
93 + if (!priv->gphy_fw_name_cfg)
94 + return dev_err_probe(dev, -ENOENT,
95 + "GPHY compatible type not supported\n");
96
97 priv->num_gphy_fw = of_get_available_child_count(gphy_fw_list_np);
98 if (!priv->num_gphy_fw)
99 @@ -2150,8 +2148,8 @@ static int gswip_probe(struct platform_d
100 return -EINVAL;
101 break;
102 default:
103 - dev_err(dev, "unknown GSWIP version: 0x%x\n", version);
104 - return -ENOENT;
105 + return dev_err_probe(dev, -ENOENT,
106 + "unknown GSWIP version: 0x%x\n", version);
107 }
108
109 /* bring up the mdio bus */
110 @@ -2159,10 +2157,9 @@ static int gswip_probe(struct platform_d
111 if (gphy_fw_np) {
112 err = gswip_gphy_fw_list(priv, gphy_fw_np, version);
113 of_node_put(gphy_fw_np);
114 - if (err) {
115 - dev_err(dev, "gphy fw probe failed\n");
116 - return err;
117 - }
118 + if (err)
119 + return dev_err_probe(dev, err,
120 + "gphy fw probe failed\n");
121 }
122
123 /* bring up the mdio bus */
124 @@ -2170,20 +2167,20 @@ static int gswip_probe(struct platform_d
125 if (mdio_np) {
126 err = gswip_mdio(priv, mdio_np);
127 if (err) {
128 - dev_err(dev, "mdio probe failed\n");
129 + dev_err_probe(dev, err, "mdio probe failed\n");
130 goto put_mdio_node;
131 }
132 }
133
134 err = dsa_register_switch(priv->ds);
135 if (err) {
136 - dev_err(dev, "dsa switch register failed: %i\n", err);
137 + dev_err_probe(dev, err, "dsa switch registration failed\n");
138 goto mdio_bus;
139 }
140 if (!dsa_is_cpu_port(priv->ds, priv->hw_info->cpu_port)) {
141 - dev_err(dev, "wrong CPU port defined, HW only supports port: %i\n",
142 - priv->hw_info->cpu_port);
143 - err = -EINVAL;
144 + err = dev_err_probe(dev, -EINVAL,
145 + "wrong CPU port defined, HW only supports port: %i\n",
146 + priv->hw_info->cpu_port);
147 goto disable_switch;
148 }
149