net: phy: dp83867: fix get nvmem cell fail
authorNikita Shubin <n.shubin@yadro.com>
Fri, 5 Aug 2022 08:48:43 +0000 (11:48 +0300)
committerJakub Kicinski <kuba@kernel.org>
Tue, 9 Aug 2022 03:57:03 +0000 (20:57 -0700)
If CONFIG_NVMEM is not set of_nvmem_cell_get, of_nvmem_device_get
functions will return ERR_PTR(-EOPNOTSUPP) and "failed to get nvmem
cell io_impedance_ctrl" error would be reported despite "io_impedance_ctrl"
is completely missing in Device Tree and we should use default values.

Check -EOPNOTSUPP togather with -ENOENT to avoid this situation.

Fixes: 5c2d0a6a0701 ("net: phy: dp83867: implement support for io_impedance_ctrl nvmem cell")
Signed-off-by: Nikita Shubin <n.shubin@yadro.com>
Acked-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20220805084843.24542-1-nikita.shubin@maquefel.me
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/dp83867.c

index 1e38039c5c56c84c6d22c92edcf5245a7a21aa7e..6939563d3b7c555da205ddeb4ad05f8f01121380 100644 (file)
@@ -535,7 +535,7 @@ static int dp83867_of_init_io_impedance(struct phy_device *phydev)
        cell = of_nvmem_cell_get(of_node, "io_impedance_ctrl");
        if (IS_ERR(cell)) {
                ret = PTR_ERR(cell);
-               if (ret != -ENOENT)
+               if (ret != -ENOENT && ret != -EOPNOTSUPP)
                        return phydev_err_probe(phydev, ret,
                                                "failed to get nvmem cell io_impedance_ctrl\n");