Skip to content

Commit

Permalink
[PATCH] USB: rndis updates (mostly cleanup)
Browse files Browse the repository at this point in the history
Some bugfixes and lots of cleanup (net code shrink):

  - On reset, force the RNDIS state machine its initial state

  - Hook up the RNDIS (outgoing) filters to the CDC mechanism

  - Lots of cleanup:
     * Eliminate duplicate copy of OID table;
     * Unify handlying of the OID "query" response data pointer;
     * Reduce code duplication for calculating query response lengths;
     * Remove some checks for "can't happen" errors;
     * Get rid of debugging #ifdefs by making the debug flag an integer level

Most of the patch, by volume, relates to those query response cleanups.
It incidentally shaves off a few hundred bytes of object code.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
David Brownell authored and Greg Kroah-Hartman committed Jun 27, 2005
1 parent 247f310 commit 340600a
Show file tree
Hide file tree
Showing 4 changed files with 285 additions and 344 deletions.
11 changes: 7 additions & 4 deletions drivers/usb/gadget/ether.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,9 @@ static const char driver_desc [] = DRIVER_DESC;
#ifdef CONFIG_USB_ETH_RNDIS
#include "rndis.h"
#else
#define rndis_init() 0
#define rndis_exit() do{}while(0)
#define rndis_init() 0
#define rndis_uninit(x) do{}while(0)
#define rndis_exit() do{}while(0)
#endif

/* CDC and RNDIS support the same host-chosen outgoing packet filters. */
Expand Down Expand Up @@ -395,7 +396,8 @@ static inline int BITRATE(struct usb_gadget *g)
#define STRING_SUBSET 8
#define STRING_RNDIS 9

#define USB_BUFSIZ 256 /* holds our biggest descriptor */
/* holds our biggest descriptor (or RNDIS response) */
#define USB_BUFSIZ 256

/*
* This device advertises one configuration, eth_config, unless RNDIS
Expand Down Expand Up @@ -1124,6 +1126,7 @@ static void eth_reset_config (struct eth_dev *dev)

netif_stop_queue (dev->net);
netif_carrier_off (dev->net);
rndis_uninit(dev->rndis_config);

/* disable endpoints, forcing (synchronous) completion of
* pending i/o. then free the requests.
Expand Down Expand Up @@ -2565,7 +2568,7 @@ eth_bind (struct usb_gadget *gadget)
/* these set up a lot of the OIDs that RNDIS needs */
rndis_set_host_mac (dev->rndis_config, dev->host_mac);
if (rndis_set_param_dev (dev->rndis_config, dev->net,
&dev->stats))
&dev->stats, &dev->cdc_filter))
goto fail0;
if (rndis_set_param_vendor (dev->rndis_config, vendorID,
manufacturer))
Expand Down
14 changes: 7 additions & 7 deletions drivers/usb/gadget/ndis.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,17 +47,17 @@ struct NDIS_PM_WAKE_UP_CAPABILITIES {
#define NDIS_DEVICE_WAKE_ON_MAGIC_PACKET_ENABLE 0x00000004

struct NDIS_PNP_CAPABILITIES {
u32 Flags;
__le32 Flags;
struct NDIS_PM_WAKE_UP_CAPABILITIES WakeUpCapabilities;
};

struct NDIS_PM_PACKET_PATTERN {
u32 Priority;
u32 Reserved;
u32 MaskSize;
u32 PatternOffset;
u32 PatternSize;
u32 PatternFlags;
__le32 Priority;
__le32 Reserved;
__le32 MaskSize;
__le32 PatternOffset;
__le32 PatternSize;
__le32 PatternFlags;
};


Expand Down
Loading

0 comments on commit 340600a

Please sign in to comment.