#
 # USB gadget drivers
 #
-C_UTILS =      composite.o usbstring.o config.o epautoconf.o
-
 g_zero-objs                    := zero.o
-g_ether-objs                   := ether.o u_ether.o f_subset.o f_ecm.o $(C_UTILS)
+g_ether-objs                   := ether.o
 g_serial-objs                  := serial.o
 g_midi-objs                    := gmidi.o
 gadgetfs-objs                  := inode.o
 g_printer-objs                 := printer.o
 g_cdc-objs                     := cdc2.o
 
-ifeq ($(CONFIG_USB_ETH_RNDIS),y)
-       g_ether-objs            += f_rndis.o rndis.o
-endif
- 
 obj-$(CONFIG_USB_ZERO)         += g_zero.o
 obj-$(CONFIG_USB_ETH)          += g_ether.o
 obj-$(CONFIG_USB_GADGETFS)     += gadgetfs.o
 
 
 /*-------------------------------------------------------------------------*/
 
+/*
+ * Kbuild is not very cooperative with respect to linking separately
+ * compiled library objects into one module.  So for now we won't use
+ * separate compilation ... ensuring init/exit sections work to shrink
+ * the runtime footprint, and giving us at least some parts of what
+ * a "gcc --combine ... part1.c part2.c part3.c ... " build would.
+ */
+#include "composite.c"
+#include "usbstring.c"
+#include "config.c"
+#include "epautoconf.c"
+
+#include "f_ecm.c"
+#include "f_subset.c"
+#ifdef CONFIG_USB_ETH_RNDIS
+#include "f_rndis.c"
+#include "rndis.c"
+#endif
+#include "u_ether.c"
+
+/*-------------------------------------------------------------------------*/
+
 /* DO NOT REUSE THESE IDs with a protocol-incompatible driver!!  Ever!!
  * Instead:  allocate your own, using normal USB-IF procedures.
  */
                 * but if the controller isn't recognized at all then
                 * that assumption is a bit more likely to be wrong.
                 */
-               WARNING(cdev, "controller '%s' not recognized; trying %s\n",
+               dev_warn(&gadget->dev,
+                               "controller '%s' not recognized; trying %s\n",
                                gadget->name,
                                eth_config_driver.label);
                device_desc.bcdDevice =
        if (status < 0)
                goto fail;
 
-       INFO(cdev, "%s, version: " DRIVER_VERSION "\n", DRIVER_DESC);
+       dev_info(&gadget->dev, "%s, version: " DRIVER_VERSION "\n",
+                       DRIVER_DESC);
 
        return 0;
 
 
 }
 
 /* peak (theoretical) bulk transfer rate in bits-per-second */
-static inline unsigned bitrate(struct usb_gadget *g)
+static inline unsigned ecm_bitrate(struct usb_gadget *g)
 {
        if (gadget_is_dualspeed(g) && g->speed == USB_SPEED_HIGH)
                return 13 * 512 * 8 * 1000 * 8;
  */
 
 #define LOG2_STATUS_INTERVAL_MSEC      5       /* 1 << 5 == 32 msec */
-#define STATUS_BYTECOUNT               16      /* 8 byte header + data */
+#define ECM_STATUS_BYTECOUNT           16      /* 8 byte header + data */
 
 
 /* interface descriptor: */
        /* .iInterface = DYNAMIC */
 };
 
