Openwrt/target/linux/generic/hack-5.4/781-dsa-register-every-port-with-of_platform.patch
John Audia 5408e811b2 kernel: bump 5.4 to 5.4.133
Manually rebased:
  pending-5.4/690-net-add-support-for-threaded-NAPI-polling.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: ipq806x/R7800
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
2021-07-25 13:52:38 +02:00

36 lines
1.2 KiB
Diff

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)