提交 563aed25 编写于 作者: L Lukasz Dalek 提交者: Tom Rini

usbether: Fixed bug when using with PXA25X chips

PXA25X chips don't support alternate settings so driver uses non-CDC
driver.
But only code defined between DEV_CONFIG_CDC signals that network is up.
This patch is fixing this bug by signaling that network is up after USB
SET_INTERFACE request.
Signed-off-by: NLukasz Dalek <luk0104@gmail.com>
上级 6d365ea0
......@@ -44,7 +44,12 @@ extern struct platform_data brd;
unsigned packet_received, packet_sent;
#define DEV_CONFIG_CDC 1
#ifdef CONFIG_USB_GADGET_PXA2XX
# undef DEV_CONFIG_CDC
# define DEV_CONFIG_SUBSET 1
#else
# define DEV_CONFIG_CDC 1
#endif
#define GFP_ATOMIC ((gfp_t) 0)
#define GFP_KERNEL ((gfp_t) 0)
......@@ -864,7 +869,9 @@ static struct usb_gadget_strings stringtab = {
/*============================================================================*/
static u8 control_req[USB_BUFSIZ];
#if defined(DEV_CONFIG_CDC) || defined(CONFIG_USB_ETH_RNDIS)
static u8 status_req[STATUS_BYTECOUNT] __attribute__ ((aligned(4)));
#endif
/**
......@@ -1352,6 +1359,14 @@ eth_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
if (gadget_is_pxa(gadget)) {
value = eth_set_config(dev, DEV_CONFIG_VALUE,
GFP_ATOMIC);
/*
* PXA25x driver use non-CDC ethernet gadget.
* But only _CDC and _RNDIS code can signalize
* that network is working. So we signalize it
* here.
*/
l_ethdev.network_started = 1;
debug("USB network up!\n");
goto done_set_intf;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册