From: Andrew Lunn <andrew@lunn•ch>
To: Igor Russkikh <Igor.Russkikh@aquantia•com>
Cc: "David S . Miller" <davem@davemloft•net>,
"linux-usb@vger•kernel.org" <linux-usb@vger•kernel.org>,
"netdev@vger•kernel.org" <netdev@vger•kernel.org>,
Dmitry Bezrukov <Dmitry.Bezrukov@aquantia•com>
Subject: Re: [PATCH net-next 19/19] net: usb: aqc111: Add support for wake on LAN by MAGIC packet
Date: Sat, 6 Oct 2018 19:49:21 +0200 [thread overview]
Message-ID: <20181006174921.GG6990@lunn.ch> (raw)
In-Reply-To: <1a7d4af1b3a6397b76338d543f86bb4c327f5060.1538734658.git.igor.russkikh@aquantia.com>
> + if (aqc111_data->dpa) {
> + aqc111_set_phy_speed(dev, AUTONEG_DISABLE, SPEED_100);
I don't think that works. You should leave AUTONEG on, but only
advertise SPEED_100 and trigger auto-neg. If you force it to 100,
there is no guarantee the peer will figure out what the new link speed
is. I've often seen failed auto-net result in 10/Half. So you will
loose the link, making WoL pointless.
> +static int aqc111_resume(struct usb_interface *intf)
> +{
> + struct usbnet *dev = usb_get_intfdata(intf);
> + struct aqc111_data *aqc111_data = (struct aqc111_data *)dev->data[0];
> + u8 reg8;
> + u16 reg16;
> +
> + netif_carrier_off(dev->net);
> +
> + /* Power up ethernet PHY */
> + aqc111_data->phy_ops.phy_power = 1;
> + aqc111_data->phy_ops.low_power = 0;
> + aqc111_data->phy_ops.wol = 0;
> + if (aqc111_data->dpa) {
> + aqc111_read_cmd_nopm(dev, AQ_PHY_POWER, 0, 0, 1, ®8);
> + if (reg8 == 0x00) {
> + reg8 = 0x02;
> + aqc111_write_cmd_nopm(dev, AQ_PHY_POWER, 0, 0,
> + 1, ®8);
> + msleep(200);
> + }
> +
> + aq_mdio_read_cmd(dev, AQ_GLB_STD_CTRL_REG, AQ_PHY_GLOBAL_ADDR,
> + 2, ®16);
> + if (reg16 & AQ_PHY_LOW_POWER_MODE) {
> + reg16 &= ~AQ_PHY_LOW_POWER_MODE;
> + aq_mdio_write_cmd(dev, AQ_GLB_STD_CTRL_REG,
> + AQ_PHY_GLOBAL_ADDR, 2, ®16);
> + }
> + }
> +
> + reg8 = 0xFF;
> + aqc111_write_cmd_nopm(dev, AQ_ACCESS_MAC, SFR_BM_INT_MASK,
> + 1, 1, ®8);
> + /* Configure RX control register => start operation */
> + reg16 = aqc111_data->rxctl;
> + reg16 &= ~SFR_RX_CTL_START;
> + aqc111_write_cmd_nopm(dev, AQ_ACCESS_MAC, SFR_RX_CTL, 2, 2, ®16);
> +
> + reg16 |= SFR_RX_CTL_START;
> + aqc111_write_cmd_nopm(dev, AQ_ACCESS_MAC, SFR_RX_CTL, 2, 2, ®16);
> +
> + aqc111_set_phy_speed(dev, aqc111_data->autoneg,
> + aqc111_data->advertised_speed);
> +
Should that be conditional on aqc111_data->dpa?
> +struct aqc111_wol_cfg {
> + u8 hw_addr[6];
> + u8 flags;
> + u8 rsvd[283];
> +};
Do you really need these 283 bytes??
> +
> +#define WOL_CFG_SIZE sizeof(struct aqc111_wol_cfg)
> +
> struct aqc111_data {
> u16 rxctl;
> u8 rx_checksum;
> @@ -228,6 +238,7 @@ struct aqc111_data {
> } fw_ver;
> u8 dpa; /*direct PHY access*/
> struct aqc111_phy_options phy_ops;
> + struct aqc111_wol_cfg wol_cfg;
Those 283 bytes make this whole structure bigger...
Andrew
next prev parent reply other threads:[~2018-10-07 0:53 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-05 10:24 [PATCH net-next 00/19] Add support for Aquantia AQtion USB to 5/2.5GbE devices Igor Russkikh
2018-10-05 10:24 ` [PATCH net-next 01/19] net: usb: aqc111: Driver skeleton for Aquantia AQtion USB to 5GbE Igor Russkikh
2018-10-09 13:37 ` Bjørn Mork
2018-10-05 10:24 ` [PATCH net-next 02/19] net: usb: aqc111: Add bind and empty unbind callbacks Igor Russkikh
2018-10-05 17:39 ` David Miller
2018-10-05 10:24 ` [PATCH net-next 03/19] net: usb: aqc111: Add implementation of read and write commands Igor Russkikh
2018-10-05 17:40 ` David Miller
2018-10-08 13:44 ` Oliver Neukum
2018-10-09 13:33 ` Bjørn Mork
2018-10-05 10:24 ` [PATCH net-next 04/19] net: usb: aqc111: Various callbacks implementation Igor Russkikh
2018-10-08 13:47 ` Oliver Neukum
2018-10-09 13:27 ` Bjørn Mork
2018-10-10 11:33 ` Oliver Neukum
2018-10-05 10:24 ` [PATCH net-next 05/19] net: usb: aqc111: Introduce PHY access Igor Russkikh
2018-10-05 22:04 ` Andrew Lunn
2018-10-08 9:09 ` Igor Russkikh
2018-10-08 12:17 ` Andrew Lunn
2018-10-08 14:07 ` Igor Russkikh
2018-10-10 0:58 ` Andrew Lunn
2018-10-10 7:54 ` Igor Russkikh
2018-10-08 13:52 ` Oliver Neukum
2018-10-08 14:10 ` Igor Russkikh
2018-10-08 14:24 ` Oliver Neukum
2018-10-05 10:24 ` [PATCH net-next 06/19] net: usb: aqc111: Introduce link management Igor Russkikh
2018-10-05 17:11 ` Andrew Lunn
2018-10-08 13:22 ` Igor Russkikh
2018-10-05 17:46 ` David Miller
2018-10-06 17:35 ` Andrew Lunn
2018-10-08 9:29 ` Igor Russkikh
2018-10-08 12:12 ` Andrew Lunn
2018-10-08 13:59 ` Oliver Neukum
2018-10-05 10:24 ` [PATCH net-next 07/19] net: usb: aqc111: Add support for getting and setting of MAC address Igor Russkikh
2018-10-06 1:03 ` Andrew Lunn
2018-10-09 14:34 ` Igor Russkikh
2018-10-09 14:46 ` Andrew Lunn
2018-10-05 10:25 ` [PATCH net-next 08/19] net: usb: aqc111: Implement TX data path Igor Russkikh
2018-10-06 1:13 ` Andrew Lunn
2018-10-08 13:43 ` Igor Russkikh
2018-10-08 14:07 ` Oliver Neukum
2018-10-09 13:50 ` Bjørn Mork
2018-10-05 10:25 ` [PATCH net-next 09/19] net: usb: aqc111: Implement RX " Igor Russkikh
2018-10-06 1:18 ` Andrew Lunn
2018-10-09 13:39 ` Bjørn Mork
2018-10-05 10:25 ` [PATCH net-next 10/19] net: usb: aqc111: Add checksum offload support Igor Russkikh
2018-10-05 10:25 ` [PATCH net-next 11/19] net: usb: aqc111: Add support for changing MTU Igor Russkikh
2018-10-06 16:56 ` Andrew Lunn
2018-10-05 10:25 ` [PATCH net-next 12/19] net: usb: aqc111: Add support for enable/disable checksum offload Igor Russkikh
2018-10-05 10:25 ` [PATCH net-next 13/19] net: usb: aqc111: Add support for TSO Igor Russkikh
2018-10-08 14:12 ` Oliver Neukum
2018-10-05 10:25 ` [PATCH net-next 14/19] net: usb: aqc111: Implement set_rx_mode callback Igor Russkikh
2018-10-06 17:03 ` Andrew Lunn
2018-10-08 13:49 ` Igor Russkikh
2018-10-05 10:25 ` [PATCH net-next 15/19] net: usb: aqc111: Add support for VLAN_CTAG_TX/RX offload Igor Russkikh
2018-10-08 14:14 ` Oliver Neukum
2018-10-05 10:25 ` [PATCH net-next 16/19] net: usb: aqc111: Add RX VLAN filtering support Igor Russkikh
2018-10-06 17:05 ` Andrew Lunn
2018-10-05 10:25 ` [PATCH net-next 17/19] net: usb: aqc111: Initialize ethtool_ops structure Igor Russkikh
2018-10-06 17:08 ` Andrew Lunn
2018-10-05 10:25 ` [PATCH net-next 18/19] net: usb: aqc111: Implement get/set_link_ksettings callbacks Igor Russkikh
2018-10-06 17:38 ` Andrew Lunn
2018-10-08 14:18 ` Oliver Neukum
2018-10-05 10:25 ` [PATCH net-next 19/19] net: usb: aqc111: Add support for wake on LAN by MAGIC packet Igor Russkikh
2018-10-06 17:49 ` Andrew Lunn [this message]
2018-10-08 14:12 ` Igor Russkikh
2018-10-08 14:47 ` Andrew Lunn
2018-10-06 17:51 ` [PATCH net-next 00/19] Add support for Aquantia AQtion USB to 5/2.5GbE devices Andrew Lunn
2018-10-08 7:58 ` Igor Russkikh
2018-10-08 14:21 ` Oliver Neukum
2018-10-08 14:52 ` Igor Russkikh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181006174921.GG6990@lunn.ch \
--to=andrew@lunn$(echo .)ch \
--cc=Dmitry.Bezrukov@aquantia$(echo .)com \
--cc=Igor.Russkikh@aquantia$(echo .)com \
--cc=davem@davemloft$(echo .)net \
--cc=linux-usb@vger$(echo .)kernel.org \
--cc=netdev@vger$(echo .)kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox