struct device *dev = &interface->dev;
struct mvusb_mdio *mvusb;
struct mii_bus *mdio;
- int ret;
mdio = devm_mdiobus_alloc_size(dev, sizeof(*mvusb));
if (!mdio)
mvusb = mdio->priv;
mvusb->mdio = mdio;
- mvusb->udev = usb_get_dev(interface_to_usbdev(interface));
+ mvusb->udev = interface_to_usbdev(interface);
/* Reversed from USB PCAPs, no idea what these mean. */
mvusb->buf[MVUSB_CMD_PREAMBLE0] = cpu_to_le16(0xe800);
mdio->write = mvusb_mdio_write;
usb_set_intfdata(interface, mvusb);
- ret = of_mdiobus_register(mdio, dev->of_node);
- if (ret)
- goto put_dev;
- return 0;
-
-put_dev:
- usb_put_dev(mvusb->udev);
- return ret;
+ return of_mdiobus_register(mdio, dev->of_node);
}
static void mvusb_mdio_disconnect(struct usb_interface *interface)
{
struct mvusb_mdio *mvusb = usb_get_intfdata(interface);
- struct usb_device *udev = mvusb->udev;
mdiobus_unregister(mvusb->mdio);
usb_set_intfdata(interface, NULL);
- usb_put_dev(udev);
}
static struct usb_driver mvusb_mdio_driver = {