aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bmips/patches-5.15/510-net-dsa-b53-mmap-disable-phy-read-write-ops.patch
blob: 3b1ee6cfa2de9af01385e50846aa0104b5029725 (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
36
37
38
39
40
41
42
43
44
45
46
From 03e31e5197a041857299c70bbbc461131156d434 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Tue, 21 Mar 2023 19:11:58 +0100
Subject: [PATCH] net: dsa: b53: mmap: disable phy read/write ops
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

B53 MMAP switches have a MDIO Mux bus controller which should be used instead
of phy_read() and phy_write() ops.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
 drivers/net/dsa/b53/b53_mmap.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

--- a/drivers/net/dsa/b53/b53_mmap.c
+++ b/drivers/net/dsa/b53/b53_mmap.c
@@ -279,6 +279,7 @@ static int b53_mmap_probe(struct platfor
 	struct b53_platform_data *pdata = pdev->dev.platform_data;
 	struct b53_mmap_priv *priv;
 	struct b53_device *dev;
+	struct dsa_switch_ops *dso;
 	int ret;
 
 	if (!pdata && np) {
@@ -298,10 +299,19 @@ static int b53_mmap_probe(struct platfor
 
 	priv->regs = pdata->regs;
 
+	dso = devm_kzalloc(&pdev->dev, sizeof(*dso), GFP_KERNEL);
+	if (!dso)
+		return -ENOMEM;
+
 	dev = b53_switch_alloc(&pdev->dev, &b53_mmap_ops, priv);
 	if (!dev)
 		return -ENOMEM;
 
+	memcpy(dso, dev->ds->ops, sizeof(*dso));
+	dso->phy_read = NULL;
+	dso->phy_write = NULL;
+	dev->ds->ops = dso;
+
 	dev->pdata = pdata;
 
 	platform_set_drvdata(pdev, dev);