Thread (3 messages) 3 messages, 3 authors, 2017-07-20

Re: [PATCH 1/2] net: mvneta: remove bogus use of

flat view

From: Marcin Wojtas <hidden>
Date: 2017-07-20 16:01:04
Also in: linux-devicetree

Hi Rob,

I somehow missed this patch.

2017-07-20 17:06 GMT+02:00 Gregory CLEMENT [off-list ref]:
Hi Rob,

 On jeu., juil. 20 2017, Rob Herring [off-list ref] wrote:

(Adding Marcin in CC who wrote this part of code)
quoted
Nothing sets ever sets data, so it is always NULL. Remove it as this is
the only user of data ptr in the whole kernel, and it is going to be
removed from struct device_node.
Actually the use of device_node.data ptr is not bogus and it is set in
mvneta_bm_probe:
http://elixir.free-electrons.com/linux/latest/source/drivers/net/ethernet/marvell/mvneta_bm.c#L433

Your patch will break the BM support on this driver. So if you need to
remove this data ptr, then you have to offer an alternative for it.
Exactly, this breaks NETA operation with BM block. The data is set in:

dn->data = priv;
platform_set_drvdata(pdev, priv);

At the time I couldn't have found out a nicer solution to make work
two different HW blocks (network controller and buffer manager). There
was once a patchset enabling calling another driver's probe basing on
the phandle and of_node information, but after it reached ~v7 it
eventually didn't make it to the tree. Do you any way for solving such
dependencies, if you really want to get rid of this field?

Best regards,
Marcin
Thanks,

Gregory
quoted
Cc: Thomas Petazzoni <redacted>
Signed-off-by: Rob Herring <robh@kernel.org>
---
Probably there's a better fix here to actually enable the h/w buffer
manager.

I intend to take this thru the DT tree as patch 2 is dependent on this.

Rob

 drivers/net/ethernet/marvell/mvneta.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index 0aab74c2a209..5624f4b49f9d 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -4296,8 +4296,8 @@ static int mvneta_probe(struct platform_device *pdev)

      /* Obtain access to BM resources if enabled and already initialized */
      bm_node = of_parse_phandle(dn, "buffer-manager", 0);
-     if (bm_node && bm_node->data) {
-             pp->bm_priv = bm_node->data;
+     if (bm_node) {
+             pp->bm_priv = NULL;
              err = mvneta_bm_port_init(pdev, pp);
              if (err < 0) {
                      dev_info(&pdev->dev, "use SW buffer management\n");
--
2.11.0
--
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help