Merge git://www.denx.de/git/u-boot-marvell
[oweals/u-boot.git] / drivers / usb / gadget / ether.c
index 516e356df4b9128115de047b8000b39293c46d7c..cfe9a24e24fbb8584bdb24887794bf7361b1bb20 100644 (file)
@@ -9,13 +9,16 @@
  */
 
 #include <common.h>
+#include <console.h>
 #include <asm/errno.h>
 #include <linux/netdevice.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/cdc.h>
 #include <linux/usb/gadget.h>
 #include <net.h>
+#include <usb.h>
 #include <malloc.h>
+#include <memalign.h>
 #include <linux/ctype.h>
 
 #include "gadget_chips.h"
@@ -1522,7 +1525,7 @@ static int rx_submit(struct eth_dev *dev, struct usb_request *req,
         * RNDIS headers involve variable numbers of LE32 values.
         */
 
-       req->buf = (u8 *) NetRxPackets[0];
+       req->buf = (u8 *)net_rx_packets[0];
        req->length = size;
        req->complete = rx_complete;
 
@@ -2312,6 +2315,8 @@ static int usb_eth_init(struct eth_device *netdev, bd_t *bd)
                goto fail;
        }
 
+       board_usb_init(0, USB_INIT_DEVICE);
+
        /* Configure default mac-addresses for the USB ethernet device */
 #ifdef CONFIG_USBNET_DEV_ADDR
        strlcpy(dev_addr, CONFIG_USBNET_DEV_ADDR, sizeof(dev_addr));
@@ -2446,7 +2451,8 @@ static int usb_eth_recv(struct eth_device *netdev)
        if (packet_received) {
                debug("%s: packet received\n", __func__);
                if (dev->rx_req) {
-                       NetReceive(NetRxPackets[0], dev->rx_req->length);
+                       net_process_received_packet(net_rx_packets[0],
+                                                   dev->rx_req->length);
                        packet_received = 0;
 
                        rx_submit(dev, dev->rx_req, 0);
@@ -2491,6 +2497,7 @@ void usb_eth_halt(struct eth_device *netdev)
        }
 
        usb_gadget_unregister_driver(&eth_driver);
+       board_usb_cleanup(0, USB_INIT_DEVICE);
 }
 
 static struct usb_gadget_driver eth_driver = {
@@ -2500,6 +2507,7 @@ static struct usb_gadget_driver eth_driver = {
        .unbind         = eth_unbind,
 
        .setup          = eth_setup,
+       .reset          = eth_disconnect,
        .disconnect     = eth_disconnect,
 
        .suspend        = eth_suspend,