Skip to content

Commit 0394a63

Browse files
viviendavem330
authored andcommitted
net: dsa: enable and disable all ports
Call the .port_enable and .port_disable functions for all ports, not only the user ports, so that drivers may optimize the power consumption of all ports after a successful setup. Unused ports are now disabled on setup. CPU and DSA ports are now enabled on setup and disabled on teardown. User ports were already enabled at slave creation and disabled at slave destruction. Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 74be4ba commit 0394a63

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

net/dsa/dsa2.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ static int dsa_port_setup(struct dsa_port *dp)
264264

265265
switch (dp->type) {
266266
case DSA_PORT_TYPE_UNUSED:
267+
dsa_port_disable(dp);
267268
break;
268269
case DSA_PORT_TYPE_CPU:
269270
memset(dlp, 0, sizeof(*dlp));
@@ -274,6 +275,10 @@ static int dsa_port_setup(struct dsa_port *dp)
274275
return err;
275276

276277
err = dsa_port_link_register_of(dp);
278+
if (err)
279+
return err;
280+
281+
err = dsa_port_enable(dp, NULL);
277282
if (err)
278283
return err;
279284
break;
@@ -286,6 +291,10 @@ static int dsa_port_setup(struct dsa_port *dp)
286291
return err;
287292

288293
err = dsa_port_link_register_of(dp);
294+
if (err)
295+
return err;
296+
297+
err = dsa_port_enable(dp, NULL);
289298
if (err)
290299
return err;
291300
break;
@@ -317,11 +326,13 @@ static void dsa_port_teardown(struct dsa_port *dp)
317326
case DSA_PORT_TYPE_UNUSED:
318327
break;
319328
case DSA_PORT_TYPE_CPU:
329+
dsa_port_disable(dp);
320330
dsa_tag_driver_put(dp->tag_ops);
321331
devlink_port_unregister(dlp);
322332
dsa_port_link_unregister_of(dp);
323333
break;
324334
case DSA_PORT_TYPE_DSA:
335+
dsa_port_disable(dp);
325336
devlink_port_unregister(dlp);
326337
dsa_port_link_unregister_of(dp);
327338
break;

0 commit comments

Comments
 (0)