linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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: [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)

> +		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, &reg8);
> +		if (reg8 == 0x00) {
> +			reg8 = 0x02;
> +			aqc111_write_cmd_nopm(dev, AQ_PHY_POWER, 0, 0,
> +					      1, &reg8);
> +			msleep(200);
> +		}
> +
> +		aq_mdio_read_cmd(dev, AQ_GLB_STD_CTRL_REG, AQ_PHY_GLOBAL_ADDR,
> +				 2, &reg16);
> +		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, &reg16);
> +		}
> +	}
> +
> +	reg8 = 0xFF;
> +	aqc111_write_cmd_nopm(dev, AQ_ACCESS_MAC, SFR_BM_INT_MASK,
> +			      1, 1, &reg8);
> +	/* 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, &reg16);
> +
> +	reg16 |= SFR_RX_CTL_START;
> +	aqc111_write_cmd_nopm(dev, AQ_ACCESS_MAC, SFR_RX_CTL, 2, 2, &reg16);
> +
> +	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

             reply	other threads:[~2018-10-06 17:49 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-06 17:49 Andrew Lunn [this message]
  -- strict thread matches above, loose matches on Subject: below --
2018-10-08 14:47 [net-next,19/19] net: usb: aqc111: Add support for wake on LAN by MAGIC packet Andrew Lunn
2018-10-08 14:12 Igor Russkikh
2018-10-05 10:25 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.ch \
    --cc=Dmitry.Bezrukov@aquantia.com \
    --cc=Igor.Russkikh@aquantia.com \
    --cc=davem@davemloft.net \
    --cc=linux-usb@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
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;
as well as URLs for NNTP newsgroup(s).