#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/mii.h>
#include <linux/usb.h>
#include <linux/usb/cdc.h>
#include <linux/usb/usbnet.h>
#include <linux/usb/r8152.h>
#define OCP_BASE …
static int pla_read_word(struct usbnet *dev, u16 index)
{ … }
static int pla_write_word(struct usbnet *dev, u16 index, u32 data)
{ … }
static int r8153_ecm_mdio_read(struct net_device *netdev, int phy_id, int reg)
{ … }
static void r8153_ecm_mdio_write(struct net_device *netdev, int phy_id, int reg, int val)
{ … }
static int r8153_bind(struct usbnet *dev, struct usb_interface *intf)
{ … }
static const struct driver_info r8153_info = …;
static const struct usb_device_id products[] = …;
MODULE_DEVICE_TABLE(usb, products);
static int rtl8153_ecm_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{ … }
static struct usb_driver r8153_ecm_driver = …;
module_usb_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;