aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/hack-5.4/781-dsa-register-every-port-with-of_platform.patch
blob: bd7e190bff2336171f32cb09a00accf263108968 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
From 8bab551f44204fc5d43977063cd704112c17c750 Mon Sep 17 00:00:00 2001
From: Ansuel Smith <ansuelsmth@gmail.com>
Date: Fri, 23 Jul 2021 12:17:27 +0200
Subject: [PATCH 2/2] dsa: register every port with of_platform

The declaration of a different mac-addr using the nvmem framework is
currently broken. The dsa code use the generic of_get_mac_address where
the nvmem function require the device node to be registred in the
of_platform to be found by of_find_device_by_node. Register every port
in the of_platform so they can corrently found and a custom mac-addr can
correctly be declared using a nvmem-cell declared in the dts.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
---
 net/dsa/dsa2.c | 2 +
 1 file changed, 2 insertion(+)

--- a/net/dsa/dsa2.c
+++ b/net/dsa/dsa2.c
@@ -14,6 +14,7 @@
 #include <linux/rtnetlink.h>
 #include <linux/of.h>
 #include <linux/of_net.h>
+#include <linux/of_platform.h>
 #include <net/devlink.h>
 
 #include "dsa_priv.h"
@@ -318,6 +319,7 @@ static int dsa_port_setup(struct dsa_por
 			break;
 		devlink_port_registered = true;
 
+		of_platform_device_create(dp->dn, NULL, NULL);
 		dp->mac = of_get_mac_address(dp->dn);
 		err = dsa_slave_create(dp);
 		if (err)