Thread (7 messages) 7 messages, 3 authors, 2020-02-04

Re: [PATCH v4 2/2] spi: Add generic SPI multiplexer

From: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
Date: 2020-02-03 21:12:01
Also in: linux-spi, lkml

Hi Andy,

On Mon, 2020-02-03 at 11:50 +0200, Andy Shevchenko wrote:

Other comments all accepted and will be addressed in v5.
...

quoted
+       priv->mux = devm_mux_control_get(&spi->dev, NULL);
+       ret = PTR_ERR_OR_ZERO(priv->mux);
This is a bit complicated.
quoted
+       if (ret) {
Why not simple do

  if (IS_ERR(priv->mux)) {
    ret = PTR_ERR(...);
    ...
  }

?
I've had other maintainers/reviewers suggest the opposite for patches
I've submitted to other subsystems which is why I went with
PTR_ERR_OR_ZERO. It also works well with the goto err_put_ctlr; which
needs ret to be set. It's not exactly a common pattern in the spi code
so I'd be happy to go the other way if that's the desired convention
for spi.
quoted
+               if (ret != -EPROBE_DEFER)
+                       dev_err(&spi->dev, "failed to get control-mux\n");
+               goto err_put_ctlr;
+       }
+       ctlr->dev.of_node = spi->dev.of_node;
I'm wondering why SPI core can't handle this by default (like GPIO
subsystem does).
We do have it for spi devices in of_register_spi_device(). I'm not
aware of any reason spi_register_controller() couldn't do the same for
controllers. It would affect a large number of drivers so should
probably be separate to this series. It's probably reasonably
automatable with coccinelle.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help