[bug report] net: dsa: mt7530: Add the support of MT7531 switch
Landen Chao
landen.chao at mediatek.com
Thu Sep 17 03:15:59 EDT 2020
Hello Dan,
Thanks for your review.
On Wed, 2020-09-16 at 22:35 +0800, Dan Carpenter wrote:
> Hello Landen Chao,
>
> The patch c288575f7810: "net: dsa: mt7530: Add the support of MT7531
> switch" from Sep 11, 2020, leads to the following static checker
> warning:
>
> drivers/net/dsa/mt7530.c:2298 mt7531_cpu_port_config()
> error: uninitialized symbol 'interface'.
>
> drivers/net/dsa/mt7530.c
> 2273 static int
> 2274 mt7531_cpu_port_config(struct dsa_switch *ds, int port)
> 2275 {
> 2276 struct mt7530_priv *priv = ds->priv;
> 2277 phy_interface_t interface;
> 2278 int speed;
> 2279
> 2280 switch (port) {
> 2281 case 5:
> 2282 if (mt7531_is_rgmii_port(priv, port))
> 2283 interface = PHY_INTERFACE_MODE_RGMII;
> 2284 else
> 2285 interface = PHY_INTERFACE_MODE_2500BASEX;
> 2286
> 2287 priv->p5_interface = interface;
> 2288 break;
> 2289 case 6:
> 2290 interface = PHY_INTERFACE_MODE_2500BASEX;
> 2291
> 2292 mt7531_pad_setup(ds, interface);
> 2293
> 2294 priv->p6_interface = interface;
> 2295 break;
>
> Does this need a default case? Smatch thinks "port" can be 0-6.
Yes, it needs a default case to catch unexpected dts setting. "port" can
be 0-6 generally, but only 5 and 6 are valid cpu port.
Although, "port" 0-4 can also be labeled as "cpu" in dts, but no real
hardware can support this kind of configuration currently.
>
> 2296 }
> 2297
> 2298 if (interface == PHY_INTERFACE_MODE_2500BASEX)
> 2299 speed = SPEED_2500;
> 2300 else
> 2301 speed = SPEED_1000;
> 2302
> 2303 mt7531_mac_config(ds, port, MLO_AN_FIXED, interface);
> 2304 mt7530_write(priv, MT7530_PMCR_P(port),
> 2305 PMCR_CPU_PORT_SETTING(priv->id));
> 2306 mt753x_phylink_mac_link_up(ds, port, MLO_AN_FIXED, interface, NULL,
> 2307 speed, DUPLEX_FULL, true, true);
> 2308
> 2309 return 0;
> 2310 }
>
> regards,
> dan carpenter
regards,
landen
More information about the Linux-mediatek
mailing list