netcp_device
struct netcp_device *netcp_device;
int (*probe)(struct netcp_device *netcp_device,
int (*remove)(struct netcp_device *netcp_device, void *inst_priv);
struct netcp_device *netcp_device,
struct netcp_device;
struct netcp_device *netcp_device;
struct device *dev = tx_pipe->netcp_device->device;
struct netcp_device *netcp_device,
tx_pipe->netcp_device = netcp_device;
netcp->rx_channel = knav_dma_open_channel(netcp->netcp_device->device,
static int netcp_create_interface(struct netcp_device *netcp_device,
struct device *dev = netcp_device->device;
netcp->netcp_device = netcp_device;
netcp->dev = netcp_device->device;
list_add_tail(&netcp->interface_list, &netcp_device->interface_head);
static void netcp_delete_interface(struct netcp_device *netcp_device,
dev_dbg(netcp_device->device, "Removing interface \"%s\"\n",
dev_dbg(netcp_device->device, "Releasing module \"%s\"\n",
struct netcp_device *netcp_device;
netcp_device = devm_kzalloc(dev, sizeof(*netcp_device), GFP_KERNEL);
if (!netcp_device)
INIT_LIST_HEAD(&netcp_device->interface_head);
INIT_LIST_HEAD(&netcp_device->modpriv_head);
netcp_device->device = dev;
platform_set_drvdata(pdev, netcp_device);
ret = netcp_create_interface(netcp_device, child);
list_add_tail(&netcp_device->device_list, &netcp_devices);
ret = netcp_module_probe(netcp_device, module);
&netcp_device->interface_head,
netcp_delete_interface(netcp_device, netcp_intf->ndev);
struct netcp_device *netcp_device = platform_get_drvdata(pdev);
list_for_each_entry_safe(inst_modpriv, tmp, &netcp_device->modpriv_head,
static int netcp_module_probe(struct netcp_device *netcp_device,
module->remove(netcp_device, inst_modpriv->module_priv);
&netcp_device->interface_head,
netcp_delete_interface(netcp_device, netcp_intf->ndev);
WARN(!list_empty(&netcp_device->interface_head),
struct device *dev = netcp_device->device;
inst_modpriv->netcp_device = netcp_device;
list_add_tail(&inst_modpriv->inst_list, &netcp_device->modpriv_head);
ret = module->probe(netcp_device, dev, child,
list_for_each_entry(netcp_intf, &netcp_device->interface_head,
&netcp_device->interface_head,
struct netcp_device *netcp_device;
list_for_each_entry(netcp_device, &netcp_devices, device_list) {
ret = netcp_module_probe(netcp_device, module);
static void netcp_release_module(struct netcp_device *netcp_device,
struct device *dev = netcp_device->device;
&netcp_device->interface_head,
&netcp_device->modpriv_head, inst_list) {
module->remove(netcp_device,
struct netcp_device *netcp_device;
list_for_each_entry(netcp_device, &netcp_devices, device_list) {
netcp_release_module(netcp_device, module);
#define for_each_netcp_device_module(netcp_device, inst_modpriv) \
&((netcp_device)->modpriv_head), inst_list)
struct netcp_device *netcp_device;
static int gbe_probe(struct netcp_device *netcp_device, struct device *dev,
gbe_dev->netcp_device = netcp_device;
ret = netcp_txpipe_init(&gbe_dev->tx_pipe, netcp_device,
static int gbe_remove(struct netcp_device *netcp_device, void *inst_priv)
struct netcp_device *netcp_device;