-static struct usb_cdc_header_desc header_desc __initdata = {
-       .bLength =              sizeof header_desc,
+static struct usb_cdc_header_desc ecm_header_desc __initdata = {
+       .bLength =              sizeof ecm_header_desc,
        .bDescriptorType =      USB_DT_CS_INTERFACE,
        .bDescriptorSubType =   USB_CDC_HEADER_TYPE,
 
        /* .bSlaveInterface0 =  DYNAMIC */
 };
 
-static struct usb_cdc_ether_desc ether_desc __initdata = {
-       .bLength =              sizeof ether_desc,
+static struct usb_cdc_ether_desc ecm_desc __initdata = {
+       .bLength =              sizeof ecm_desc,
        .bDescriptorType =      USB_DT_CS_INTERFACE,
        .bDescriptorSubType =   USB_CDC_ETHERNET_TYPE,
 
 
 /* full speed support: */
 
-static struct usb_endpoint_descriptor fs_notify_desc __initdata = {
+static struct usb_endpoint_descriptor fs_ecm_notify_desc __initdata = {
        .bLength =              USB_DT_ENDPOINT_SIZE,
        .bDescriptorType =      USB_DT_ENDPOINT,
 
        .bEndpointAddress =     USB_DIR_IN,
        .bmAttributes =         USB_ENDPOINT_XFER_INT,
-       .wMaxPacketSize =       __constant_cpu_to_le16(STATUS_BYTECOUNT),
+       .wMaxPacketSize =       __constant_cpu_to_le16(ECM_STATUS_BYTECOUNT),
        .bInterval =            1 << LOG2_STATUS_INTERVAL_MSEC,
 };
 
-static struct usb_endpoint_descriptor fs_in_desc __initdata = {
+static struct usb_endpoint_descriptor fs_ecm_in_desc __initdata = {
        .bLength =              USB_DT_ENDPOINT_SIZE,
        .bDescriptorType =      USB_DT_ENDPOINT,
 
        .bmAttributes =         USB_ENDPOINT_XFER_BULK,
 };
 
-static struct usb_endpoint_descriptor fs_out_desc __initdata = {
+static struct usb_endpoint_descriptor fs_ecm_out_desc __initdata = {
        .bLength =              USB_DT_ENDPOINT_SIZE,
        .bDescriptorType =      USB_DT_ENDPOINT,
 
        .bmAttributes =         USB_ENDPOINT_XFER_BULK,
 };
 
-static struct usb_descriptor_header *eth_fs_function[] __initdata = {
+static struct usb_descriptor_header *ecm_fs_function[] __initdata = {
        /* CDC ECM control descriptors */
        (struct usb_descriptor_header *) &ecm_control_intf,
-       (struct usb_descriptor_header *) &header_desc,
+       (struct usb_descriptor_header *) &ecm_header_desc,
        (struct usb_descriptor_header *) &ecm_union_desc,
-       (struct usb_descriptor_header *) ðer_desc,
+       (struct usb_descriptor_header *) &ecm_desc,
        /* NOTE: status endpoint might need to be removed */
-       (struct usb_descriptor_header *) &fs_notify_desc,
+       (struct usb_descriptor_header *) &fs_ecm_notify_desc,
        /* data interface, altsettings 0 and 1 */
        (struct usb_descriptor_header *) &ecm_data_nop_intf,
        (struct usb_descriptor_header *) &ecm_data_intf,
-       (struct usb_descriptor_header *) &fs_in_desc,
-       (struct usb_descriptor_header *) &fs_out_desc,
+       (struct usb_descriptor_header *) &fs_ecm_in_desc,
+       (struct usb_descriptor_header *) &fs_ecm_out_desc,
        NULL,
 };
 
 /* high speed support: */
 
-static struct usb_endpoint_descriptor hs_notify_desc __initdata = {
+static struct usb_endpoint_descriptor hs_ecm_notify_desc __initdata = {
        .bLength =              USB_DT_ENDPOINT_SIZE,
        .bDescriptorType =      USB_DT_ENDPOINT,
 
        .bEndpointAddress =     USB_DIR_IN,
        .bmAttributes =         USB_ENDPOINT_XFER_INT,
-       .wMaxPacketSize =       __constant_cpu_to_le16(STATUS_BYTECOUNT),
+       .wMaxPacketSize =       __constant_cpu_to_le16(ECM_STATUS_BYTECOUNT),
        .bInterval =            LOG2_STATUS_INTERVAL_MSEC + 4,
 };
-static struct usb_endpoint_descriptor hs_in_desc __initdata = {
+static struct usb_endpoint_descriptor hs_ecm_in_desc __initdata = {
        .bLength =              USB_DT_ENDPOINT_SIZE,
        .bDescriptorType =      USB_DT_ENDPOINT,
 
        .wMaxPacketSize =       __constant_cpu_to_le16(512),
 };
 
-static struct usb_endpoint_descriptor hs_out_desc __initdata = {
+static struct usb_endpoint_descriptor hs_ecm_out_desc __initdata = {
        .bLength =              USB_DT_ENDPOINT_SIZE,
        .bDescriptorType =      USB_DT_ENDPOINT,
 
        .wMaxPacketSize =       __constant_cpu_to_le16(512),
 };
 
-static struct usb_descriptor_header *eth_hs_function[] __initdata = {
+static struct usb_descriptor_header *ecm_hs_function[] __initdata = {
        /* CDC ECM control descriptors */
        (struct usb_descriptor_header *) &ecm_control_intf,
-       (struct usb_descriptor_header *) &header_desc,
+       (struct usb_descriptor_header *) &ecm_header_desc,
        (struct usb_descriptor_header *) &ecm_union_desc,
-       (struct usb_descriptor_header *) ðer_desc,
+       (struct usb_descriptor_header *) &ecm_desc,
        /* NOTE: status endpoint might need to be removed */
-       (struct usb_descriptor_header *) &hs_notify_desc,
+       (struct usb_descriptor_header *) &hs_ecm_notify_desc,
        /* data interface, altsettings 0 and 1 */
        (struct usb_descriptor_header *) &ecm_data_nop_intf,
        (struct usb_descriptor_header *) &ecm_data_intf,
-       (struct usb_descriptor_header *) &hs_in_desc,
-       (struct usb_descriptor_header *) &hs_out_desc,
+       (struct usb_descriptor_header *) &hs_ecm_in_desc,
+       (struct usb_descriptor_header *) &hs_ecm_out_desc,
        NULL,
 };
 
                event->bNotificationType = USB_CDC_NOTIFY_SPEED_CHANGE;
                event->wValue = cpu_to_le16(0);
                event->wLength = cpu_to_le16(8);
-               req->length = STATUS_BYTECOUNT;
+               req->length = ECM_STATUS_BYTECOUNT;
 
                /* SPEED_CHANGE data is up/down speeds in bits/sec */
                data = req->buf + sizeof *event;
-               data[0] = cpu_to_le32(bitrate(cdev->gadget));
+               data[0] = cpu_to_le32(ecm_bitrate(cdev->gadget));
                data[1] = data[0];
 
-               DBG(cdev, "notify speed %d\n", bitrate(cdev->gadget));
+               DBG(cdev, "notify speed %d\n", ecm_bitrate(cdev->gadget));
                ecm->notify_state = ECM_NOTIFY_NONE;
                break;
        }
        status = -ENODEV;
 
        /* allocate instance-specific endpoints */
-       ep = usb_ep_autoconfig(cdev->gadget, &fs_in_desc);
+       ep = usb_ep_autoconfig(cdev->gadget, &fs_ecm_in_desc);
        if (!ep)
                goto fail;
        ecm->port.in_ep = ep;
        ep->driver_data = cdev; /* claim */
 
-       ep = usb_ep_autoconfig(cdev->gadget, &fs_out_desc);
+       ep = usb_ep_autoconfig(cdev->gadget, &fs_ecm_out_desc);
        if (!ep)
                goto fail;
        ecm->port.out_ep = ep;
         * don't treat it that way.  It's simpler, and some newer CDC
         * profiles (wireless handsets) no longer treat it as optional.
         */
-       ep = usb_ep_autoconfig(cdev->gadget, &fs_notify_desc);
+       ep = usb_ep_autoconfig(cdev->gadget, &fs_ecm_notify_desc);
        if (!ep)
                goto fail;
        ecm->notify = ep;
        ecm->notify_req = usb_ep_alloc_request(ep, GFP_KERNEL);
        if (!ecm->notify_req)
                goto fail;
-       ecm->notify_req->buf = kmalloc(STATUS_BYTECOUNT, GFP_KERNEL);
+       ecm->notify_req->buf = kmalloc(ECM_STATUS_BYTECOUNT, GFP_KERNEL);
        if (!ecm->notify_req->buf)
                goto fail;
        ecm->notify_req->context = ecm;
        ecm->notify_req->complete = ecm_notify_complete;
 
        /* copy descriptors, and track endpoint copies */
-       f->descriptors = usb_copy_descriptors(eth_fs_function);
+       f->descriptors = usb_copy_descriptors(ecm_fs_function);
        if (!f->descriptors)
                goto fail;
 
-       ecm->fs.in = usb_find_endpoint(eth_fs_function,
-                       f->descriptors, &fs_in_desc);
-       ecm->fs.out = usb_find_endpoint(eth_fs_function,
-                       f->descriptors, &fs_out_desc);
-       ecm->fs.notify = usb_find_endpoint(eth_fs_function,
-                       f->descriptors, &fs_notify_desc);
+       ecm->fs.in = usb_find_endpoint(ecm_fs_function,
+                       f->descriptors, &fs_ecm_in_desc);
+       ecm->fs.out = usb_find_endpoint(ecm_fs_function,
+                       f->descriptors, &fs_ecm_out_desc);
+       ecm->fs.notify = usb_find_endpoint(ecm_fs_function,
+                       f->descriptors, &fs_ecm_notify_desc);
 
        /* support all relevant hardware speeds... we expect that when
         * hardware is dual speed, all bulk-capable endpoints work at
         * both speeds
         */
        if (gadget_is_dualspeed(c->cdev->gadget)) {
-               hs_in_desc.bEndpointAddress =
-                               fs_in_desc.bEndpointAddress;
-               hs_out_desc.bEndpointAddress =
-                               fs_out_desc.bEndpointAddress;
-               hs_notify_desc.bEndpointAddress =
-                               fs_notify_desc.bEndpointAddress;
+               hs_ecm_in_desc.bEndpointAddress =
+                               fs_ecm_in_desc.bEndpointAddress;
+               hs_ecm_out_desc.bEndpointAddress =
+                               fs_ecm_out_desc.bEndpointAddress;
+               hs_ecm_notify_desc.bEndpointAddress =
+                               fs_ecm_notify_desc.bEndpointAddress;
 
                /* copy descriptors, and track endpoint copies */
-               f->hs_descriptors = usb_copy_descriptors(eth_hs_function);
+               f->hs_descriptors = usb_copy_descriptors(ecm_hs_function);
                if (!f->hs_descriptors)
                        goto fail;
 
-               ecm->hs.in = usb_find_endpoint(eth_hs_function,
-                               f->hs_descriptors, &hs_in_desc);
-               ecm->hs.out = usb_find_endpoint(eth_hs_function,
-                               f->hs_descriptors, &hs_out_desc);
-               ecm->hs.notify = usb_find_endpoint(eth_hs_function,
-                               f->hs_descriptors, &hs_notify_desc);
+               ecm->hs.in = usb_find_endpoint(ecm_hs_function,
+                               f->hs_descriptors, &hs_ecm_in_desc);
+               ecm->hs.out = usb_find_endpoint(ecm_hs_function,
+                               f->hs_descriptors, &hs_ecm_out_desc);
+               ecm->hs.notify = usb_find_endpoint(ecm_hs_function,
+                               f->hs_descriptors, &hs_ecm_notify_desc);
        }
 
        /* NOTE:  all that is done without knowing or caring about
                if (status < 0)
                        return status;
                ecm_string_defs[1].id = status;
-               ether_desc.iMACAddress = status;
+               ecm_desc.iMACAddress = status;
        }
 
        /* allocate and initialize one new instance */
 
        /* .iInterface = DYNAMIC */
 };
 
-static struct usb_cdc_header_desc header_desc __initdata = {
-       .bLength =              sizeof header_desc,
+static struct usb_cdc_header_desc mdlm_header_desc __initdata = {
+       .bLength =              sizeof mdlm_header_desc,
        .bDescriptorType =      USB_DT_CS_INTERFACE,
        .bDescriptorSubType =   USB_CDC_HEADER_TYPE,
 
 
 /* full speed support: */
 
-static struct usb_endpoint_descriptor fs_in_desc __initdata = {
+static struct usb_endpoint_descriptor fs_subset_in_desc __initdata = {
        .bLength =              USB_DT_ENDPOINT_SIZE,
        .bDescriptorType =      USB_DT_ENDPOINT,
 
        .bmAttributes =         USB_ENDPOINT_XFER_BULK,
 };
 
-static struct usb_endpoint_descriptor fs_out_desc __initdata = {
+static struct usb_endpoint_descriptor fs_subset_out_desc __initdata = {
        .bLength =              USB_DT_ENDPOINT_SIZE,
        .bDescriptorType =      USB_DT_ENDPOINT,
 
 
 static struct usb_descriptor_header *fs_eth_function[] __initdata = {
        (struct usb_descriptor_header *) &subset_data_intf,
-       (struct usb_descriptor_header *) &header_desc,
+       (struct usb_descriptor_header *) &mdlm_header_desc,
        (struct usb_descriptor_header *) &mdlm_desc,
        (struct usb_descriptor_header *) &mdlm_detail_desc,
        (struct usb_descriptor_header *) ðer_desc,
-       (struct usb_descriptor_header *) &fs_in_desc,
-       (struct usb_descriptor_header *) &fs_out_desc,
+       (struct usb_descriptor_header *) &fs_subset_in_desc,
+       (struct usb_descriptor_header *) &fs_subset_out_desc,
        NULL,
 };
 
 /* high speed support: */
 
-static struct usb_endpoint_descriptor hs_in_desc __initdata = {
+static struct usb_endpoint_descriptor hs_subset_in_desc __initdata = {
        .bLength =              USB_DT_ENDPOINT_SIZE,
        .bDescriptorType =      USB_DT_ENDPOINT,
 
        .wMaxPacketSize =       __constant_cpu_to_le16(512),
 };
 
-static struct usb_endpoint_descriptor hs_out_desc __initdata = {
+static struct usb_endpoint_descriptor hs_subset_out_desc __initdata = {
        .bLength =              USB_DT_ENDPOINT_SIZE,
        .bDescriptorType =      USB_DT_ENDPOINT,
 
 
 static struct usb_descriptor_header *hs_eth_function[] __initdata = {
        (struct usb_descriptor_header *) &subset_data_intf,
-       (struct usb_descriptor_header *) &header_desc,
+       (struct usb_descriptor_header *) &mdlm_header_desc,
        (struct usb_descriptor_header *) &mdlm_desc,
        (struct usb_descriptor_header *) &mdlm_detail_desc,
        (struct usb_descriptor_header *) ðer_desc,
-       (struct usb_descriptor_header *) &hs_in_desc,
-       (struct usb_descriptor_header *) &hs_out_desc,
+       (struct usb_descriptor_header *) &hs_subset_in_desc,
+       (struct usb_descriptor_header *) &hs_subset_out_desc,
        NULL,
 };
 
        status = -ENODEV;
 
        /* allocate instance-specific endpoints */
-       ep = usb_ep_autoconfig(cdev->gadget, &fs_in_desc);
+       ep = usb_ep_autoconfig(cdev->gadget, &fs_subset_in_desc);
        if (!ep)
                goto fail;
        geth->port.in_ep = ep;
        ep->driver_data = cdev; /* claim */
 
-       ep = usb_ep_autoconfig(cdev->gadget, &fs_out_desc);
+       ep = usb_ep_autoconfig(cdev->gadget, &fs_subset_out_desc);
        if (!ep)
                goto fail;
        geth->port.out_ep = ep;
        f->descriptors = usb_copy_descriptors(fs_eth_function);
 
        geth->fs.in = usb_find_endpoint(fs_eth_function,
-                       f->descriptors, &fs_in_desc);
+                       f->descriptors, &fs_subset_in_desc);
        geth->fs.out = usb_find_endpoint(fs_eth_function,
-                       f->descriptors, &fs_out_desc);
+                       f->descriptors, &fs_subset_out_desc);
 
 
        /* support all relevant hardware speeds... we expect that when
         * both speeds
         */
        if (gadget_is_dualspeed(c->cdev->gadget)) {
-               hs_in_desc.bEndpointAddress =
-                               fs_in_desc.bEndpointAddress;
-               hs_out_desc.bEndpointAddress =
-                               fs_out_desc.bEndpointAddress;
+               hs_subset_in_desc.bEndpointAddress =
+                               fs_subset_in_desc.bEndpointAddress;
+               hs_subset_out_desc.bEndpointAddress =
+                               fs_subset_out_desc.bEndpointAddress;
 
                /* copy descriptors, and track endpoint copies */
                f->hs_descriptors = usb_copy_descriptors(hs_eth_function);
 
                geth->hs.in = usb_find_endpoint(hs_eth_function,
-                               f->hs_descriptors, &hs_in_desc);
+                               f->hs_descriptors, &hs_subset_in_desc);
                geth->hs.out = usb_find_endpoint(hs_eth_function,
-                               f->hs_descriptors, &hs_out_desc);
+                               f->hs_descriptors, &hs_subset_out_desc);
        }
 
        /* NOTE:  all that is done without knowing or caring about
 
 #define rndis_debug            0
 #endif
 
-#define DBG(str,args...) do { \
-       if (rndis_debug) \
-               pr_debug(str , ## args); \
-       } while (0)
-
 #define RNDIS_MAX_CONFIGS      1
 
 
        if (!resp) return -ENOMEM;
 
        if (buf_len && rndis_debug > 1) {
-               DBG("query OID %08x value, len %d:\n", OID, buf_len);
+               pr_debug("query OID %08x value, len %d:\n", OID, buf_len);
                for (i = 0; i < buf_len; i += 16) {
-                       DBG("%03d: %08x %08x %08x %08x\n", i,
+                       pr_debug("%03d: %08x %08x %08x %08x\n", i,
                                get_unaligned_le32(&buf[i]),
                                get_unaligned_le32(&buf[i + 4]),
                                get_unaligned_le32(&buf[i + 8]),
 
        /* mandatory */
        case OID_GEN_SUPPORTED_LIST:
-               DBG("%s: OID_GEN_SUPPORTED_LIST\n", __func__);
+               pr_debug("%s: OID_GEN_SUPPORTED_LIST\n", __func__);
                length = sizeof (oid_supported_list);
                count  = length / sizeof (u32);
                for (i = 0; i < count; i++)
 
        /* mandatory */
        case OID_GEN_HARDWARE_STATUS:
-               DBG("%s: OID_GEN_HARDWARE_STATUS\n", __func__);
+               pr_debug("%s: OID_GEN_HARDWARE_STATUS\n", __func__);
                /* Bogus question!
                 * Hardware must be ready to receive high level protocols.
                 * BTW:
 
        /* mandatory */
        case OID_GEN_MEDIA_SUPPORTED:
-               DBG("%s: OID_GEN_MEDIA_SUPPORTED\n", __func__);
+               pr_debug("%s: OID_GEN_MEDIA_SUPPORTED\n", __func__);
                *outbuf = cpu_to_le32 (rndis_per_dev_params [configNr].medium);
                retval = 0;
                break;
 
        /* mandatory */
        case OID_GEN_MEDIA_IN_USE:
-               DBG("%s: OID_GEN_MEDIA_IN_USE\n", __func__);
+               pr_debug("%s: OID_GEN_MEDIA_IN_USE\n", __func__);
                /* one medium, one transport... (maybe you do it better) */
                *outbuf = cpu_to_le32 (rndis_per_dev_params [configNr].medium);
                retval = 0;
 
        /* mandatory */
        case OID_GEN_MAXIMUM_FRAME_SIZE:
-               DBG("%s: OID_GEN_MAXIMUM_FRAME_SIZE\n", __func__);
+               pr_debug("%s: OID_GEN_MAXIMUM_FRAME_SIZE\n", __func__);
                if (rndis_per_dev_params [configNr].dev) {
                        *outbuf = cpu_to_le32 (
                                rndis_per_dev_params [configNr].dev->mtu);
        /* mandatory */
        case OID_GEN_LINK_SPEED:
                if (rndis_debug > 1)
-                       DBG("%s: OID_GEN_LINK_SPEED\n", __func__);
+                       pr_debug("%s: OID_GEN_LINK_SPEED\n", __func__);
                if (rndis_per_dev_params [configNr].media_state
                                == NDIS_MEDIA_STATE_DISCONNECTED)
                        *outbuf = __constant_cpu_to_le32 (0);
 
        /* mandatory */
        case OID_GEN_TRANSMIT_BLOCK_SIZE:
-               DBG("%s: OID_GEN_TRANSMIT_BLOCK_SIZE\n", __func__);
+               pr_debug("%s: OID_GEN_TRANSMIT_BLOCK_SIZE\n", __func__);
                if (rndis_per_dev_params [configNr].dev) {
                        *outbuf = cpu_to_le32 (
                                rndis_per_dev_params [configNr].dev->mtu);
 
        /* mandatory */
        case OID_GEN_RECEIVE_BLOCK_SIZE:
-               DBG("%s: OID_GEN_RECEIVE_BLOCK_SIZE\n", __func__);
+               pr_debug("%s: OID_GEN_RECEIVE_BLOCK_SIZE\n", __func__);
                if (rndis_per_dev_params [configNr].dev) {
                        *outbuf = cpu_to_le32 (
                                rndis_per_dev_params [configNr].dev->mtu);
 
        /* mandatory */
        case OID_GEN_VENDOR_ID:
-               DBG("%s: OID_GEN_VENDOR_ID\n", __func__);
+               pr_debug("%s: OID_GEN_VENDOR_ID\n", __func__);
                *outbuf = cpu_to_le32 (
                        rndis_per_dev_params [configNr].vendorID);
                retval = 0;
 
        /* mandatory */
        case OID_GEN_VENDOR_DESCRIPTION:
-               DBG("%s: OID_GEN_VENDOR_DESCRIPTION\n", __func__);
+               pr_debug("%s: OID_GEN_VENDOR_DESCRIPTION\n", __func__);
                length = strlen (rndis_per_dev_params [configNr].vendorDescr);
                memcpy (outbuf,
                        rndis_per_dev_params [configNr].vendorDescr, length);
                break;
 
        case OID_GEN_VENDOR_DRIVER_VERSION:
-               DBG("%s: OID_GEN_VENDOR_DRIVER_VERSION\n", __func__);
+               pr_debug("%s: OID_GEN_VENDOR_DRIVER_VERSION\n", __func__);
                /* Created as LE */
                *outbuf = rndis_driver_version;
                retval = 0;
 
        /* mandatory */
        case OID_GEN_CURRENT_PACKET_FILTER:
-               DBG("%s: OID_GEN_CURRENT_PACKET_FILTER\n", __func__);
+               pr_debug("%s: OID_GEN_CURRENT_PACKET_FILTER\n", __func__);
                *outbuf = cpu_to_le32 (*rndis_per_dev_params[configNr].filter);
                retval = 0;
                break;
 
        /* mandatory */
        case OID_GEN_MAXIMUM_TOTAL_SIZE:
-               DBG("%s: OID_GEN_MAXIMUM_TOTAL_SIZE\n", __func__);
+               pr_debug("%s: OID_GEN_MAXIMUM_TOTAL_SIZE\n", __func__);
                *outbuf = __constant_cpu_to_le32(RNDIS_MAX_TOTAL_SIZE);
                retval = 0;
                break;
        /* mandatory */
        case OID_GEN_MEDIA_CONNECT_STATUS:
                if (rndis_debug > 1)
-                       DBG("%s: OID_GEN_MEDIA_CONNECT_STATUS\n", __func__);
+                       pr_debug("%s: OID_GEN_MEDIA_CONNECT_STATUS\n", __func__);
                *outbuf = cpu_to_le32 (rndis_per_dev_params [configNr]
                                                .media_state);
                retval = 0;
                break;
 
        case OID_GEN_PHYSICAL_MEDIUM:
-               DBG("%s: OID_GEN_PHYSICAL_MEDIUM\n", __func__);
+               pr_debug("%s: OID_GEN_PHYSICAL_MEDIUM\n", __func__);
                *outbuf = __constant_cpu_to_le32 (0);
                retval = 0;
                break;
         * versions emit undefined RNDIS messages. DOCUMENT ALL THESE!
         */
        case OID_GEN_MAC_OPTIONS:               /* from WinME */
-               DBG("%s: OID_GEN_MAC_OPTIONS\n", __func__);
+               pr_debug("%s: OID_GEN_MAC_OPTIONS\n", __func__);
                *outbuf = __constant_cpu_to_le32(
                          NDIS_MAC_OPTION_RECEIVE_SERIALIZED
                        | NDIS_MAC_OPTION_FULL_DUPLEX);
        /* mandatory */
        case OID_GEN_XMIT_OK:
                if (rndis_debug > 1)
-                       DBG("%s: OID_GEN_XMIT_OK\n", __func__);
+                       pr_debug("%s: OID_GEN_XMIT_OK\n", __func__);
                if (stats) {
                        *outbuf = cpu_to_le32(stats->tx_packets
                                - stats->tx_errors - stats->tx_dropped);
        /* mandatory */
        case OID_GEN_RCV_OK:
                if (rndis_debug > 1)
-                       DBG("%s: OID_GEN_RCV_OK\n", __func__);
+                       pr_debug("%s: OID_GEN_RCV_OK\n", __func__);
                if (stats) {
                        *outbuf = cpu_to_le32(stats->rx_packets
                                - stats->rx_errors - stats->rx_dropped);
        /* mandatory */
        case OID_GEN_XMIT_ERROR:
                if (rndis_debug > 1)
-                       DBG("%s: OID_GEN_XMIT_ERROR\n", __func__);
+                       pr_debug("%s: OID_GEN_XMIT_ERROR\n", __func__);
                if (stats) {
                        *outbuf = cpu_to_le32(stats->tx_errors);
                        retval = 0;
        /* mandatory */
        case OID_GEN_RCV_ERROR:
                if (rndis_debug > 1)
-                       DBG("%s: OID_GEN_RCV_ERROR\n", __func__);
+                       pr_debug("%s: OID_GEN_RCV_ERROR\n", __func__);
                if (stats) {
                        *outbuf = cpu_to_le32(stats->rx_errors);
                        retval = 0;
 
        /* mandatory */
        case OID_GEN_RCV_NO_BUFFER:
-               DBG("%s: OID_GEN_RCV_NO_BUFFER\n", __func__);
+               pr_debug("%s: OID_GEN_RCV_NO_BUFFER\n", __func__);
                if (stats) {
                        *outbuf = cpu_to_le32(stats->rx_dropped);
                        retval = 0;
 
        /* mandatory */
        case OID_802_3_PERMANENT_ADDRESS:
-               DBG("%s: OID_802_3_PERMANENT_ADDRESS\n", __func__);
+               pr_debug("%s: OID_802_3_PERMANENT_ADDRESS\n", __func__);
                if (rndis_per_dev_params [configNr].dev) {
                        length = ETH_ALEN;
                        memcpy (outbuf,
 
        /* mandatory */
        case OID_802_3_CURRENT_ADDRESS:
-               DBG("%s: OID_802_3_CURRENT_ADDRESS\n", __func__);
+               pr_debug("%s: OID_802_3_CURRENT_ADDRESS\n", __func__);
                if (rndis_per_dev_params [configNr].dev) {
                        length = ETH_ALEN;
                        memcpy (outbuf,
 
        /* mandatory */
        case OID_802_3_MULTICAST_LIST:
-               DBG("%s: OID_802_3_MULTICAST_LIST\n", __func__);
+               pr_debug("%s: OID_802_3_MULTICAST_LIST\n", __func__);
                /* Multicast base address only */
                *outbuf = __constant_cpu_to_le32 (0xE0000000);
                retval = 0;
 
        /* mandatory */
        case OID_802_3_MAXIMUM_LIST_SIZE:
-               DBG("%s: OID_802_3_MAXIMUM_LIST_SIZE\n", __func__);
+               pr_debug("%s: OID_802_3_MAXIMUM_LIST_SIZE\n", __func__);
                /* Multicast base address only */
                *outbuf = __constant_cpu_to_le32 (1);
                retval = 0;
                break;
 
        case OID_802_3_MAC_OPTIONS:
-               DBG("%s: OID_802_3_MAC_OPTIONS\n", __func__);
+               pr_debug("%s: OID_802_3_MAC_OPTIONS\n", __func__);
                break;
 
        /* ieee802.3 statistics OIDs (table 4-4) */
 
        /* mandatory */
        case OID_802_3_RCV_ERROR_ALIGNMENT:
-               DBG("%s: OID_802_3_RCV_ERROR_ALIGNMENT\n", __func__);
+               pr_debug("%s: OID_802_3_RCV_ERROR_ALIGNMENT\n", __func__);
                if (stats) {
                        *outbuf = cpu_to_le32(stats->rx_frame_errors);
                        retval = 0;
 
        /* mandatory */
        case OID_802_3_XMIT_ONE_COLLISION:
-               DBG("%s: OID_802_3_XMIT_ONE_COLLISION\n", __func__);
+               pr_debug("%s: OID_802_3_XMIT_ONE_COLLISION\n", __func__);
                *outbuf = __constant_cpu_to_le32 (0);
                retval = 0;
                break;
 
        /* mandatory */
        case OID_802_3_XMIT_MORE_COLLISIONS:
-               DBG("%s: OID_802_3_XMIT_MORE_COLLISIONS\n", __func__);
+               pr_debug("%s: OID_802_3_XMIT_MORE_COLLISIONS\n", __func__);
                *outbuf = __constant_cpu_to_le32 (0);
                retval = 0;
                break;
                return -ENOMEM;
 
        if (buf_len && rndis_debug > 1) {
-               DBG("set OID %08x value, len %d:\n", OID, buf_len);
+               pr_debug("set OID %08x value, len %d:\n", OID, buf_len);
                for (i = 0; i < buf_len; i += 16) {
-                       DBG("%03d: %08x %08x %08x %08x\n", i,
+                       pr_debug("%03d: %08x %08x %08x %08x\n", i,
                                get_unaligned_le32(&buf[i]),
                                get_unaligned_le32(&buf[i + 4]),
                                get_unaligned_le32(&buf[i + 8]),
                 *      MULTICAST, ALL_MULTICAST, BROADCAST
                 */
                *params->filter = (u16)get_unaligned_le32(buf);
-               DBG("%s: OID_GEN_CURRENT_PACKET_FILTER %08x\n",
+               pr_debug("%s: OID_GEN_CURRENT_PACKET_FILTER %08x\n",
                        __func__, *params->filter);
 
                /* this call has a significant side effect:  it's
 
        case OID_802_3_MULTICAST_LIST:
                /* I think we can ignore this */
-               DBG("%s: OID_802_3_MULTICAST_LIST\n", __func__);
+               pr_debug("%s: OID_802_3_MULTICAST_LIST\n", __func__);
                retval = 0;
                break;
 
        rndis_resp_t            *r;
        struct rndis_params     *params = rndis_per_dev_params + configNr;
 
-       // DBG("%s: OID = %08X\n", __func__, cpu_to_le32(buf->OID));
+       /* pr_debug("%s: OID = %08X\n", __func__, cpu_to_le32(buf->OID)); */
        if (!params->dev)
                return -ENOTSUPP;
 
        BufOffset = le32_to_cpu (buf->InformationBufferOffset);
 
 #ifdef VERBOSE_DEBUG
-       DBG("%s: Length: %d\n", __func__, BufLength);
-       DBG("%s: Offset: %d\n", __func__, BufOffset);
-       DBG("%s: InfoBuffer: ", __func__);
+       pr_debug("%s: Length: %d\n", __func__, BufLength);
+       pr_debug("%s: Offset: %d\n", __func__, BufOffset);
+       pr_debug("%s: InfoBuffer: ", __func__);
 
        for (i = 0; i < BufLength; i++) {
-               DBG("%02x ", *(((u8 *) buf) + i + 8 + BufOffset));
+               pr_debug("%02x ", *(((u8 *) buf) + i + 8 + BufOffset));
        }
 
-       DBG("\n");
+       pr_debug("\n");
 #endif
 
        resp->MessageType = __constant_cpu_to_le32 (REMOTE_NDIS_SET_CMPLT);
        /* For USB: responses may take up to 10 seconds */
        switch (MsgType) {
        case REMOTE_NDIS_INITIALIZE_MSG:
-               DBG("%s: REMOTE_NDIS_INITIALIZE_MSG\n",
+               pr_debug("%s: REMOTE_NDIS_INITIALIZE_MSG\n",
                        __func__ );
                params->state = RNDIS_INITIALIZED;
                return  rndis_init_response (configNr,
                                        (rndis_init_msg_type *) buf);
 
        case REMOTE_NDIS_HALT_MSG:
-               DBG("%s: REMOTE_NDIS_HALT_MSG\n",
+               pr_debug("%s: REMOTE_NDIS_HALT_MSG\n",
                        __func__ );
                params->state = RNDIS_UNINITIALIZED;
                if (params->dev) {
                                        (rndis_set_msg_type *) buf);
 
        case REMOTE_NDIS_RESET_MSG:
-               DBG("%s: REMOTE_NDIS_RESET_MSG\n",
+               pr_debug("%s: REMOTE_NDIS_RESET_MSG\n",
                        __func__ );
                return rndis_reset_response (configNr,
                                        (rndis_reset_msg_type *) buf);
        case REMOTE_NDIS_KEEPALIVE_MSG:
                /* For USB: host does this every 5 seconds */
                if (rndis_debug > 1)
-                       DBG("%s: REMOTE_NDIS_KEEPALIVE_MSG\n",
+                       pr_debug("%s: REMOTE_NDIS_KEEPALIVE_MSG\n",
                                __func__ );
                return rndis_keepalive_response (configNr,
                                                 (rndis_keepalive_msg_type *)
                {
                        unsigned i;
                        for (i = 0; i < MsgLength; i += 16) {
-                               DBG("%03d: "
+                               pr_debug("%03d: "
                                        " %02x %02x %02x %02x"
                                        " %02x %02x %02x %02x"
                                        " %02x %02x %02x %02x"
                        rndis_per_dev_params [i].used = 1;
                        rndis_per_dev_params [i].resp_avail = resp_avail;
                        rndis_per_dev_params [i].v = v;
-                       DBG("%s: configNr = %d\n", __func__, i);
+                       pr_debug("%s: configNr = %d\n", __func__, i);
                        return i;
                }
        }
-       DBG("failed\n");
+       pr_debug("failed\n");
 
        return -ENODEV;
 }
 
 void rndis_deregister (int configNr)
 {
-       DBG("%s: \n", __func__ );
+       pr_debug("%s: \n", __func__);
 
        if (configNr >= RNDIS_MAX_CONFIGS) return;
        rndis_per_dev_params [configNr].used = 0;
 
 int rndis_set_param_dev(u8 configNr, struct net_device *dev, u16 *cdc_filter)
 {
-       DBG("%s:\n", __func__ );
+       pr_debug("%s:\n", __func__);
        if (!dev)
                return -EINVAL;
        if (configNr >= RNDIS_MAX_CONFIGS) return -1;
 
 int rndis_set_param_vendor (u8 configNr, u32 vendorID, const char *vendorDescr)
 {
-       DBG("%s:\n", __func__ );
+       pr_debug("%s:\n", __func__);
        if (!vendorDescr) return -1;
        if (configNr >= RNDIS_MAX_CONFIGS) return -1;
 
 
 int rndis_set_param_medium (u8 configNr, u32 medium, u32 speed)
 {
-       DBG("%s: %u %u\n", __func__, medium, speed);
+       pr_debug("%s: %u %u\n", __func__, medium, speed);
        if (configNr >= RNDIS_MAX_CONFIGS) return -1;
 
        rndis_per_dev_params [configNr].medium = medium;
                        break;
                default:
                        if (fl_speed) p->speed = speed;
-                       else DBG("%c is not valid\n", c);
+                       else pr_debug("%c is not valid\n", c);
                        break;
                }
 
                                        &rndis_proc_fops,
                                        (void *)(rndis_per_dev_params + i))))
                {
-                       DBG("%s :remove entries", __func__);
+                       pr_debug("%s :remove entries", __func__);
                        while (i) {
                                sprintf (name, NAME_TEMPLATE, --i);
                                remove_proc_entry (name, NULL);
                        }
-                       DBG("\n");
+                       pr_debug("\n");
                        return -EIO;
                }
 #endif