mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jie Luo <quic_luoj@quicinc.com>
To: Andrew Lunn <andrew@lunn.ch>, Luo Jie <luoj@codeaurora.org>
Cc: hkallweit1@gmail.com, linux@armlinux.org.uk, davem@davemloft.net,
	kuba@kernel.org, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, sricharan@codeaurora.org
Subject: Re: [PATCH v3 12/13] net: phy: adjust qca8081 master/slave seed value if link down
Date: Wed, 20 Oct 2021 21:27:41 +0800	[thread overview]
Message-ID: <087c328d-2909-6750-8711-71abb8d5e301@quicinc.com> (raw)
In-Reply-To: <YW3vVt99i7TNCzaC@lunn.ch>


On 10/19/2021 6:04 AM, Andrew Lunn wrote:
> On Mon, Oct 18, 2021 at 11:33:32AM +0800, Luo Jie wrote:
>> 1. The master/slave seed needs to be updated when the link can't
>> be created.
>>
>> 2. The case where two qca8081 PHYs are connected each other and
>> master/slave seed is generated as the same value also needs
>> to be considered, so adding this code change into read_status
>> instead of link_change_notify.
>>
>> Signed-off-by: Luo Jie <luoj@codeaurora.org>
>> ---
>>   drivers/net/phy/at803x.c | 16 ++++++++++++++++
>>   1 file changed, 16 insertions(+)
>>
>> diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
>> index 5d007f89e9d3..77aaf9e72781 100644
>> --- a/drivers/net/phy/at803x.c
>> +++ b/drivers/net/phy/at803x.c
>> @@ -1556,6 +1556,22 @@ static int qca808x_read_status(struct phy_device *phydev)
>>   	else
>>   		phydev->interface = PHY_INTERFACE_MODE_SMII;
>>   
>> +	/* generate seed as a lower random value to make PHY linked as SLAVE easily,
>> +	 * except for master/slave configuration fault detected.
>> +	 * the reason for not putting this code into the function link_change_notify is
>> +	 * the corner case where the link partner is also the qca8081 PHY and the seed
>> +	 * value is configured as the same value, the link can't be up and no link change
>> +	 * occurs.
>> +	 */
>> +	if (!phydev->link) {
>> +		if (phydev->master_slave_state == MASTER_SLAVE_STATE_ERR) {
>> +			qca808x_phy_ms_seed_enable(phydev, false);
>> +		} else {
>> +			qca808x_phy_ms_random_seed_set(phydev);
>> +			qca808x_phy_ms_seed_enable(phydev, true);
>> +		}
>> +	}
> Are you assuming here that the status is polled once a second, and
> each poll you choose a new seed and see if it succeeds? What happens
> when interrupts are used, not polling?
>
>       Andrew

Hi Andrew,

yes, this code assumes that the PHY POLL is used, and choose a new 
random seed value

on each poll if no link is created.

when the interrupts is used, this corner case seems can't be covered 
since there is

no related interrupt occurs when the seed is configured as same value.


  reply	other threads:[~2021-10-20 13:27 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-18  3:33 [PATCH v3 0/13] net: phy: Add qca8081 ethernet phy driver Luo Jie
2021-10-18  3:33 ` [PATCH v3 01/13] net: phy: at803x: replace AT803X_DEVICE_ADDR with MDIO_MMD_PCS Luo Jie
2021-10-18 18:33   ` Andrew Lunn
2021-10-18  3:33 ` [PATCH v3 02/13] net: phy: at803x: use phy_modify() Luo Jie
2021-10-18 18:34   ` Andrew Lunn
2021-10-18  3:33 ` [PATCH v3 03/13] net: phy: at803x: improve the WOL feature Luo Jie
2021-10-18 18:41   ` Andrew Lunn
2021-10-19 11:46     ` Jie Luo
2021-10-19 12:29       ` Andrew Lunn
2021-10-19 12:42         ` Jie Luo
2021-10-18  3:33 ` [PATCH v3 04/13] net: phy: at803x: use GENMASK() for speed status Luo Jie
2021-10-18 18:41   ` Andrew Lunn
2021-10-18  3:33 ` [PATCH v3 05/13] net: phy: add qca8081 ethernet phy driver Luo Jie
2021-10-18 18:47   ` Andrew Lunn
2021-10-19 11:48     ` Jie Luo
2021-10-18  3:33 ` [PATCH v3 06/13] net: phy: add qca8081 read_status Luo Jie
2021-10-18 21:42   ` Andrew Lunn
2021-10-19 12:10     ` Jie Luo
2021-10-19 12:31       ` Andrew Lunn
2021-10-19 12:48         ` Jie Luo
2021-10-18  3:33 ` [PATCH v3 07/13] net: phy: add qca8081 get_features Luo Jie
2021-10-18 21:44   ` Andrew Lunn
2021-10-20  6:39     ` Jie Luo
2021-10-20 12:20       ` Andrew Lunn
2021-10-18  3:33 ` [PATCH v3 08/13] net: phy: add qca8081 config_aneg Luo Jie
2021-10-18 21:37   ` Andrew Lunn
2021-10-19 12:12     ` Jie Luo
2021-10-18  3:33 ` [PATCH v3 09/13] net: phy: add constants for fast retrain related register Luo Jie
2021-10-18  3:33 ` [PATCH v3 10/13] net: phy: add qca8081 config_init Luo Jie
2021-10-18 21:47   ` Andrew Lunn
2021-10-20  7:07     ` Jie Luo
2021-10-18  3:33 ` [PATCH v3 11/13] net: phy: add qca8081 soft_reset and enable master/slave seed Luo Jie
2021-10-18  3:33 ` [PATCH v3 12/13] net: phy: adjust qca8081 master/slave seed value if link down Luo Jie
2021-10-18 22:04   ` Andrew Lunn
2021-10-20 13:27     ` Jie Luo [this message]
2021-10-18  3:33 ` [PATCH v3 13/13] net: phy: add qca8081 cdt feature Luo Jie

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=087c328d-2909-6750-8711-71abb8d5e301@quicinc.com \
    --to=quic_luoj@quicinc.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=hkallweit1@gmail.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=luoj@codeaurora.org \
    --cc=netdev@vger.kernel.org \
    --cc=sricharan@codeaurora.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

all inboxes | Powered by JetHome®