@ -44,21 +44,6 @@ extern struct platform_data brd;
unsigned packet_received , packet_sent ;
# undef DEV_CONFIG_CDC
# undef DEV_CONFIG_SUBSET
# if !defined(CONFIG_USB_ETH_CDC) && !defined(CONFIG_USB_ETH_SUBSET)
# define DEV_CONFIG_CDC 1 /* preserve default behavior */
# endif
# if defined(CONFIG_USB_ETH_CDC)
# define DEV_CONFIG_CDC 1
# endif
# if defined(CONFIG_USB_ETH_SUBSET)
# define DEV_CONFIG_SUBSET 1
# endif
# define GFP_ATOMIC ((gfp_t) 0)
# define GFP_KERNEL ((gfp_t) 0)
@ -174,9 +159,9 @@ static struct usb_gadget_driver eth_driver;
/* "main" config is either CDC, or its simple subset */
static inline int is_cdc ( struct eth_dev * dev )
{
# if !defined(DEV_ CONFIG_SUBSET)
# if !defined(CONFIG_USB_ETH _SUBSET)
return 1 ; /* only cdc possible */
# elif !defined(DEV_ CONFIG_CDC)
# elif !defined(CONFIG_USB_ETH _CDC)
return 0 ; /* only subset possible */
# else
return dev - > cdc ; /* depends on what hardware we found */
@ -420,7 +405,7 @@ rndis_config = {
* get those drivers from MCCI , or bundled with various products .
*/
# ifdef DEV_ CONFIG_CDC
# ifdef CONFIG_USB_ETH _CDC
static struct usb_interface_descriptor
control_intf = {
. bLength = sizeof control_intf ,
@ -459,7 +444,7 @@ static const struct usb_cdc_header_desc header_desc = {
. bcdCDC = __constant_cpu_to_le16 ( 0x0110 ) ,
} ;
# if defined(DEV_ CONFIG_CDC) || defined(CONFIG_USB_ETH_RNDIS)
# if defined(CONFIG_USB_ETH _CDC) || defined(CONFIG_USB_ETH_RNDIS)
static const struct usb_cdc_union_desc union_desc = {
. bLength = sizeof union_desc ,
@ -493,7 +478,7 @@ static const struct usb_cdc_acm_descriptor acm_descriptor = {
# endif
# ifndef DEV_ CONFIG_CDC
# ifndef CONFIG_USB_ETH _CDC
/*
* " SAFE " loosely follows CDC WMC MDLM , violating the spec in various
@ -543,7 +528,7 @@ static const struct usb_cdc_ether_desc ether_desc = {
. bNumberPowerFilters = 0 ,
} ;
# if defined(DEV_ CONFIG_CDC) || defined(CONFIG_USB_ETH_RNDIS)
# if defined(CONFIG_USB_ETH _CDC) || defined(CONFIG_USB_ETH_RNDIS)
/*
* include the status endpoint if we can , even where it ' s optional .
@ -575,7 +560,7 @@ fs_status_desc = {
} ;
# endif
# ifdef DEV_ CONFIG_CDC
# ifdef CONFIG_USB_ETH _CDC
/* the default data interface has no endpoints ... */
@ -630,7 +615,7 @@ rndis_data_intf = {
# endif
# ifdef DEV_ CONFIG_SUBSET
# ifdef CONFIG_USB_ETH _SUBSET
/*
* " Simple " CDC - subset option is a simple vendor - neutral model that most
@ -676,7 +661,7 @@ fs_sink_desc = {
static const struct usb_descriptor_header * fs_eth_function [ 11 ] = {
( struct usb_descriptor_header * ) & otg_descriptor ,
# ifdef DEV_ CONFIG_CDC
# ifdef CONFIG_USB_ETH _CDC
/* "cdc" mode descriptors */
( struct usb_descriptor_header * ) & control_intf ,
( struct usb_descriptor_header * ) & header_desc ,
@ -690,12 +675,12 @@ static const struct usb_descriptor_header *fs_eth_function[11] = {
( struct usb_descriptor_header * ) & fs_source_desc ,
( struct usb_descriptor_header * ) & fs_sink_desc ,
NULL ,
# endif /* DEV_ CONFIG_CDC */
# endif /* CONFIG_USB_ETH _CDC */
} ;
static inline void fs_subset_descriptors ( void )
{
# ifdef DEV_ CONFIG_SUBSET
# ifdef CONFIG_USB_ETH _SUBSET
/* behavior is "CDC Subset"; extra descriptors say "SAFE" */
fs_eth_function [ 1 ] = ( struct usb_descriptor_header * ) & subset_data_intf ;
fs_eth_function [ 2 ] = ( struct usb_descriptor_header * ) & header_desc ;
@ -733,7 +718,7 @@ static const struct usb_descriptor_header *fs_rndis_function[] = {
* descriptors , unless they only run at full speed .
*/
# if defined(DEV_ CONFIG_CDC) || defined(CONFIG_USB_ETH_RNDIS)
# if defined(CONFIG_USB_ETH _CDC) || defined(CONFIG_USB_ETH_RNDIS)
static struct usb_endpoint_descriptor
hs_status_desc = {
. bLength = USB_DT_ENDPOINT_SIZE ,
@ -743,7 +728,7 @@ hs_status_desc = {
. wMaxPacketSize = __constant_cpu_to_le16 ( STATUS_BYTECOUNT ) ,
. bInterval = LOG2_STATUS_INTERVAL_MSEC + 4 ,
} ;
# endif /* DEV_ CONFIG_CDC */
# endif /* CONFIG_USB_ETH _CDC */
static struct usb_endpoint_descriptor
hs_source_desc = {
@ -776,7 +761,7 @@ dev_qualifier = {
static const struct usb_descriptor_header * hs_eth_function [ 11 ] = {
( struct usb_descriptor_header * ) & otg_descriptor ,
# ifdef DEV_ CONFIG_CDC
# ifdef CONFIG_USB_ETH _CDC
/* "cdc" mode descriptors */
( struct usb_descriptor_header * ) & control_intf ,
( struct usb_descriptor_header * ) & header_desc ,
@ -790,12 +775,12 @@ static const struct usb_descriptor_header *hs_eth_function[11] = {
( struct usb_descriptor_header * ) & hs_source_desc ,
( struct usb_descriptor_header * ) & hs_sink_desc ,
NULL ,
# endif /* DEV_ CONFIG_CDC */
# endif /* CONFIG_USB_ETH _CDC */
} ;
static inline void hs_subset_descriptors ( void )
{
# ifdef DEV_ CONFIG_SUBSET
# ifdef CONFIG_USB_ETH _SUBSET
/* behavior is "CDC Subset"; extra descriptors say "SAFE" */
hs_eth_function [ 1 ] = ( struct usb_descriptor_header * ) & subset_data_intf ;
hs_eth_function [ 2 ] = ( struct usb_descriptor_header * ) & header_desc ;
@ -857,11 +842,11 @@ static struct usb_string strings[] = {
{ STRING_SERIALNUMBER , serial_number , } ,
{ STRING_DATA , " Ethernet Data " , } ,
{ STRING_ETHADDR , ethaddr , } ,
# ifdef DEV_ CONFIG_CDC
# ifdef CONFIG_USB_ETH _CDC
{ STRING_CDC , " CDC Ethernet " , } ,
{ STRING_CONTROL , " CDC Communications Control " , } ,
# endif
# ifdef DEV_ CONFIG_SUBSET
# ifdef CONFIG_USB_ETH _SUBSET
{ STRING_SUBSET , " CDC Ethernet Subset " , } ,
# endif
# ifdef CONFIG_USB_ETH_RNDIS
@ -878,7 +863,7 @@ static struct usb_gadget_strings stringtab = {
/*============================================================================*/
static u8 control_req [ USB_BUFSIZ ] ;
# if defined(DEV_ CONFIG_CDC) || defined(CONFIG_USB_ETH_RNDIS)
# if defined(CONFIG_USB_ETH _CDC) || defined(CONFIG_USB_ETH_RNDIS)
static u8 status_req [ STATUS_BYTECOUNT ] __attribute__ ( ( aligned ( 4 ) ) ) ;
# endif
@ -967,7 +952,7 @@ set_ether_config(struct eth_dev *dev, gfp_t gfp_flags)
int result = 0 ;
struct usb_gadget * gadget = dev - > gadget ;
# if defined(DEV_ CONFIG_CDC) || defined(CONFIG_USB_ETH_RNDIS)
# if defined(CONFIG_USB_ETH _CDC) || defined(CONFIG_USB_ETH_RNDIS)
/* status endpoint used for RNDIS and (optionally) CDC */
if ( ! subset_active ( dev ) & & dev - > status_ep ) {
dev - > status = ep_desc ( gadget , & hs_status_desc ,
@ -1148,7 +1133,7 @@ static int eth_set_config(struct eth_dev *dev, unsigned number,
/*-------------------------------------------------------------------------*/
# ifdef DEV_ CONFIG_CDC
# ifdef CONFIG_USB_ETH _CDC
/*
* The interrupt endpoint is used in CDC networking models ( Ethernet , ATM )
@ -1379,7 +1364,7 @@ eth_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
goto done_set_intf ;
}
# ifdef DEV_ CONFIG_CDC
# ifdef CONFIG_USB_ETH _CDC
switch ( wIndex ) {
case 0 : /* control/master intf */
if ( wValue ! = 0 )
@ -1421,7 +1406,7 @@ eth_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
* all non - PXA hardware talks real CDC . . .
*/
debug ( " set_interface ignored! \n " ) ;
# endif /* DEV_ CONFIG_CDC */
# endif /* CONFIG_USB_ETH _CDC */
done_set_intf :
break ;
@ -1444,7 +1429,7 @@ done_set_intf:
value = min ( wLength , ( u16 ) 1 ) ;
break ;
# ifdef DEV_ CONFIG_CDC
# ifdef CONFIG_USB_ETH _CDC
case USB_CDC_SET_ETHERNET_PACKET_FILTER :
/*
* see 6.2 .30 : no data , wIndex = interface ,
@ -1468,7 +1453,7 @@ done_set_intf:
* case USB_CDC_GET_ETHERNET_STATISTIC :
*/
# endif /* DEV_ CONFIG_CDC */
# endif /* CONFIG_USB_ETH _CDC */
# ifdef CONFIG_USB_ETH_RNDIS
/*
@ -2039,7 +2024,7 @@ static int eth_bind(struct usb_gadget *gadget)
u8 tmp [ 7 ] ;
/* these flags are only ever cleared; compiler take note */
# ifndef DEV_ CONFIG_CDC
# ifndef CONFIG_USB_ETH _CDC
cdc = 0 ;
# endif
# ifndef CONFIG_USB_ETH_RNDIS
@ -2151,7 +2136,7 @@ autoconf_fail:
goto autoconf_fail ;
out_ep - > driver_data = out_ep ; /* claim */
# if defined(DEV_ CONFIG_CDC) || defined(CONFIG_USB_ETH_RNDIS)
# if defined(CONFIG_USB_ETH _CDC) || defined(CONFIG_USB_ETH_RNDIS)
/*
* CDC Ethernet control interface doesn ' t require a status endpoint .
* Since some hosts expect one , try to allocate one anyway .
@ -2163,7 +2148,7 @@ autoconf_fail:
} else if ( rndis ) {
error ( " can't run RNDIS on %s " , gadget - > name ) ;
return - ENODEV ;
# ifdef DEV_ CONFIG_CDC
# ifdef CONFIG_USB_ETH _CDC
} else if ( cdc ) {
control_intf . bNumEndpoints = 0 ;
/* FIXME remove endpoint from descriptor list */
@ -2206,7 +2191,7 @@ autoconf_fail:
fs_source_desc . bEndpointAddress ;
hs_sink_desc . bEndpointAddress =
fs_sink_desc . bEndpointAddress ;
# if defined(DEV_ CONFIG_CDC) || defined(CONFIG_USB_ETH_RNDIS)
# if defined(CONFIG_USB_ETH _CDC) || defined(CONFIG_USB_ETH_RNDIS)
if ( status_ep )
hs_status_desc . bEndpointAddress =
fs_status_desc . bEndpointAddress ;
@ -2275,7 +2260,7 @@ autoconf_fail:
dev - > req - > complete = eth_setup_complete ;
/* ... and maybe likewise for status transfer */
# if defined(DEV_ CONFIG_CDC) || defined(CONFIG_USB_ETH_RNDIS)
# if defined(CONFIG_USB_ETH _CDC) || defined(CONFIG_USB_ETH_RNDIS)
if ( dev - > status_ep ) {
dev - > stat_req = usb_ep_alloc_request ( dev - > status_ep ,
GFP_KERNEL ) ;