From patchwork Thu Dec 22 10:56:54 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "ASIX_Allan [Office]" X-Patchwork-Id: 132815 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 9EB4BB7155 for ; Thu, 22 Dec 2011 21:57:24 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755054Ab1LVK5T (ORCPT ); Thu, 22 Dec 2011 05:57:19 -0500 Received: from asix.com.tw ([113.196.140.82]:65425 "EHLO asix.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753567Ab1LVK5S convert rfc822-to-8bit (ORCPT ); Thu, 22 Dec 2011 05:57:18 -0500 Received: from AllanPC ([10.1.4.190]) (authenticated bits=0) by asix.com.tw (8.14.1/8.14.1) with ESMTP id pBMB3GpS065053; Thu, 22 Dec 2011 19:03:16 +0800 (CST) (envelope-from allan@asix.com.tw) From: "ASIX Allan Email [office]" To: Cc: , , "'Freddy Xin'" , "'Grant Grundler'" , "'Eugene'" , "=?utf-8?Q?'ASIX_Louis_=5B=E8=98=87=E5=A8=81=E9=99=B8=5D'?=" Subject: [PATCH] drivers/net/usb/asix: fixed asix_get_wol reported wrong wol status issue Date: Thu, 22 Dec 2011 18:56:54 +0800 Message-ID: <000c01ccc098$6b6c6690$424533b0$@com.tw> MIME-Version: 1.0 X-Priority: 1 (Highest) X-MSMail-Priority: High X-Mailer: Microsoft Office Outlook 12.0 Thread-Index: AczAmGp+kERwnuDCRHmRDqyb3ZlZUg== Content-Language: zh-tw Importance: High Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Dear David, This is my first time to submit the driver patch onto Linux kernel mainline source. Please correct me if anything is wrong on my submission way or email format. Thanks a lot for your great helps. --- Best regards, Allan Chou Technical Support Division ASIX Electronics Corporation TEL: 886-3-5799500 ext.228 FAX: 886-3-5799558 E-mail: allan@asix.com.tw http://www.asix.com.tw/ -----Original Message----- From: allan [mailto:allan@asix.com.tw] Sent: Saturday, December 17, 2011 10:36 AM To: 'Grant Grundler' Cc: 'Eugene'; 'netdev@vger.kernel.org'; 'Freddy Xin'; 'ASIX Louis [蘇威陸]' Subject: RE: drivers/net/usb/asix: bug in asix_get_wol Dear Grant, I will double check this issue and submit the revised patch to Linux kernel mainline source next week. Thanks a lot for your great helps. --- Best regards, Allan Chou Technical Support Division ASIX Electronics Corporation TEL: 886-3-5799500 ext.228 FAX: 886-3-5799558 E-mail: allan@asix.com.tw http://www.asix.com.tw/ -----Original Message----- From: grundler@google.com [mailto:grundler@google.com] On Behalf Of Grant Grundler Sent: Saturday, December 17, 2011 6:16 AM To: ASIX Allan Email [office] Cc: Eugene; netdev@vger.kernel.org; Freddy Xin; ASIX Louis [蘇威陸] Subject: Re: drivers/net/usb/asix: bug in asix_get_wol On Thu, Dec 15, 2011 at 9:15 PM, ASIX Allan Email [office] wrote: > Resend without attachment due to below email server error. ... > -----Original Message----- > From: ASIX Allan Email [office] [mailto:allan@asix.com.tw] > Sent: Friday, December 16, 2011 11:38 AM > To: 'Grant Grundler'; 'Eugene' > Cc: 'netdev@vger.kernel.org'; 'Freddy Xin'; ASIX Louis [蘇威陸] > Subject: RE: drivers/net/usb/asix: bug in asix_get_wol > Importance: High > > Dear Grant and Eugene, > > Please refer to the attached file and below statements to modify the > asix_get_wol() routine and let us know if this suggestion can solve > your issues or not? Thanks a lot. Allan, Thanks for the response but it doesn't answer my previous question. Let me ask the same question differently. Does WOL support in asix driver need more than the four lines of code? Ie does MONITOR_MODE need to be enabled or anything like that? > ================ > static void > asix_get_wol(struct net_device *net, struct ethtool_wolinfo *wolinfo) > { > struct usbnet *dev = netdev_priv(net); > u8 opt; > > if (asix_read_cmd(dev, AX_CMD_READ_MONITOR_MODE, 0, 0, 1, &opt) < 0) { > wolinfo->supported = 0; > wolinfo->wolopts = 0; > return; > } > wolinfo->supported = WAKE_PHY | WAKE_MAGIC; > wolinfo->wolopts = 0; > if (opt & AX_MONITOR_LINK) > wolinfo->wolopts |= WAKE_PHY; > if (opt & AX_MONITOR_MAGIC) > wolinfo->wolopts |= WAKE_MAGIC; > } This looks remarkably similar to the code Eugene said enables WOL for him (and it works). I not able to find any difference. If you believe it was a mistake to remove these four lines of code, please submit a patch (See Documentation/SubmittingPatches) to add them back. You can add a "Tested-by: Eugene " line after your own "Signed-off-by:" in the patch. thanks! grant -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ======== Fixed the asix_get_wol() routine reported wrong wol status issue. This fix had been verified on x86 Linux kernel 3.0.0-12-generic system with AX88772A/AX88772/Belkin AX88178 USB dongles, and the wol function works fine (can be waked up by receiving the magic packets). Signed-off-by: Allan Chou Tested-by: Allan Chou --- diff --uprN a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c --- a/drivers/net/usb/asix.c 2011-12-15 14:01:49.000000000 +0800 +++ b/drivers/net/usb/asix.c 2011-12-22 18:20:39.000000000 +0800 @@ -36,7 +36,7 @@ #include #include -#define DRIVER_VERSION "08-Nov-2011" +#define DRIVER_VERSION "22-Dec-2011" #define DRIVER_NAME "asix" /* ASIX AX8817X based USB 2.0 Ethernet Devices */ @@ -689,6 +689,10 @@ asix_get_wol(struct net_device *net, str } wolinfo->supported = WAKE_PHY | WAKE_MAGIC; wolinfo->wolopts = 0; + if (opt & AX_MONITOR_LINK) + wolinfo->wolopts |= WAKE_PHY; + if (opt & AX_MONITOR_MAGIC) + wolinfo->wolopts |= WAKE_MAGIC; } static int