Commit 555d64c6 authored by Andrew Lunn's avatar Andrew Lunn Committed by Jakub Kicinski
Browse files

net: mdio: mdiobus_register: update validation test



Now that C45 uses its own read/write methods, the validation performed
when a bus is registers needs updating. All combinations of C22 and
C45 are supported, but both read and write methods must be provided,
read only busses are not supported etc.

Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarMichael Walle <michael@walle.cc>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 3a65e5f9
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -526,8 +526,15 @@ int __mdiobus_register(struct mii_bus *bus, struct module *owner)
	int i, err;
	struct gpio_desc *gpiod;

	if (NULL == bus || NULL == bus->name ||
	    NULL == bus->read || NULL == bus->write)
	if (!bus || !bus->name)
		return -EINVAL;

	/* An access method always needs both read and write operations */
	if (!!bus->read != !!bus->write || !!bus->read_c45 != !!bus->write_c45)
		return -EINVAL;

	/* At least one method is mandatory */
	if (!bus->read && !bus->read_c45)
		return -EINVAL;

	if (bus->parent && bus->parent->of_node)