linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / usb / gadget / rndis.c
index 408c338..6d6eaad 100644 (file)
@@ -1,28 +1,29 @@
-/*
+/* 
  * RNDIS MSG parser
- *
+ * 
  * Version:     $Id: rndis.c,v 1.19 2004/03/25 21:33:46 robert Exp $
- *
+ * 
  * Authors:    Benedikt Spranger, Pengutronix
- *             Robert Schwebel, Pengutronix
- *
+ *             Robert Schwebel, Pengutronix
+ * 
  *              This program is free software; you can redistribute it and/or
  *              modify it under the terms of the GNU General Public License
- *              version 2, as published by the Free Software Foundation.
- *
+ *              version 2, as published by the Free Software Foundation. 
+ * 
  *             This software was originally developed in conformance with
  *             Microsoft's Remote NDIS Specification License Agreement.
- *
+ *              
  * 03/12/2004 Kai-Uwe Bloem <linux-development@auerswald.de>
  *             Fixed message length bug in init_response
- *
+ * 
  * 03/25/2004 Kai-Uwe Bloem <linux-development@auerswald.de>
- *             Fixed rndis_rm_hdr length bug.
+ *             Fixed rndis_rm_hdr length bug.
  *
  * Copyright (C) 2004 by David Brownell
  *             updates to merge with Linux 2.6, better match RNDIS spec
  */
 
+#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
 #include <linux/kernel.h>
@@ -81,7 +82,7 @@ static rndis_resp_t *rndis_add_response (int configNr, u32 length);
 
 
 /* supported OIDs */
-static const u32 oid_supported_list [] =
+static const u32 oid_supported_list [] = 
 {
        /* the general stuff */
        OID_GEN_SUPPORTED_LIST,
@@ -102,7 +103,7 @@ static const u32 oid_supported_list [] =
 #if 0
        OID_GEN_RNDIS_CONFIG_PARAMETER,
 #endif
-
+       
        /* the statistical stuff */
        OID_GEN_XMIT_OK,
        OID_GEN_RCV_OK,
@@ -126,14 +127,14 @@ static const u32 oid_supported_list [] =
        OID_GEN_TRANSMIT_QUEUE_LENGTH,
 #endif /* RNDIS_OPTIONAL_STATS */
 
-       /* mandatory 802.3 */
+       /* mandatory 802.3 */
        /* the general stuff */
        OID_802_3_PERMANENT_ADDRESS,
        OID_802_3_CURRENT_ADDRESS,
        OID_802_3_MULTICAST_LIST,
        OID_802_3_MAC_OPTIONS,
        OID_802_3_MAXIMUM_LIST_SIZE,
-
+       
        /* the statistical stuff */
        OID_802_3_RCV_ERROR_ALIGNMENT,
        OID_802_3_XMIT_ONE_COLLISION,
@@ -171,8 +172,8 @@ static int
 gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                rndis_resp_t *r)
 {
-       int                     retval = -ENOTSUPP;
-       u32                     length = 4;     /* usually */
+       int                     retval = -ENOTSUPP;
+       u32                     length = 4;     /* usually */
        __le32                  *outbuf;
        int                     i, count;
        rndis_query_cmplt_type  *resp;
@@ -210,27 +211,27 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        outbuf[i] = cpu_to_le32 (oid_supported_list[i]);
                retval = 0;
                break;
-
+               
        /* mandatory */
        case OID_GEN_HARDWARE_STATUS:
                DEBUG("%s: OID_GEN_HARDWARE_STATUS\n", __FUNCTION__);
-               /* Bogus question!
+               /* Bogus question! 
                 * Hardware must be ready to receive high level protocols.
-                * BTW:
+                * BTW: 
                 * reddite ergo quae sunt Caesaris Caesari
                 * et quae sunt Dei Deo!
                 */
                *outbuf = __constant_cpu_to_le32 (0);
                retval = 0;
                break;
-
+               
        /* mandatory */
        case OID_GEN_MEDIA_SUPPORTED:
                DEBUG("%s: OID_GEN_MEDIA_SUPPORTED\n", __FUNCTION__);
                *outbuf = cpu_to_le32 (rndis_per_dev_params [configNr].medium);
                retval = 0;
                break;
-
+               
        /* mandatory */
        case OID_GEN_MEDIA_IN_USE:
                DEBUG("%s: OID_GEN_MEDIA_IN_USE\n", __FUNCTION__);
@@ -238,7 +239,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                *outbuf = cpu_to_le32 (rndis_per_dev_params [configNr].medium);
                retval = 0;
                break;
-
+               
        /* mandatory */
        case OID_GEN_MAXIMUM_FRAME_SIZE:
                DEBUG("%s: OID_GEN_MAXIMUM_FRAME_SIZE\n", __FUNCTION__);
@@ -248,7 +249,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        /* mandatory */
        case OID_GEN_LINK_SPEED:
                if (rndis_debug > 1)
@@ -271,7 +272,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        /* mandatory */
        case OID_GEN_RECEIVE_BLOCK_SIZE:
                DEBUG("%s: OID_GEN_RECEIVE_BLOCK_SIZE\n", __FUNCTION__);
@@ -281,7 +282,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        /* mandatory */
        case OID_GEN_VENDOR_ID:
                DEBUG("%s: OID_GEN_VENDOR_ID\n", __FUNCTION__);
@@ -289,7 +290,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        rndis_per_dev_params [configNr].vendorID);
                retval = 0;
                break;
