drivers: usb: gadget: ether: prepare driver for driver model migration

prepare driver for driver model migration

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
master
Mugunthan V N 8 years ago committed by Simon Glass
parent ae70100c1f
commit 8269ee4f96
  1. 73
      drivers/usb/gadget/ether.c

@ -2334,9 +2334,8 @@ int dm_usb_init(struct eth_dev *e_dev)
}
#endif
static int usb_eth_init(struct eth_device *netdev, bd_t *bd)
static int _usb_eth_init(struct ether_priv *priv)
{
struct ether_priv *priv = (struct ether_priv *)netdev->priv;
struct eth_dev *dev = &priv->ethdev;
struct usb_gadget *gadget;
unsigned long ts;
@ -2415,11 +2414,10 @@ fail:
return -1;
}
static int usb_eth_send(struct eth_device *netdev, void *packet, int length)
static int _usb_eth_send(struct ether_priv *priv, void *packet, int length)
{
int retval;
void *rndis_pkt = NULL;
struct ether_priv *priv = (struct ether_priv *)netdev->priv;
struct eth_dev *dev = &priv->ethdev;
struct usb_request *req = dev->tx_req;
unsigned long ts;
@ -2485,30 +2483,15 @@ drop:
return -ENOMEM;
}
static int usb_eth_recv(struct eth_device *netdev)
static int _usb_eth_recv(struct ether_priv *priv)
{
struct ether_priv *priv = (struct ether_priv *)netdev->priv;
struct eth_dev *dev = &priv->ethdev;
usb_gadget_handle_interrupts(0);
if (packet_received) {
debug("%s: packet received\n", __func__);
if (dev->rx_req) {
net_process_received_packet(net_rx_packets[0],
dev->rx_req->length);
packet_received = 0;
rx_submit(dev, dev->rx_req, 0);
} else
error("dev->rx_req invalid");
}
return 0;
}
void usb_eth_halt(struct eth_device *netdev)
void _usb_eth_halt(struct ether_priv *priv)
{
struct ether_priv *priv = (struct ether_priv *)netdev->priv;
struct eth_dev *dev = &priv->ethdev;
/* If the gadget not registered, simple return */
@ -2544,6 +2527,54 @@ void usb_eth_halt(struct eth_device *netdev)
#endif
}
static int usb_eth_init(struct eth_device *netdev, bd_t *bd)
{
struct ether_priv *priv = (struct ether_priv *)netdev->priv;
return _usb_eth_init(priv);
}
static int usb_eth_send(struct eth_device *netdev, void *packet, int length)
{
struct ether_priv *priv = (struct ether_priv *)netdev->priv;
return _usb_eth_send(priv, packet, length);
}
static int usb_eth_recv(struct eth_device *netdev)
{
struct ether_priv *priv = (struct ether_priv *)netdev->priv;
struct eth_dev *dev = &priv->ethdev;
int ret;
ret = _usb_eth_recv(priv);
if (ret) {
error("error packet receive\n");
return ret;
}
if (!packet_received)
return 0;
if (dev->rx_req) {
net_process_received_packet(net_rx_packets[0],
dev->rx_req->length);
} else {
error("dev->rx_req invalid");
}
packet_received = 0;
rx_submit(dev, dev->rx_req, 0);
return 0;
}
void usb_eth_halt(struct eth_device *netdev)
{
struct ether_priv *priv = (struct ether_priv *)netdev->priv;
_usb_eth_halt(priv);
}
int usb_eth_initialize(bd_t *bi)
{
struct eth_device *netdev = &l_priv->netdev;

Loading…
Cancel
Save