48 lines
1.8 KiB
Diff
48 lines
1.8 KiB
Diff
From 00c4bd07a64061ec9ab9c35f5bf01ec6187138f4 Mon Sep 17 00:00:00 2001
|
|
From: Jonathan McDowell <noodles-4QvXXjU8Dv4@public.gmane.org>
|
|
Date: Thu, 26 Mar 2009 00:45:27 -0700
|
|
Subject: [PATCH] usb gadget: fix ethernet link reports to ethtool
|
|
|
|
The g_ether USB gadget driver currently decides whether or not there's a
|
|
link to report back for eth_get_link based on if the USB link speed is
|
|
set. The USB gadget speed is however often set even before the device is
|
|
enumerated. It seems more sensible to only report a "link" if we're
|
|
actually connected to a host that wants to talk to us. The patch below
|
|
does this for me - tested with the PXA27x UDC driver.
|
|
|
|
Signed-Off-By: Jonathan McDowell <noodles-4QvXXjU8Dv4@public.gmane.org>
|
|
Signed-off-by: David Brownell <dbrownell-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
|
|
---
|
|
drivers/usb/gadget/u_ether.c | 8 +-------
|
|
1 files changed, 1 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/drivers/usb/gadget/u_ether.c b/drivers/usb/gadget/u_ether.c
|
|
index 96d65ca..4007770 100644
|
|
--- a/drivers/usb/gadget/u_ether.c
|
|
+++ b/drivers/usb/gadget/u_ether.c
|
|
@@ -175,12 +175,6 @@ static void eth_get_drvinfo(struct net_device *net, struct ethtool_drvinfo *p)
|
|
strlcpy(p->bus_info, dev_name(&dev->gadget->dev), sizeof p->bus_info);
|
|
}
|
|
|
|
-static u32 eth_get_link(struct net_device *net)
|
|
-{
|
|
- struct eth_dev *dev = netdev_priv(net);
|
|
- return dev->gadget->speed != USB_SPEED_UNKNOWN;
|
|
-}
|
|
-
|
|
/* REVISIT can also support:
|
|
* - WOL (by tracking suspends and issuing remote wakeup)
|
|
* - msglevel (implies updated messaging)
|
|
@@ -189,7 +183,7 @@ static u32 eth_get_link(struct net_device *net)
|
|
|
|
static struct ethtool_ops ops = {
|
|
.get_drvinfo = eth_get_drvinfo,
|
|
- .get_link = eth_get_link
|
|
+ .get_link = ethtool_op_get_link,
|
|
};
|
|
|
|
static void defer_kevent(struct eth_dev *dev, int flag)
|
|
--
|
|
1.6.0.4
|
|
|