From: "Marek Behún" <kabel@kernel.org>
To: Joe Hershberger <joe.hershberger@ni.com>,
Ramon Fried <rfried.dev@gmail.com>
Cc: u-boot@lists.denx.de, "Marek Behún" <marek.behun@nic.cz>
Subject: [PATCH u-boot-net v3 05/14] treewide: use dm_mdio_read/write/reset() wrappers
Date: Tue, 29 Mar 2022 22:08:36 +0200 [thread overview]
Message-ID: <20220329200845.13435-6-kabel@kernel.org> (raw)
In-Reply-To: <20220329200845.13435-1-kabel@kernel.org>
From: Marek Behún <marek.behun@nic.cz>
Use the new dm_mdio_read/write/reset() wrappers treewide, instead of
always getting and dereferencing MDIO operations structure pointer.
Signed-off-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
---
drivers/net/mdio_mux_sandbox.c | 6 ++----
net/mdio-mux-uclass.c | 16 ++++------------
net/mdio-uclass.c | 19 ++++---------------
test/dm/mdio.c | 18 +++++++++---------
test/dm/mdio_mux.c | 16 ++++++++--------
5 files changed, 27 insertions(+), 48 deletions(-)
diff --git a/drivers/net/mdio_mux_sandbox.c b/drivers/net/mdio_mux_sandbox.c
index fff6ddb2f1..e1801c1426 100644
--- a/drivers/net/mdio_mux_sandbox.c
+++ b/drivers/net/mdio_mux_sandbox.c
@@ -20,7 +20,6 @@ struct mdio_mux_sandbox_priv {
static int mdio_mux_sandbox_mark_selection(struct udevice *dev, int sel)
{
struct udevice *mdio;
- struct mdio_ops *ops;
int err;
/*
@@ -30,9 +29,8 @@ static int mdio_mux_sandbox_mark_selection(struct udevice *dev, int sel)
err = uclass_get_device_by_name(UCLASS_MDIO, "mdio-test", &mdio);
if (err)
return err;
- ops = mdio_get_ops(mdio);
- return ops->write(mdio, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE,
- SANDBOX_PHY_REG_CNT - 1, (u16)sel);
+ return dm_mdio_write(mdio, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE,
+ SANDBOX_PHY_REG_CNT - 1, (u16)sel);
}
static int mdio_mux_sandbox_select(struct udevice *dev, int cur, int sel)
diff --git a/net/mdio-mux-uclass.c b/net/mdio-mux-uclass.c
index 780526c19e..94b90e0657 100644
--- a/net/mdio-mux-uclass.c
+++ b/net/mdio-mux-uclass.c
@@ -54,11 +54,6 @@ static struct udevice *mmux_get_parent_mdio(struct udevice *mux)
return pdata->mdio_parent;
}
-static struct mdio_ops *mmux_get_mdio_parent_ops(struct udevice *mux)
-{
- return mdio_get_ops(mmux_get_parent_mdio(mux));
-}
-
/* call driver select function before performing MDIO r/w */
static int mmux_change_sel(struct udevice *ch, bool sel)
{
@@ -90,14 +85,13 @@ static int mmux_read(struct udevice *ch, int addr, int devad,
{
struct udevice *mux = ch->parent;
struct udevice *parent_mdio = mmux_get_parent_mdio(mux);
- struct mdio_ops *parent_ops = mmux_get_mdio_parent_ops(mux);
int err;
err = mmux_change_sel(ch, true);
if (err)
return err;
- err = parent_ops->read(parent_mdio, addr, devad, reg);
+ err = dm_mdio_read(parent_mdio, addr, devad, reg);
mmux_change_sel(ch, false);
return err;
@@ -109,14 +103,13 @@ static int mmux_write(struct udevice *ch, int addr, int devad,
{
struct udevice *mux = ch->parent;
struct udevice *parent_mdio = mmux_get_parent_mdio(mux);
- struct mdio_ops *parent_ops = mmux_get_mdio_parent_ops(mux);
int err;
err = mmux_change_sel(ch, true);
if (err)
return err;
- err = parent_ops->write(parent_mdio, addr, devad, reg, val);
+ err = dm_mdio_write(parent_mdio, addr, devad, reg, val);
mmux_change_sel(ch, false);
return err;
@@ -127,18 +120,17 @@ static int mmux_reset(struct udevice *ch)
{
struct udevice *mux = ch->parent;
struct udevice *parent_mdio = mmux_get_parent_mdio(mux);
- struct mdio_ops *parent_ops = mmux_get_mdio_parent_ops(mux);
int err;
/* reset is optional, if it's not implemented just exit */
- if (!parent_ops->reset)
+ if (!mdio_get_ops(parent_mdio)->reset)
return 0;
err = mmux_change_sel(ch, true);
if (err)
return err;
- err = parent_ops->reset(parent_mdio);
+ err = dm_mdio_reset(parent_mdio);
mmux_change_sel(ch, false);
return err;
diff --git a/net/mdio-uclass.c b/net/mdio-uclass.c
index 887c228167..bef8280e21 100644
--- a/net/mdio-uclass.c
+++ b/net/mdio-uclass.c
@@ -95,27 +95,18 @@ int dm_mdio_reset(struct udevice *mdio_dev)
*/
static int mdio_read(struct mii_dev *mii_bus, int addr, int devad, int reg)
{
- struct udevice *dev = mii_bus->priv;
-
- return mdio_get_ops(dev)->read(dev, addr, devad, reg);
+ return dm_mdio_read(mii_bus->priv, addr, devad, reg);
}
static int mdio_write(struct mii_dev *mii_bus, int addr, int devad, int reg,
u16 val)
{
- struct udevice *dev = mii_bus->priv;
-
- return mdio_get_ops(dev)->write(dev, addr, devad, reg, val);
+ return dm_mdio_write(mii_bus->priv, addr, devad, reg, val);
}
static int mdio_reset(struct mii_dev *mii_bus)
{
- struct udevice *dev = mii_bus->priv;
-
- if (mdio_get_ops(dev)->reset)
- return mdio_get_ops(dev)->reset(dev);
- else
- return 0;
+ return dm_mdio_reset(mii_bus->priv);
}
static int dm_mdio_post_probe(struct udevice *dev)
@@ -135,10 +126,8 @@ static int dm_mdio_post_probe(struct udevice *dev)
static int dm_mdio_pre_remove(struct udevice *dev)
{
struct mdio_perdev_priv *pdata = dev_get_uclass_priv(dev);
- struct mdio_ops *ops = mdio_get_ops(dev);
- if (ops->reset)
- ops->reset(dev);
+ dm_mdio_reset(dev);
mdio_unregister(pdata->mii_bus);
mdio_free(pdata->mii_bus);
diff --git a/test/dm/mdio.c b/test/dm/mdio.c
index 64347e1275..f863c52645 100644
--- a/test/dm/mdio.c
+++ b/test/dm/mdio.c
@@ -38,18 +38,18 @@ static int dm_test_mdio(struct unit_test_state *uts)
ut_assertnonnull(ops->read);
ut_assertnonnull(ops->write);
- ut_assertok(ops->write(dev, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE,
- SANDBOX_PHY_REG, TEST_REG_VALUE));
- reg = ops->read(dev, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE,
- SANDBOX_PHY_REG);
+ ut_assertok(dm_mdio_write(dev, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE,
+ SANDBOX_PHY_REG, TEST_REG_VALUE));
+ reg = dm_mdio_read(dev, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE,
+ SANDBOX_PHY_REG);
ut_asserteq(reg, TEST_REG_VALUE);
- ut_assert(ops->read(dev, SANDBOX_PHY_ADDR + 1, MDIO_DEVAD_NONE,
- SANDBOX_PHY_REG) != 0);
+ ut_assert(dm_mdio_read(dev, SANDBOX_PHY_ADDR + 1, MDIO_DEVAD_NONE,
+ SANDBOX_PHY_REG) != 0);
- ut_assertok(ops->reset(dev));
- reg = ops->read(dev, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE,
- SANDBOX_PHY_REG);
+ ut_assertok(dm_mdio_reset(dev));
+ reg = dm_mdio_read(dev, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE,
+ SANDBOX_PHY_REG);
ut_asserteq(reg, 0);
return 0;
diff --git a/test/dm/mdio_mux.c b/test/dm/mdio_mux.c
index 950f385d17..bfe3518221 100644
--- a/test/dm/mdio_mux.c
+++ b/test/dm/mdio_mux.c
@@ -57,22 +57,22 @@ static int dm_test_mdio_mux(struct unit_test_state *uts)
* is selected to the selection #. Just reading that register from
* either of the child buses should return the id of the child bus
*/
- reg = ops->read(mdio_ch0, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE,
- SANDBOX_PHY_REG_CNT - 1);
+ reg = dm_mdio_read(mdio_ch0, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE,
+ SANDBOX_PHY_REG_CNT - 1);
ut_asserteq(reg, 0);
- reg = ops->read(mdio_ch1, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE,
- SANDBOX_PHY_REG_CNT - 1);
+ reg = dm_mdio_read(mdio_ch1, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE,
+ SANDBOX_PHY_REG_CNT - 1);
ut_asserteq(reg, 1);
mmops->select(mux, MDIO_MUX_SELECT_NONE, 5);
- reg = ops_parent->read(mdio, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE,
- SANDBOX_PHY_REG_CNT - 1);
+ reg = dm_mdio_read(mdio, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE,
+ SANDBOX_PHY_REG_CNT - 1);
ut_asserteq(reg, 5);
mmops->deselect(mux, 5);
- reg = ops_parent->read(mdio, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE,
- SANDBOX_PHY_REG_CNT - 1);
+ reg = dm_mdio_read(mdio, SANDBOX_PHY_ADDR, MDIO_DEVAD_NONE,
+ SANDBOX_PHY_REG_CNT - 1);
ut_asserteq(reg, (u16)MDIO_MUX_SELECT_NONE);
return 0;
--
2.34.1
next prev parent reply other threads:[~2022-03-29 20:10 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-29 20:08 [PATCH u-boot-net v3 00/14] u-boot-net refactors, fixes, cleanups Marek Behún
2022-03-29 20:08 ` [PATCH u-boot-net v3 01/14] net: mdio-uclass: fix type for phy_mode_str and phy_handle_str Marek Behún
2022-04-06 13:12 ` Vladimir Oltean
2022-03-29 20:08 ` [PATCH u-boot-net v3 02/14] net: mdio-uclass: use ARRAY_SIZE() Marek Behún
2022-04-06 13:13 ` Vladimir Oltean
2022-03-29 20:08 ` [PATCH u-boot-net v3 03/14] net: introduce helpers to get PHY ofnode from MAC Marek Behún
2022-03-29 20:08 ` [PATCH u-boot-net v3 04/14] net: mdio-uclass: add wrappers for read/write/reset operations Marek Behún
2022-04-06 13:14 ` Vladimir Oltean
2022-03-29 20:08 ` Marek Behún [this message]
2022-04-06 13:15 ` [PATCH u-boot-net v3 05/14] treewide: use dm_mdio_read/write/reset() wrappers Vladimir Oltean
2022-03-29 20:08 ` [PATCH u-boot-net v3 06/14] net: phy: fix parsing wrong property Marek Behún
2022-04-06 13:16 ` Vladimir Oltean
2022-03-29 20:08 ` [PATCH u-boot-net v3 07/14] net: introduce helpers to get PHY interface mode from a device/ofnode Marek Behún
2022-04-06 14:03 ` Patrice CHOTARD
2022-03-29 20:08 ` [PATCH u-boot-net v3 08/14] treewide: Rename PHY_INTERFACE_MODE_COUNT to PHY_INTERFACE_MODE_MAX Marek Behún
2022-04-06 13:22 ` Vladimir Oltean
2022-03-29 20:08 ` [PATCH u-boot-net v3 09/14] treewide: Rename PHY_INTERFACE_MODE_NONE to PHY_INTERFACE_MODE_NA Marek Behún
2022-04-06 13:24 ` Vladimir Oltean
2022-03-29 20:08 ` [PATCH u-boot-net v3 10/14] phy: Move PHY_INTERFACE_MODE_NA to the beginning of the enum definition Marek Behún
2022-03-29 20:08 ` [PATCH u-boot-net v3 11/14] net: phy: xilinx: Check interface type in ->config(), not ->probe() Marek Behún
2022-03-29 20:08 ` [PATCH u-boot-net v3 12/14] net: phy: use ->is_c45 instead of is_10g_interface() Marek Behún
2022-03-29 20:08 ` [PATCH u-boot-net v3 13/14] bcmgenet, sun8i_emac: Don't connect PHY two times Marek Behún
2022-03-29 20:08 ` [PATCH u-boot-net v3 14/14] net: phy: don't require PHY interface mode during PHY creation Marek Behún
2022-04-06 13:38 ` Vladimir Oltean
2022-04-01 19:39 ` [PATCH u-boot-net v3 00/14] u-boot-net refactors, fixes, cleanups Ramon Fried
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=20220329200845.13435-6-kabel@kernel.org \
--to=kabel@kernel.org \
--cc=joe.hershberger@ni.com \
--cc=marek.behun@nic.cz \
--cc=rfried.dev@gmail.com \
--cc=u-boot@lists.denx.de \
/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