From: Andrew Lunn <andrew@lunn.ch>
To: Landen Chao <landen.chao@mediatek.com>
Cc: mark.rutland@arm.com, devicetree@vger.kernel.org,
frank-w@public-files.de, f.fainelli@gmail.com,
vivien.didelot@savoirfairelinux.com, netdev@vger.kernel.org,
sean.wang@mediatek.com, linux-kernel@vger.kernel.org,
opensource@vdorst.com, robh+dt@kernel.org,
linux-mediatek@lists.infradead.org, matthias.bgg@gmail.com,
davem@davemloft.net
Subject: Re: [PATCH net-next 4/6] net: dsa: mt7530: Add the support of MT7531 switch
Date: Tue, 10 Dec 2019 17:44:38 +0100 [thread overview]
Message-ID: <20191210164438.GD27714@lunn.ch> (raw)
In-Reply-To: <6d608dd024edc90b09ba4fe35417b693847f973c.1575914275.git.landen.chao@mediatek.com>
> +static int
> +mt7531_ind_mmd_phy_read(struct mt7530_priv *priv, int port, int devad,
> + int regnum)
> +{
> + struct mii_bus *bus = priv->bus;
> + struct mt7530_dummy_poll p;
> + u32 reg, val;
> + int ret;
> +
> + INIT_MT7530_DUMMY_POLL(&p, priv, MT7531_PHY_IAC);
> +
> + mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
> +
> + ret = readx_poll_timeout(_mt7530_unlocked_read, &p, val,
> + !(val & PHY_ACS_ST), 20, 100000);
> + if (ret < 0) {
> + dev_err(priv->dev, "poll timeout\n");
> + goto out;
> + }
> +
> + reg = MDIO_CL45_ADDR | MDIO_PHY_ADDR(port) | MDIO_DEV_ADDR(devad) |
> + regnum;
It might be better to call this mt7531_ind_c45_phy_read()
> +static int
> +mt7531_ind_phy_read(struct dsa_switch *ds, int port, int regnum)
> +{
> + struct mt7530_priv *priv = ds->priv;
> + struct mii_bus *bus = priv->bus;
> + struct mt7530_dummy_poll p;
> + int ret;
> + u32 val;
> +
> + INIT_MT7530_DUMMY_POLL(&p, priv, MT7531_PHY_IAC);
> +
> + mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
> +
> + ret = readx_poll_timeout(_mt7530_unlocked_read, &p, val,
> + !(val & PHY_ACS_ST), 20, 100000);
> + if (ret < 0) {
> + dev_err(priv->dev, "poll timeout\n");
> + goto out;
> + }
> +
> + val = MDIO_CL22_READ | MDIO_PHY_ADDR(port) | MDIO_REG_ADDR(regnum);
This is then mt7531_ind_c22_phy_read().
And then you can add a wrapper around this to provide
mt7531_phy_read() which can do both C22 and C45.
> + [ID_MT7531] = {
> + .id = ID_MT7531,
> + .setup = mt7531_setup,
> + .phy_read = mt7531_ind_phy_read,
and use it here.
Andrew
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
WARNING: multiple messages have this Message-ID (diff)
From: Andrew Lunn <andrew@lunn.ch>
To: Landen Chao <landen.chao@mediatek.com>
Cc: f.fainelli@gmail.com, vivien.didelot@savoirfairelinux.com,
matthias.bgg@gmail.com, robh+dt@kernel.org, mark.rutland@arm.com,
devicetree@vger.kernel.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org,
davem@davemloft.net, sean.wang@mediatek.com,
opensource@vdorst.com, frank-w@public-files.de
Subject: Re: [PATCH net-next 4/6] net: dsa: mt7530: Add the support of MT7531 switch
Date: Tue, 10 Dec 2019 17:44:38 +0100 [thread overview]
Message-ID: <20191210164438.GD27714@lunn.ch> (raw)
In-Reply-To: <6d608dd024edc90b09ba4fe35417b693847f973c.1575914275.git.landen.chao@mediatek.com>
> +static int
> +mt7531_ind_mmd_phy_read(struct mt7530_priv *priv, int port, int devad,
> + int regnum)
> +{
> + struct mii_bus *bus = priv->bus;
> + struct mt7530_dummy_poll p;
> + u32 reg, val;
> + int ret;
> +
> + INIT_MT7530_DUMMY_POLL(&p, priv, MT7531_PHY_IAC);
> +
> + mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
> +
> + ret = readx_poll_timeout(_mt7530_unlocked_read, &p, val,
> + !(val & PHY_ACS_ST), 20, 100000);
> + if (ret < 0) {
> + dev_err(priv->dev, "poll timeout\n");
> + goto out;
> + }
> +
> + reg = MDIO_CL45_ADDR | MDIO_PHY_ADDR(port) | MDIO_DEV_ADDR(devad) |
> + regnum;
It might be better to call this mt7531_ind_c45_phy_read()
> +static int
> +mt7531_ind_phy_read(struct dsa_switch *ds, int port, int regnum)
> +{
> + struct mt7530_priv *priv = ds->priv;
> + struct mii_bus *bus = priv->bus;
> + struct mt7530_dummy_poll p;
> + int ret;
> + u32 val;
> +
> + INIT_MT7530_DUMMY_POLL(&p, priv, MT7531_PHY_IAC);
> +
> + mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
> +
> + ret = readx_poll_timeout(_mt7530_unlocked_read, &p, val,
> + !(val & PHY_ACS_ST), 20, 100000);
> + if (ret < 0) {
> + dev_err(priv->dev, "poll timeout\n");
> + goto out;
> + }
> +
> + val = MDIO_CL22_READ | MDIO_PHY_ADDR(port) | MDIO_REG_ADDR(regnum);
This is then mt7531_ind_c22_phy_read().
And then you can add a wrapper around this to provide
mt7531_phy_read() which can do both C22 and C45.
> + [ID_MT7531] = {
> + .id = ID_MT7531,
> + .setup = mt7531_setup,
> + .phy_read = mt7531_ind_phy_read,
and use it here.
Andrew
next prev parent reply other threads:[~2019-12-10 16:44 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-10 8:14 [PATCH net-next 0/6] net-next: dsa: mt7530: add support for MT7531 Landen Chao
2019-12-10 8:14 ` Landen Chao
2019-12-10 8:14 ` [PATCH net-next 1/6] net: dsa: mt7530: Refine message in Kconfig Landen Chao
2019-12-10 8:14 ` Landen Chao
2019-12-12 3:41 ` Florian Fainelli
2019-12-12 3:41 ` Florian Fainelli
2019-12-10 8:14 ` [PATCH net-next 2/6] net: dsa: mt7530: Extend device data ready for adding a new hardware Landen Chao
2019-12-10 8:14 ` Landen Chao
2019-12-12 3:45 ` Florian Fainelli
2019-12-12 3:45 ` Florian Fainelli
2019-12-12 15:03 ` Landen Chao
2019-12-12 15:03 ` Landen Chao
2019-12-12 15:05 ` Landen Chao
2019-12-12 15:05 ` Landen Chao
2019-12-10 8:14 ` [PATCH net-next 3/6] dt-bindings: net: dsa: add new MT7531 binding to support MT7531 Landen Chao
2019-12-10 8:14 ` Landen Chao
2019-12-10 16:20 ` Andrew Lunn
2019-12-10 16:20 ` Andrew Lunn
2019-12-11 14:10 ` Landen Chao
2019-12-11 14:10 ` Landen Chao
2019-12-12 3:46 ` Florian Fainelli
2019-12-12 3:46 ` Florian Fainelli
2019-12-10 8:14 ` [PATCH net-next 4/6] net: dsa: mt7530: Add the support of MT7531 switch Landen Chao
2019-12-10 8:14 ` Landen Chao
2019-12-10 16:35 ` Andrew Lunn
2019-12-10 16:35 ` Andrew Lunn
2019-12-10 17:05 ` Vladimir Oltean
2019-12-10 17:05 ` Vladimir Oltean
2019-12-10 20:33 ` Marek Behun
2019-12-10 20:33 ` Marek Behun
2019-12-10 22:02 ` Andrew Lunn
2019-12-10 22:02 ` Andrew Lunn
2019-12-11 17:35 ` Landen Chao
2019-12-11 17:35 ` Landen Chao
2019-12-10 16:44 ` Andrew Lunn [this message]
2019-12-10 16:44 ` Andrew Lunn
2019-12-11 18:18 ` Landen Chao
2019-12-11 18:18 ` Landen Chao
2019-12-11 19:27 ` Andrew Lunn
2019-12-11 19:27 ` Andrew Lunn
2019-12-12 15:04 ` Landen Chao
2019-12-12 15:04 ` Landen Chao
2019-12-10 16:48 ` Andrew Lunn
2019-12-10 16:48 ` Andrew Lunn
2019-12-11 17:48 ` Landen Chao
2019-12-11 17:48 ` Landen Chao
2019-12-12 3:57 ` Florian Fainelli
2019-12-12 3:57 ` Florian Fainelli
2019-12-12 16:24 ` Landen Chao
2019-12-12 16:24 ` Landen Chao
2019-12-10 8:14 ` [PATCH net-next 5/6] arm64: dts: mt7622: add mt7531 dsa to mt7622-rfb1 board Landen Chao
2019-12-10 8:14 ` Landen Chao
2019-12-10 16:51 ` Andrew Lunn
2019-12-10 16:51 ` Andrew Lunn
2019-12-11 18:27 ` Landen Chao
2019-12-11 18:27 ` Landen Chao
2019-12-10 8:14 ` [PATCH net-next 6/6] arm64: dts: mt7622: add mt7531 dsa to bananapi-bpi-r64 board Landen Chao
2019-12-10 8:14 ` Landen Chao
2019-12-10 11:37 ` Aw: [PATCH net-next 0/6] net-next: dsa: mt7530: add support for MT7531 Frank Wunderlich
2019-12-10 11:37 ` Frank Wunderlich
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=20191210164438.GD27714@lunn.ch \
--to=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=f.fainelli@gmail.com \
--cc=frank-w@public-files.de \
--cc=landen.chao@mediatek.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=mark.rutland@arm.com \
--cc=matthias.bgg@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=opensource@vdorst.com \
--cc=robh+dt@kernel.org \
--cc=sean.wang@mediatek.com \
--cc=vivien.didelot@savoirfairelinux.com \
/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.