This patch makes the i2c-bus property mandatory when using a device
tree. If the sfp i2c bus isn't described it's impossible to guess the
protocol to use for a given module, and the sfp module would then not
work in most cases.

Signed-off-by: Antoine Tenart <antoine.ten...@bootlin.com>
---
 drivers/net/phy/sfp.c | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)

diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c
index a91d12209a81..c4c92db86dfa 100644
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
@@ -976,6 +976,7 @@ static int sfp_probe(struct platform_device *pdev)
        if (pdev->dev.of_node) {
                struct device_node *node = pdev->dev.of_node;
                const struct of_device_id *id;
+               struct i2c_adapter *i2c;
                struct device_node *np;
 
                id = of_match_node(sfp_of_match, node);
@@ -985,19 +986,20 @@ static int sfp_probe(struct platform_device *pdev)
                sff = sfp->type = id->data;
 
                np = of_parse_phandle(node, "i2c-bus", 0);
-               if (np) {
-                       struct i2c_adapter *i2c;
-
-                       i2c = of_find_i2c_adapter_by_node(np);
-                       of_node_put(np);
-                       if (!i2c)
-                               return -EPROBE_DEFER;
-
-                       err = sfp_i2c_configure(sfp, i2c);
-                       if (err < 0) {
-                               i2c_put_adapter(i2c);
-                               return err;
-                       }
+               if (!np) {
+                       dev_err(sfp->dev, "missing 'i2c-bus' property\n");
+                       return -ENODEV;
+               }
+
+               i2c = of_find_i2c_adapter_by_node(np);
+               of_node_put(np);
+               if (!i2c)
+                       return -EPROBE_DEFER;
+
+               err = sfp_i2c_configure(sfp, i2c);
+               if (err < 0) {
+                       i2c_put_adapter(i2c);
+                       return err;
                }
        }
 
-- 
2.17.0

Reply via email to