From: <Arun.Ramadoss@microchip.com>
To: <andrew@lunn.ch>
Cc: <linux@armlinux.org.uk>, <netdev@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <davem@davemloft.net>,
<hkallweit1@gmail.com>, <UNGLinuxDriver@microchip.com>,
<kuba@kernel.org>
Subject: Re: [PATCH net-next 6/6] net: phy: added ethtool master-slave configuration support
Date: Fri, 4 Mar 2022 13:31:50 +0000 [thread overview]
Message-ID: <69bfebc2a8a5cef56a4b064e32d00fcbd78f54c3.camel@microchip.com> (raw)
In-Reply-To: <YiIQfcKccbjtfPJo@lunn.ch>
Hi Andrew,
On Fri, 2022-03-04 at 14:13 +0100, Andrew Lunn wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you
> know the content is safe
>
> > +static int lan87xx_read_master_slave(struct phy_device *phydev)
> > +{
> > + int rc = 0;
> > +
> > + phydev->master_slave_get = MASTER_SLAVE_CFG_UNKNOWN;
> > + phydev->master_slave_state = MASTER_SLAVE_STATE_UNKNOWN;
> > +
> > + rc = phy_read(phydev, MII_CTRL1000);
> > + if (rc < 0)
> > + return rc;
> > +
> > + if (rc & CTL1000_AS_MASTER)
> > + phydev->master_slave_get =
> > MASTER_SLAVE_CFG_MASTER_FORCE;
> > + else
> > + phydev->master_slave_get =
> > MASTER_SLAVE_CFG_SLAVE_FORCE;
> > +
> > + rc = phy_read(phydev, MII_STAT1000);
> > + if (rc < 0)
> > + return rc;
> > +
> > + if (rc & LPA_1000MSRES)
> > + phydev->master_slave_state =
> > MASTER_SLAVE_STATE_MASTER;
> > + else
> > + phydev->master_slave_state =
> > MASTER_SLAVE_STATE_SLAVE;
> > +
> > + return rc;
> > +}
>
> It looks like you can just call genphy_read_master_slave()? Or am i
> missing some subtle difference?
Thanks for the comment.
genphy_read_master_slave() and genphy_setup_master_slave() functions
first check for whether phy is gigabit capable. If no, it returns.
LAN87XX is not gigabit capable, so I replicated the genphy function and
removed only the gigabit capable check. I took nxp-tja11xx code as
reference, which has similar implementation.
>
> > +static int lan87xx_config_aneg(struct phy_device *phydev)
> > +{
> > + u16 ctl = 0;
> > + int rc;
> > +
> > + switch (phydev->master_slave_set) {
> > + case MASTER_SLAVE_CFG_MASTER_FORCE:
> > + ctl |= CTL1000_AS_MASTER;
> > + break;
> > + case MASTER_SLAVE_CFG_SLAVE_FORCE:
> > + break;
> > + case MASTER_SLAVE_CFG_UNKNOWN:
> > + case MASTER_SLAVE_CFG_UNSUPPORTED:
> > + return 0;
> > + default:
> > + phydev_warn(phydev, "Unsupported Master/Slave
> > mode\n");
> > + return -EOPNOTSUPP;
> > + }
> > +
> > + rc = phy_modify_changed(phydev, MII_CTRL1000,
> > CTL1000_AS_MASTER, ctl);
> > + if (rc == 1)
> > + rc = genphy_soft_reset(phydev);
> > +
> > + return rc;
> > +}
>
> Please use genphy_setup_master_slave()
>
> Andrew
next prev parent reply other threads:[~2022-03-04 13:32 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-04 9:43 [PATCH net-next 0/6] Add support for LAN937x T1 Phy Driver Arun Ramadoss
2022-03-04 9:43 ` [PATCH net-next 1/6] net: phy: used genphy_soft_reset for phy reset in LAN87xx Arun Ramadoss
2022-03-04 9:43 ` [PATCH net-next 2/6] net: phy: used the PHY_ID_MATCH_MODEL macro for LAN87XX Arun Ramadoss
2022-03-04 9:43 ` [PATCH net-next 3/6] net: phy: removed empty lines in LAN87XX Arun Ramadoss
2022-03-04 9:43 ` [PATCH net-next 4/6] net: phy: updated the initialization routine for LAN87xx Arun Ramadoss
2022-03-04 9:44 ` [PATCH net-next 5/6] net: phy: added the LAN937x phy support Arun Ramadoss
2022-03-04 9:44 ` [PATCH net-next 6/6] net: phy: added ethtool master-slave configuration support Arun Ramadoss
2022-03-04 13:13 ` Andrew Lunn
2022-03-04 13:31 ` Arun.Ramadoss [this message]
2022-03-04 13:51 ` Andrew Lunn
2022-03-04 12:50 ` [PATCH net-next 0/6] Add support for LAN937x T1 Phy Driver patchwork-bot+netdevbpf
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=69bfebc2a8a5cef56a4b064e32d00fcbd78f54c3.camel@microchip.com \
--to=arun.ramadoss@microchip.com \
--cc=UNGLinuxDriver@microchip.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=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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.