net: phy: sfp: make the i2c-bus dt property mandatory
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.tenart@bootlin.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a1f5d1f0df
commit
66ede1f9c9
|
@ -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;
|
||||
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;
|
||||
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;
|
||||
}
|
||||
err = sfp_i2c_configure(sfp, i2c);
|
||||
if (err < 0) {
|
||||
i2c_put_adapter(i2c);
|
||||
return err;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue