From: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
To: Andrew Lunn <andrew@lunn.ch>, Heiner Kallweit <hkallweit1@gmail.com>
Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Florian Fainelli <f.fainelli@gmail.com>,
Jakub Kicinski <kuba@kernel.org>,
Jiawen Wu <jiawenwu@trustnetic.com>,
Jose Abreu <joabreu@synopsys.com>,
Jose Abreu <Jose.Abreu@synopsys.com>,
linux-arm-kernel@lists.infradead.org,
linux-stm32@st-md-mailman.stormreply.com,
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
Mengyuan Lou <mengyuanlou@net-swift.com>,
netdev@vger.kernel.org, Paolo Abeni <pabeni@redhat.com>,
Vladimir Oltean <olteanv@gmail.com>
Subject: [PATCH net-next 07/13] net: pcs: xpcs: move searching ID list out of line
Date: Fri, 04 Oct 2024 11:21:12 +0100 [thread overview]
Message-ID: <E1swfQu-006Dfa-0h@rmk-PC.armlinux.org.uk> (raw)
In-Reply-To: <Zv_BTd8UF7XbJF_e@shell.armlinux.org.uk>
Move the searching of the physical ID out of xpcs_create() and into
its own xpcs_identify() function, which makes it self contained.
This reduces the complexity in xpcs_craete(), making it easier to
follow, rather than having a lot of once-run code in the big for()
loop.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/pcs/pcs-xpcs.c | 41 +++++++++++++++++++-------------------
1 file changed, 21 insertions(+), 20 deletions(-)
diff --git a/drivers/net/pcs/pcs-xpcs.c b/drivers/net/pcs/pcs-xpcs.c
index db3f50f195ab..805856cabba1 100644
--- a/drivers/net/pcs/pcs-xpcs.c
+++ b/drivers/net/pcs/pcs-xpcs.c
@@ -1339,6 +1339,26 @@ static const struct phylink_pcs_ops xpcs_phylink_ops = {
.pcs_link_up = xpcs_link_up,
};
+static int xpcs_identify(struct dw_xpcs *xpcs)
+{
+ int i, ret;
+
+ ret = xpcs_read_ids(xpcs);
+ if (ret < 0)
+ return ret;
+
+ for (i = 0; i < ARRAY_SIZE(xpcs_desc_list); i++) {
+ const struct dw_xpcs_desc *entry = &xpcs_desc_list[i];
+
+ if ((xpcs->info.pcs & entry->mask) == entry->id) {
+ xpcs->desc = entry;
+ return 0;
+ }
+ }
+
+ return -ENODEV;
+}
+
static struct dw_xpcs *xpcs_create_data(struct mdio_device *mdiodev)
{
struct dw_xpcs *xpcs;
@@ -1395,7 +1415,6 @@ static void xpcs_clear_clks(struct dw_xpcs *xpcs)
static int xpcs_init_id(struct dw_xpcs *xpcs)
{
const struct dw_xpcs_info *info;
- int i, ret;
info = dev_get_platdata(&xpcs->mdiodev->dev);
if (!info) {
@@ -1405,25 +1424,7 @@ static int xpcs_init_id(struct dw_xpcs *xpcs)
xpcs->info = *info;
}
- ret = xpcs_read_ids(xpcs);
- if (ret < 0)
- return ret;
-
- for (i = 0; i < ARRAY_SIZE(xpcs_desc_list); i++) {
- const struct dw_xpcs_desc *desc = &xpcs_desc_list[i];
-
- if ((xpcs->info.pcs & desc->mask) != desc->id)
- continue;
-
- xpcs->desc = desc;
-
- break;
- }
-
- if (!xpcs->desc)
- return -ENODEV;
-
- return 0;
+ return xpcs_identify(xpcs);
}
static struct dw_xpcs *xpcs_create(struct mdio_device *mdiodev)
--
2.30.2
next prev parent reply other threads:[~2024-10-04 10:30 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-04 10:19 [PATCH net-next 00/13] net: pcs: xpcs: cleanups batch 2 Russell King (Oracle)
2024-10-04 10:20 ` [PATCH net-next 01/13] net: pcs: xpcs: remove dw_xpcs_compat enum Russell King (Oracle)
2024-10-04 10:20 ` [PATCH net-next 02/13] net: pcs: xpcs: don't use array for interface Russell King (Oracle)
2024-10-04 10:20 ` [PATCH net-next 03/13] net: pcs: xpcs: pass xpcs instead of xpcs->id to xpcs_find_compat() Russell King (Oracle)
2024-10-04 10:20 ` [PATCH net-next 04/13] net: pcs: xpcs: provide a helper to get the phylink pcs given xpcs Russell King (Oracle)
2024-10-04 10:21 ` [PATCH net-next 05/13] net: pcs: xpcs: move definition of struct dw_xpcs to private header Russell King (Oracle)
2024-10-04 10:21 ` [PATCH net-next 06/13] net: pcs: xpcs: rename xpcs_get_id() Russell King (Oracle)
2024-10-04 10:21 ` Russell King (Oracle) [this message]
2024-10-04 10:21 ` [PATCH net-next 08/13] net: pcs: xpcs: use FIELD_PREP() and FIELD_GET() Russell King (Oracle)
2024-10-08 9:01 ` Paolo Abeni
2024-10-04 10:21 ` [PATCH net-next 09/13] net: pcs: xpcs: add _modify() accessors Russell King (Oracle)
2024-10-04 10:21 ` [PATCH net-next 10/13] net: pcs: xpcs: convert to use read_poll_timeout() Russell King (Oracle)
2024-10-04 10:21 ` [PATCH net-next 11/13] net: pcs: xpcs: use dev_*() to print messages Russell King (Oracle)
2024-10-04 10:21 ` [PATCH net-next 12/13] net: pcs: xpcs: correctly place DW_VR_MII_DIG_CTRL1_2G5_EN Russell King (Oracle)
2024-10-04 10:21 ` [PATCH net-next 13/13] net: pcs: xpcs: move Wangxun VR_XS_PCS_DIG_CTRL1 configuration Russell King (Oracle)
2024-10-04 10:25 ` [PATCH net-next 00/13] net: pcs: xpcs: cleanups batch 2 Russell King (Oracle)
2024-10-04 11:19 ` Vladimir Oltean
2024-10-04 17:07 ` Russell King (Oracle)
2024-10-04 23:40 ` Serge Semin
2024-10-09 0:02 ` Serge Semin
2024-10-09 9:27 ` Russell King (Oracle)
2024-10-10 20:31 ` Serge Semin
2024-10-09 11:20 ` patchwork-bot+netdevbpf
2024-10-09 11:47 ` Vladimir Oltean
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=E1swfQu-006Dfa-0h@rmk-PC.armlinux.org.uk \
--to=rmk+kernel@armlinux.org.uk \
--cc=Jose.Abreu@synopsys.com \
--cc=alexandre.torgue@foss.st.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=f.fainelli@gmail.com \
--cc=hkallweit1@gmail.com \
--cc=jiawenwu@trustnetic.com \
--cc=joabreu@synopsys.com \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=mengyuanlou@net-swift.com \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.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.