-
+               
        /* mandatory */
        case OID_GEN_VENDOR_DESCRIPTION:
                DEBUG("%s: OID_GEN_VENDOR_DESCRIPTION\n", __FUNCTION__);
@@ -355,7 +356,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        DEBUG("%s: OID_GEN_XMIT_OK\n", __FUNCTION__);
                if (rndis_per_dev_params [configNr].stats) {
                        *outbuf = cpu_to_le32 (
-                           rndis_per_dev_params [configNr].stats->tx_packets -
+                           rndis_per_dev_params [configNr].stats->tx_packets - 
                            rndis_per_dev_params [configNr].stats->tx_errors -
                            rndis_per_dev_params [configNr].stats->tx_dropped);
                        retval = 0;
@@ -368,13 +369,13 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        DEBUG("%s: OID_GEN_RCV_OK\n", __FUNCTION__);
                if (rndis_per_dev_params [configNr].stats) {
                        *outbuf = cpu_to_le32 (
-                           rndis_per_dev_params [configNr].stats->rx_packets -
+                           rndis_per_dev_params [configNr].stats->rx_packets - 
                            rndis_per_dev_params [configNr].stats->rx_errors -
                            rndis_per_dev_params [configNr].stats->rx_dropped);
                        retval = 0;
                }
                break;
-
+               
        /* mandatory */
        case OID_GEN_XMIT_ERROR:
                if (rndis_debug > 1)
@@ -385,7 +386,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        /* mandatory */
        case OID_GEN_RCV_ERROR:
                if (rndis_debug > 1)
@@ -396,7 +397,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        /* mandatory */
        case OID_GEN_RCV_NO_BUFFER:
                DEBUG("%s: OID_GEN_RCV_NO_BUFFER\n", __FUNCTION__);
@@ -410,7 +411,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
 #ifdef RNDIS_OPTIONAL_STATS
        case OID_GEN_DIRECTED_BYTES_XMIT:
                DEBUG("%s: OID_GEN_DIRECTED_BYTES_XMIT\n", __FUNCTION__);
-               /*
+               /* 
                 * Aunt Tilly's size of shoes
                 * minus antarctica count of penguins
                 * divided by weight of Alpha Centauri
@@ -418,7 +419,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                if (rndis_per_dev_params [configNr].stats) {
                        *outbuf = cpu_to_le32 (
                                (rndis_per_dev_params [configNr]
-                                       .stats->tx_packets -
+                                       .stats->tx_packets - 
                                 rndis_per_dev_params [configNr]
                                         .stats->tx_errors -
                                 rndis_per_dev_params [configNr]
@@ -427,14 +428,14 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        case OID_GEN_DIRECTED_FRAMES_XMIT:
                DEBUG("%s: OID_GEN_DIRECTED_FRAMES_XMIT\n", __FUNCTION__);
                /* dito */
                if (rndis_per_dev_params [configNr].stats) {
                        *outbuf = cpu_to_le32 (
                                (rndis_per_dev_params [configNr]
-                                       .stats->tx_packets -
+                                       .stats->tx_packets - 
                                 rndis_per_dev_params [configNr]
                                         .stats->tx_errors -
                                 rndis_per_dev_params [configNr]
@@ -443,7 +444,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        case OID_GEN_MULTICAST_BYTES_XMIT:
                DEBUG("%s: OID_GEN_MULTICAST_BYTES_XMIT\n", __FUNCTION__);
                if (rndis_per_dev_params [configNr].stats) {
@@ -452,7 +453,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        case OID_GEN_MULTICAST_FRAMES_XMIT:
                DEBUG("%s: OID_GEN_MULTICAST_FRAMES_XMIT\n", __FUNCTION__);
                if (rndis_per_dev_params [configNr].stats) {
@@ -461,7 +462,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        case OID_GEN_BROADCAST_BYTES_XMIT:
                DEBUG("%s: OID_GEN_BROADCAST_BYTES_XMIT\n", __FUNCTION__);
                if (rndis_per_dev_params [configNr].stats) {
@@ -470,7 +471,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        case OID_GEN_BROADCAST_FRAMES_XMIT:
                DEBUG("%s: OID_GEN_BROADCAST_FRAMES_XMIT\n", __FUNCTION__);
                if (rndis_per_dev_params [configNr].stats) {
@@ -479,19 +480,19 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        case OID_GEN_DIRECTED_BYTES_RCV:
                DEBUG("%s: OID_GEN_DIRECTED_BYTES_RCV\n", __FUNCTION__);
                *outbuf = __constant_cpu_to_le32 (0);
                retval = 0;
                break;
-
+               
        case OID_GEN_DIRECTED_FRAMES_RCV:
                DEBUG("%s: OID_GEN_DIRECTED_FRAMES_RCV\n", __FUNCTION__);
                *outbuf = __constant_cpu_to_le32 (0);
                retval = 0;
                break;
-
+               
        case OID_GEN_MULTICAST_BYTES_RCV:
                DEBUG("%s: OID_GEN_MULTICAST_BYTES_RCV\n", __FUNCTION__);
                if (rndis_per_dev_params [configNr].stats) {
@@ -500,7 +501,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        case OID_GEN_MULTICAST_FRAMES_RCV:
                DEBUG("%s: OID_GEN_MULTICAST_FRAMES_RCV\n", __FUNCTION__);
                if (rndis_per_dev_params [configNr].stats) {
@@ -509,7 +510,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        case OID_GEN_BROADCAST_BYTES_RCV:
                DEBUG("%s: OID_GEN_BROADCAST_BYTES_RCV\n", __FUNCTION__);
                if (rndis_per_dev_params [configNr].stats) {
@@ -518,7 +519,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        case OID_GEN_BROADCAST_FRAMES_RCV:
                DEBUG("%s: OID_GEN_BROADCAST_FRAMES_RCV\n", __FUNCTION__);
                if (rndis_per_dev_params [configNr].stats) {
@@ -527,7 +528,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        case OID_GEN_RCV_CRC_ERROR:
                DEBUG("%s: OID_GEN_RCV_CRC_ERROR\n", __FUNCTION__);
                if (rndis_per_dev_params [configNr].stats) {
@@ -536,7 +537,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        case OID_GEN_TRANSMIT_QUEUE_LENGTH:
                DEBUG("%s: OID_GEN_TRANSMIT_QUEUE_LENGTH\n", __FUNCTION__);
                *outbuf = __constant_cpu_to_le32 (0);
@@ -557,7 +558,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        /* mandatory */
        case OID_802_3_CURRENT_ADDRESS:
                DEBUG("%s: OID_802_3_CURRENT_ADDRESS\n", __FUNCTION__);
@@ -569,7 +570,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        /* mandatory */
        case OID_802_3_MULTICAST_LIST:
                DEBUG("%s: OID_802_3_MULTICAST_LIST\n", __FUNCTION__);
@@ -577,7 +578,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                *outbuf = __constant_cpu_to_le32 (0xE0000000);
                retval = 0;
                break;
-
+               
        /* mandatory */
        case OID_802_3_MAXIMUM_LIST_SIZE:
                DEBUG("%s: OID_802_3_MAXIMUM_LIST_SIZE\n", __FUNCTION__);
@@ -585,7 +586,7 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                *outbuf = __constant_cpu_to_le32 (1);
                retval = 0;
                break;
-
+               
        case OID_802_3_MAC_OPTIONS:
                DEBUG("%s: OID_802_3_MAC_OPTIONS\n", __FUNCTION__);
                break;
@@ -601,56 +602,56 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
                        retval = 0;
                }
                break;
-
+               
        /* mandatory */
        case OID_802_3_XMIT_ONE_COLLISION:
                DEBUG("%s: OID_802_3_XMIT_ONE_COLLISION\n", __FUNCTION__);
                *outbuf = __constant_cpu_to_le32 (0);
                retval = 0;
                break;
-
+               
        /* mandatory */
        case OID_802_3_XMIT_MORE_COLLISIONS:
                DEBUG("%s: OID_802_3_XMIT_MORE_COLLISIONS\n", __FUNCTION__);
                *outbuf = __constant_cpu_to_le32 (0);
                retval = 0;
                break;
-
+               
 #ifdef RNDIS_OPTIONAL_STATS
        case OID_802_3_XMIT_DEFERRED:
                DEBUG("%s: OID_802_3_XMIT_DEFERRED\n", __FUNCTION__);
                /* TODO */
                break;
-
+               
        case OID_802_3_XMIT_MAX_COLLISIONS:
                DEBUG("%s: OID_802_3_XMIT_MAX_COLLISIONS\n", __FUNCTION__);
                /* TODO */
                break;
-
+               
        case OID_802_3_RCV_OVERRUN:
                DEBUG("%s: OID_802_3_RCV_OVERRUN\n", __FUNCTION__);
                /* TODO */
                break;
-
+               
        case OID_802_3_XMIT_UNDERRUN:
                DEBUG("%s: OID_802_3_XMIT_UNDERRUN\n", __FUNCTION__);
                /* TODO */
                break;
-
+               
        case OID_802_3_XMIT_HEARTBEAT_FAILURE:
                DEBUG("%s: OID_802_3_XMIT_HEARTBEAT_FAILURE\n", __FUNCTION__);
                /* TODO */
                break;
-
+               
        case OID_802_3_XMIT_TIMES_CRS_LOST:
                DEBUG("%s: OID_802_3_XMIT_TIMES_CRS_LOST\n", __FUNCTION__);
                /* TODO */
                break;
-
+               
        case OID_802_3_XMIT_LATE_COLLISIONS:
                DEBUG("%s: OID_802_3_XMIT_LATE_COLLISIONS\n", __FUNCTION__);
                /* TODO */
-               break;
+               break;          
 #endif /* RNDIS_OPTIONAL_STATS */
 
 #ifdef RNDIS_PM
@@ -675,23 +676,23 @@ gen_ndis_query_resp (int configNr, u32 OID, u8 *buf, unsigned buf_len,
 #endif
 
        default:
-               printk (KERN_WARNING "%s: query unknown OID 0x%08X\n",
+               printk (KERN_WARNING "%s: query unknown OID 0x%08X\n", 
                         __FUNCTION__, OID);
        }
        if (retval < 0)
                length = 0;
-
+       
        resp->InformationBufferLength = cpu_to_le32 (length);
        r->length = length + sizeof *resp;
        resp->MessageLength = cpu_to_le32 (r->length);
        return retval;
 }
 
-static int gen_ndis_set_resp (u8 configNr, u32 OID, u8 *buf, u32 buf_len,
-                       rndis_resp_t *r)
+static int gen_ndis_set_resp (u8 configNr, u32 OID, u8 *buf, u32 buf_len, 
+                             rndis_resp_t *r)
 {
        rndis_set_cmplt_type            *resp;
-       int                             i, retval = -ENOTSUPP;
+       int                             i, retval = -ENOTSUPP;
        struct rndis_params             *params;
 
        if (!r)
@@ -744,9 +745,9 @@ update_linkstate:
                        netif_stop_queue (params->dev);
                }
                break;
-
+               
        case OID_802_3_MULTICAST_LIST:
-               /* I think we can ignore this */
+               /* I think we can ignore this */                
                DEBUG("%s: OID_802_3_MULTICAST_LIST\n", __FUNCTION__);
                retval = 0;
                break;
@@ -795,29 +796,29 @@ update_linkstate:
 #endif /* RNDIS_PM */
 
        default:
-               printk (KERN_WARNING "%s: set unknown OID 0x%08X, size %d\n",
+               printk (KERN_WARNING "%s: set unknown OID 0x%08X, size %d\n", 
                         __FUNCTION__, OID, buf_len);
        }
-
+       
        return retval;
 }
 
-/*
- * Response Functions
+/* 
+ * Response Functions 
  */
 
 static int rndis_init_response (int configNr, rndis_init_msg_type *buf)
 {
-       rndis_init_cmplt_type   *resp;
+       rndis_init_cmplt_type   *resp; 
        rndis_resp_t            *r;
-
+       
        if (!rndis_per_dev_params [configNr].dev) return -ENOTSUPP;
-
+       
        r = rndis_add_response (configNr, sizeof (rndis_init_cmplt_type));
        if (!r)
                return -ENOMEM;
        resp = (rndis_init_cmplt_type *) r->buf;
-
+       
        resp->MessageType = __constant_cpu_to_le32 (
                        REMOTE_NDIS_INITIALIZE_CMPLT);
        resp->MessageLength = __constant_cpu_to_le32 (52);
@@ -836,11 +837,11 @@ static int rndis_init_response (int configNr, rndis_init_msg_type *buf)
        resp->PacketAlignmentFactor = __constant_cpu_to_le32 (0);
        resp->AFListOffset = __constant_cpu_to_le32 (0);
        resp->AFListSize = __constant_cpu_to_le32 (0);
-
+       
        if (rndis_per_dev_params [configNr].ack)
-               rndis_per_dev_params [configNr].ack (
-                       rndis_per_dev_params [configNr].dev);
-
+           rndis_per_dev_params [configNr].ack (
+                       rndis_per_dev_params [configNr].dev);
+       
        return 0;
 }
 
@@ -848,10 +849,10 @@ static int rndis_query_response (int configNr, rndis_query_msg_type *buf)
 {
        rndis_query_cmplt_type *resp;
        rndis_resp_t            *r;
-
+       
        // DEBUG("%s: OID = %08X\n", __FUNCTION__, cpu_to_le32(buf->OID));
        if (!rndis_per_dev_params [configNr].dev) return -ENOTSUPP;
-
+       
        /*
         * we need more memory:
         * gen_ndis_query_resp expects enough space for
@@ -863,10 +864,10 @@ static int rndis_query_response (int configNr, rndis_query_msg_type *buf)
        if (!r)
                return -ENOMEM;
        resp = (rndis_query_cmplt_type *) r->buf;
-
+       
        resp->MessageType = __constant_cpu_to_le32 (REMOTE_NDIS_QUERY_CMPLT);
        resp->RequestID = buf->RequestID; /* Still LE in msg buffer */
-
+       
        if (gen_ndis_query_resp (configNr, le32_to_cpu (buf->OID),
                        le32_to_cpu(buf->InformationBufferOffset)
                                        + 8 + (u8 *) buf,
@@ -880,10 +881,10 @@ static int rndis_query_response (int configNr, rndis_query_msg_type *buf)
                resp->InformationBufferOffset = __constant_cpu_to_le32 (0);
        } else
                resp->Status = __constant_cpu_to_le32 (RNDIS_STATUS_SUCCESS);
-
+       
        if (rndis_per_dev_params [configNr].ack)
-               rndis_per_dev_params [configNr].ack (
-                       rndis_per_dev_params [configNr].dev);
+           rndis_per_dev_params [configNr].ack (
+                       rndis_per_dev_params [configNr].dev);
        return 0;
 }
 
@@ -892,7 +893,7 @@ static int rndis_set_response (int configNr, rndis_set_msg_type *buf)
        u32                     BufLength, BufOffset;
        rndis_set_cmplt_type    *resp;
        rndis_resp_t            *r;
-
+       
        r = rndis_add_response (configNr, sizeof (rndis_set_cmplt_type));
        if (!r)
                return -ENOMEM;
@@ -905,27 +906,26 @@ static int rndis_set_response (int configNr, rndis_set_msg_type *buf)
        DEBUG("%s: Length: %d\n", __FUNCTION__, BufLength);
        DEBUG("%s: Offset: %d\n", __FUNCTION__, BufOffset);
        DEBUG("%s: InfoBuffer: ", __FUNCTION__);
-
+       
        for (i = 0; i < BufLength; i++) {
                DEBUG ("%02x ", *(((u8 *) buf) + i + 8 + BufOffset));
        }
-
+       
        DEBUG ("\n");
 #endif
-
+       
        resp->MessageType = __constant_cpu_to_le32 (REMOTE_NDIS_SET_CMPLT);
        resp->MessageLength = __constant_cpu_to_le32 (16);
        resp->RequestID = buf->RequestID; /* Still LE in msg buffer */
-       if (gen_ndis_set_resp (configNr, le32_to_cpu (buf->OID),
-                       ((u8 *) buf) + 8 + BufOffset, BufLength, r))
-               resp->Status = __constant_cpu_to_le32 (RNDIS_STATUS_NOT_SUPPORTED);
-       else
-               resp->Status = __constant_cpu_to_le32 (RNDIS_STATUS_SUCCESS);
-
+       if (gen_ndis_set_resp (configNr, le32_to_cpu (buf->OID), 
+                              ((u8 *) buf) + 8 + BufOffset, BufLength, r))
+           resp->Status = __constant_cpu_to_le32 (RNDIS_STATUS_NOT_SUPPORTED);
+       else resp->Status = __constant_cpu_to_le32 (RNDIS_STATUS_SUCCESS);
+       
        if (rndis_per_dev_params [configNr].ack)
-               rndis_per_dev_params [configNr].ack (
-                       rndis_per_dev_params [configNr].dev);
-
+           rndis_per_dev_params [configNr].ack (
+                       rndis_per_dev_params [configNr].dev);
+       
        return 0;
 }
 
@@ -933,27 +933,27 @@ static int rndis_reset_response (int configNr, rndis_reset_msg_type *buf)
 {
        rndis_reset_cmplt_type  *resp;
        rndis_resp_t            *r;
-
+       
        r = rndis_add_response (configNr, sizeof (rndis_reset_cmplt_type));
        if (!r)
                return -ENOMEM;
        resp = (rndis_reset_cmplt_type *) r->buf;
-
+       
        resp->MessageType = __constant_cpu_to_le32 (REMOTE_NDIS_RESET_CMPLT);
        resp->MessageLength = __constant_cpu_to_le32 (16);
        resp->Status = __constant_cpu_to_le32 (RNDIS_STATUS_SUCCESS);
        /* resent information */
        resp->AddressingReset = __constant_cpu_to_le32 (1);
-
+       
        if (rndis_per_dev_params [configNr].ack)
-               rndis_per_dev_params [configNr].ack (
-                       rndis_per_dev_params [configNr].dev);
+           rndis_per_dev_params [configNr].ack (
+                       rndis_per_dev_params [configNr].dev);
 
        return 0;
 }
 
 static int rndis_keepalive_response (int configNr,
-                               rndis_keepalive_msg_type *buf)
+                                    rndis_keepalive_msg_type *buf)
 {
        rndis_keepalive_cmplt_type      *resp;
        rndis_resp_t                    *r;
@@ -964,48 +964,48 @@ static int rndis_keepalive_response (int configNr,
        if (!r)
                return -ENOMEM;
        resp = (rndis_keepalive_cmplt_type *) r->buf;
-
+               
        resp->MessageType = __constant_cpu_to_le32 (
                        REMOTE_NDIS_KEEPALIVE_CMPLT);
        resp->MessageLength = __constant_cpu_to_le32 (16);
        resp->RequestID = buf->RequestID; /* Still LE in msg buffer */
        resp->Status = __constant_cpu_to_le32 (RNDIS_STATUS_SUCCESS);
-
+       
        if (rndis_per_dev_params [configNr].ack)
-               rndis_per_dev_params [configNr].ack (
-                       rndis_per_dev_params [configNr].dev);
-
+           rndis_per_dev_params [configNr].ack (
+                       rndis_per_dev_params [configNr].dev);
+       
        return 0;
 }
 
 
-/*
- * Device to Host Comunication
+/* 
+ * Device to Host Comunication 
  */
 static int rndis_indicate_status_msg (int configNr, u32 status)
 {
-       rndis_indicate_status_msg_type  *resp;
+       rndis_indicate_status_msg_type  *resp;  
        rndis_resp_t                    *r;
-
+       
        if (rndis_per_dev_params [configNr].state == RNDIS_UNINITIALIZED)
-               return -ENOTSUPP;
-
-       r = rndis_add_response (configNr,
+           return -ENOTSUPP;
+       
+       r = rndis_add_response (configNr, 
                                sizeof (rndis_indicate_status_msg_type));
        if (!r)
                return -ENOMEM;
        resp = (rndis_indicate_status_msg_type *) r->buf;
-
+       
        resp->MessageType = __constant_cpu_to_le32 (
                        REMOTE_NDIS_INDICATE_STATUS_MSG);
        resp->MessageLength = __constant_cpu_to_le32 (20);
        resp->Status = cpu_to_le32 (status);
        resp->StatusBufferLength = __constant_cpu_to_le32 (0);
        resp->StatusBufferOffset = __constant_cpu_to_le32 (0);
-
-       if (rndis_per_dev_params [configNr].ack)
-               rndis_per_dev_params [configNr].ack (
-                       rndis_per_dev_params [configNr].dev);
+       
+       if (rndis_per_dev_params [configNr].ack) 
+           rndis_per_dev_params [configNr].ack (
+                       rndis_per_dev_params [configNr].dev);
        return 0;
 }
 
@@ -1013,7 +1013,7 @@ int rndis_signal_connect (int configNr)
 {
        rndis_per_dev_params [configNr].media_state
                        = NDIS_MEDIA_STATE_CONNECTED;
-       return rndis_indicate_status_msg (configNr,
+       return rndis_indicate_status_msg (configNr, 
                                          RNDIS_STATUS_MEDIA_CONNECT);
 }
 
@@ -1045,26 +1045,26 @@ void rndis_set_host_mac (int configNr, const u8 *addr)
        rndis_per_dev_params [configNr].host_mac = addr;
 }
 
-/*
- * Message Parser
+/* 
+ * Message Parser 
  */
 int rndis_msg_parser (u8 configNr, u8 *buf)
 {
        u32 MsgType, MsgLength;
        __le32 *tmp;
        struct rndis_params             *params;
-
+       
        if (!buf)
                return -ENOMEM;
-
-       tmp = (__le32 *) buf;
+       
+       tmp = (__le32 *) buf; 
        MsgType   = le32_to_cpup(tmp++);
        MsgLength = le32_to_cpup(tmp++);
-
+       
        if (configNr >= RNDIS_MAX_CONFIGS)
                return -ENOTSUPP;
        params = &rndis_per_dev_params [configNr];
-
+       
        /* NOTE: RNDIS is *EXTREMELY* chatty ... Windows constantly polls for
         * rx/tx statistics and link status, in addition to KEEPALIVE traffic
         * and normal HC level polling to see if there's any IN traffic.
@@ -1073,12 +1073,12 @@ int rndis_msg_parser (u8 configNr, u8 *buf)
        /* For USB: responses may take up to 10 seconds */
        switch (MsgType) {
        case REMOTE_NDIS_INITIALIZE_MSG:
-               DEBUG("%s: REMOTE_NDIS_INITIALIZE_MSG\n",
+               DEBUG("%s: REMOTE_NDIS_INITIALIZE_MSG\n", 
                        __FUNCTION__ );
                params->state = RNDIS_INITIALIZED;
                return  rndis_init_response (configNr,
-                                       (rndis_init_msg_type *) buf);
-
+                                            (rndis_init_msg_type *) buf);
+               
        case REMOTE_NDIS_HALT_MSG:
                DEBUG("%s: REMOTE_NDIS_HALT_MSG\n",
                        __FUNCTION__ );
@@ -1088,37 +1088,37 @@ int rndis_msg_parser (u8 configNr, u8 *buf)
                        netif_stop_queue (params->dev);
                }
                return 0;
-
+               
        case REMOTE_NDIS_QUERY_MSG:
-               return rndis_query_response (configNr,
-                                       (rndis_query_msg_type *) buf);
-
+               return rndis_query_response (configNr, 
+                                            (rndis_query_msg_type *) buf);
+               
        case REMOTE_NDIS_SET_MSG:
-               return rndis_set_response (configNr,
-                                       (rndis_set_msg_type *) buf);
-
+               return rndis_set_response (configNr, 
+                                          (rndis_set_msg_type *) buf);
+               
        case REMOTE_NDIS_RESET_MSG:
-               DEBUG("%s: REMOTE_NDIS_RESET_MSG\n",
+               DEBUG("%s: REMOTE_NDIS_RESET_MSG\n", 
                        __FUNCTION__ );
                return rndis_reset_response (configNr,
-                                       (rndis_reset_msg_type *) buf);
+                                            (rndis_reset_msg_type *) buf);
 
        case REMOTE_NDIS_KEEPALIVE_MSG:
                /* For USB: host does this every 5 seconds */
                if (rndis_debug > 1)
-                       DEBUG("%s: REMOTE_NDIS_KEEPALIVE_MSG\n",
+                       DEBUG("%s: REMOTE_NDIS_KEEPALIVE_MSG\n", 
                                __FUNCTION__ );
                return rndis_keepalive_response (configNr,
-                                                (rndis_keepalive_msg_type *)
+                                                (rndis_keepalive_msg_type *) 
                                                 buf);
-
-       default:
+               
+       default: 
                /* At least Windows XP emits some undefined RNDIS messages.
                 * In one case those messages seemed to relate to the host
                 * suspending itself.
                 */
                printk (KERN_WARNING
-                       "%s: unknown RNDIS message 0x%08X len %d\n",
+                       "%s: unknown RNDIS message 0x%08X len %d\n", 
                        __FUNCTION__ , MsgType, MsgLength);
                {
                        unsigned i;
@@ -1142,14 +1142,14 @@ int rndis_msg_parser (u8 configNr, u8 *buf)
                }
                break;
        }
-
+       
        return -ENOTSUPP;
 }
 
 int rndis_register (int (* rndis_control_ack) (struct net_device *))
 {
        u8 i;
-
+       
        for (i = 0; i < RNDIS_MAX_CONFIGS; i++) {
                if (!rndis_per_dev_params [i].used) {
                        rndis_per_dev_params [i].used = 1;
@@ -1159,32 +1159,32 @@ int rndis_register (int (* rndis_control_ack) (struct net_device *))
                }
        }
        DEBUG("failed\n");
-
+       
        return -1;
 }
 
 void rndis_deregister (int configNr)
 {
        DEBUG("%s: \n", __FUNCTION__ );
-
+       
        if (configNr >= RNDIS_MAX_CONFIGS) return;
        rndis_per_dev_params [configNr].used = 0;
-
+       
        return;
 }
 
-int rndis_set_param_dev (u8 configNr, struct net_device *dev,
+int rndis_set_param_dev (u8 configNr, struct net_device *dev, 
                         struct net_device_stats *stats,
                         u16 *cdc_filter)
 {
        DEBUG("%s:\n", __FUNCTION__ );
        if (!dev || !stats) return -1;
        if (configNr >= RNDIS_MAX_CONFIGS) return -1;
-
+       
        rndis_per_dev_params [configNr].dev = dev;
        rndis_per_dev_params [configNr].stats = stats;
        rndis_per_dev_params [configNr].filter = cdc_filter;
-
+       
        return 0;
 }
 
@@ -1193,10 +1193,10 @@ int rndis_set_param_vendor (u8 configNr, u32 vendorID, const char *vendorDescr)
        DEBUG("%s:\n", __FUNCTION__ );
        if (!vendorDescr) return -1;
        if (configNr >= RNDIS_MAX_CONFIGS) return -1;
-
+       
        rndis_per_dev_params [configNr].vendorID = vendorID;
        rndis_per_dev_params [configNr].vendorDescr = vendorDescr;
-
+       
        return 0;
 }
 
@@ -1204,10 +1204,10 @@ int rndis_set_param_medium (u8 configNr, u32 medium, u32 speed)
 {
        DEBUG("%s: %u %u\n", __FUNCTION__, medium, speed);
        if (configNr >= RNDIS_MAX_CONFIGS) return -1;
-
+       
        rndis_per_dev_params [configNr].medium = medium;
        rndis_per_dev_params [configNr].speed = speed;
-
+       
        return 0;
 }
 
@@ -1229,9 +1229,9 @@ void rndis_free_response (int configNr, u8 *buf)
 {
        rndis_resp_t            *r;
        struct list_head        *act, *tmp;
-
-       list_for_each_safe (act, tmp,
-                       &(rndis_per_dev_params [configNr].resp_queue))
+       
+       list_for_each_safe (act, tmp, 
+                           &(rndis_per_dev_params [configNr].resp_queue))
        {
                r = list_entry (act, rndis_resp_t, list);
                if (r && r->buf == buf) {
@@ -1244,12 +1244,12 @@ void rndis_free_response (int configNr, u8 *buf)
 u8 *rndis_get_next_response (int configNr, u32 *length)
 {
        rndis_resp_t            *r;
-       struct list_head        *act, *tmp;
-
+       struct list_head        *act, *tmp;
+       
        if (!length) return NULL;
-
-       list_for_each_safe (act, tmp,
-                       &(rndis_per_dev_params [configNr].resp_queue))
+       
+       list_for_each_safe (act, tmp, 
+                           &(rndis_per_dev_params [configNr].resp_queue))
        {
                r = list_entry (act, rndis_resp_t, list);
                if (!r->send) {
@@ -1258,24 +1258,24 @@ u8 *rndis_get_next_response (int configNr, u32 *length)
                        return r->buf;
                }
        }
-
+       
        return NULL;
 }
 
 static rndis_resp_t *rndis_add_response (int configNr, u32 length)
 {
        rndis_resp_t    *r;
-
+       
        /* NOTE:  this gets copied into ether.c USB_BUFSIZ bytes ... */
        r = kmalloc (sizeof (rndis_resp_t) + length, GFP_ATOMIC);
        if (!r) return NULL;
-
+       
        r->buf = (u8 *) (r + 1);
        r->length = length;
        r->send = 0;
-
-       list_add_tail (&r->list,
-               &(rndis_per_dev_params [configNr].resp_queue));
+       
+       list_add_tail (&r->list, 
+                      &(rndis_per_dev_params [configNr].resp_queue));
        return r;
 }
 
@@ -1301,14 +1301,14 @@ int rndis_rm_hdr(struct sk_buff *skb)
 
 #ifdef CONFIG_USB_GADGET_DEBUG_FILES
 
-static int rndis_proc_read (char *page, char **start, off_t off, int count, int *eof,
-               void *data)
+static int rndis_proc_read (char *page, char **start, off_t off, int count, int *eof, 
+                    void *data)
 {
        char *out = page;
        int len;
        rndis_params *param = (rndis_params *) data;
-
-       out += snprintf (out, count,
+       
+       out += snprintf (out, count, 
                         "Config Nr. %d\n"
                         "used      : %s\n"
                         "state     : %s\n"
@@ -1316,8 +1316,8 @@ static int rndis_proc_read (char *page, char **start, off_t off, int count, int
                         "speed     : %d\n"
                         "cable     : %s\n"
                         "vendor ID : 0x%08X\n"
-                        "vendor    : %s\n",
-                        param->confignr, (param->used) ? "y" : "n",
+                        "vendor    : %s\n", 
+                        param->confignr, (param->used) ? "y" : "n", 
                         ({ char *s = "?";
                         switch (param->state) {
                         case RNDIS_UNINITIALIZED:
@@ -1327,32 +1327,32 @@ static int rndis_proc_read (char *page, char **start, off_t off, int count, int
                         case RNDIS_DATA_INITIALIZED:
                                s = "RNDIS_DATA_INITIALIZED"; break;
                        }; s; }),
-                        param->medium,
-                        (param->media_state) ? 0 : param->speed*100,
+                        param->medium, 
+                        (param->media_state) ? 0 : param->speed*100, 
                         (param->media_state) ? "disconnected" : "connected",
-                        param->vendorID, param->vendorDescr);
-
+                        param->vendorID, param->vendorDescr);      
+       
        len = out - page;
        len -= off;
-
+       
        if (len < count) {
                *eof = 1;
                if (len <= 0)
                        return 0;
        } else
                len = count;
-
+       
        *start = page + off;
        return len;
 }
 
-static int rndis_proc_write (struct file *file, const char __user *buffer,
-               unsigned long count, void *data)
+static int rndis_proc_write (struct file *file, const char __user *buffer, 
+                     unsigned long count, void *data)
 {
        rndis_params *p = data;
        u32 speed = 0;
        int i, fl_speed = 0;
-
+       
        for (i = 0; i < count; i++) {
                char c;
                if (get_user(c, buffer))
@@ -1379,15 +1379,15 @@ static int rndis_proc_write (struct file *file, const char __user *buffer,
                case 'd':
                        rndis_signal_disconnect(p->confignr);
                        break;
-               default:
+               default: 
                        if (fl_speed) p->speed = speed;
                        else DEBUG ("%c is not valid\n", c);
                        break;
                }
-
+               
                buffer++;
        }
-
+       
        return count;
 }
 
@@ -1398,7 +1398,7 @@ static struct proc_dir_entry *rndis_connect_state [RNDIS_MAX_CONFIGS];
 #endif /* CONFIG_USB_GADGET_DEBUG_FILES */
 
 
-int __devinit rndis_init (void)
+int __init rndis_init (void)
 {
        u8 i;
 
@@ -1408,7 +1408,7 @@ int __devinit rndis_init (void)
 
                sprintf (name, NAME_TEMPLATE, i);
                if (!(rndis_connect_state [i]
-                               = create_proc_entry (name, 0660, NULL)))
+                               = create_proc_entry (name, 0660, NULL))) 
                {
                        DEBUG ("%s :remove entries", __FUNCTION__);
                        while (i) {
@@ -1432,7 +1432,7 @@ int __devinit rndis_init (void)
                                = NDIS_MEDIA_STATE_DISCONNECTED;
                INIT_LIST_HEAD (&(rndis_per_dev_params [i].resp_queue));
        }
-
+       
        return 0;
 }
 
@@ -1441,7 +1441,7 @@ void rndis_exit (void)
 #ifdef CONFIG_USB_GADGET_DEBUG_FILES
        u8 i;
        char name [20];
-
+       
        for (i = 0; i < RNDIS_MAX_CONFIGS; i++) {
                sprintf (name, NAME_TEMPLATE, i);
                remove_proc_entry (name, NULL);