From: Daniel Machon <daniel.machon@microchip.com>
To: "David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Lars Povlsen <lars.povlsen@microchip.com>,
"Steen Hegelund" <Steen.Hegelund@microchip.com>,
<horatiu.vultur@microchip.com>,
<jensemil.schulzostergaard@microchip.com>,
<UNGLinuxDriver@microchip.com>,
Richard Cochran <richardcochran@gmail.com>, <horms@kernel.org>,
<justinstitt@google.com>, <gal@nvidia.com>,
<aakash.r.menon@gmail.com>, <jacob.e.keller@intel.com>,
<ast@fiberby.net>
Cc: <netdev@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>
Subject: [PATCH net-next v2 11/15] net: sparx5: ops out function for setting the port mux
Date: Fri, 4 Oct 2024 15:19:37 +0200 [thread overview]
Message-ID: <20241004-b4-sparx5-lan969x-switch-driver-v2-11-d3290f581663@microchip.com> (raw)
In-Reply-To: <20241004-b4-sparx5-lan969x-switch-driver-v2-0-d3290f581663@microchip.com>
Port muxing is configured based on the supported port modes. As these
modes can differ on Sparx5 and lan969x we ops out the port muxing
function.
Reviewed-by: Steen Hegelund <Steen.Hegelund@microchip.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Daniel Machon <daniel.machon@microchip.com>
---
drivers/net/ethernet/microchip/sparx5/sparx5_main.c | 1 +
drivers/net/ethernet/microchip/sparx5/sparx5_main.h | 6 ++++++
drivers/net/ethernet/microchip/sparx5/sparx5_port.c | 7 +++----
3 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_main.c b/drivers/net/ethernet/microchip/sparx5/sparx5_main.c
index fb677a4a58ee..33d89461f0f4 100644
--- a/drivers/net/ethernet/microchip/sparx5/sparx5_main.c
+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_main.c
@@ -992,6 +992,7 @@ static const struct sparx5_ops sparx5_ops = {
.get_port_dev_bit = &sparx5_port_dev_mapping,
.get_hsch_max_group_rate = &sparx5_get_hsch_max_group_rate,
.get_sdlb_group = &sparx5_get_sdlb_group,
+ .set_port_mux = &sparx5_port_mux_set,
};
static const struct sparx5_match_data sparx5_desc = {
diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_main.h b/drivers/net/ethernet/microchip/sparx5/sparx5_main.h
index b6abbae119c2..8d985dfb65eb 100644
--- a/drivers/net/ethernet/microchip/sparx5/sparx5_main.h
+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_main.h
@@ -267,6 +267,8 @@ struct sparx5_ops {
u32 (*get_port_dev_bit)(struct sparx5 *sparx5, int port);
u32 (*get_hsch_max_group_rate)(int grp);
struct sparx5_sdlb_group *(*get_sdlb_group)(int idx);
+ int (*set_port_mux)(struct sparx5 *sparx5, struct sparx5_port *port,
+ struct sparx5_port_config *conf);
};
struct sparx5_main_io_resource {
@@ -485,6 +487,10 @@ int sparx5_pool_get(struct sparx5_pool_entry *pool, int size, u32 *id);
int sparx5_pool_get_with_idx(struct sparx5_pool_entry *pool, int size, u32 idx,
u32 *id);
+/* sparx5_port.c */
+int sparx5_port_mux_set(struct sparx5 *sparx5, struct sparx5_port *port,
+ struct sparx5_port_config *conf);
+
/* sparx5_sdlb.c */
#define SPX5_SDLB_PUP_TOKEN_DISABLE 0x1FFF
#define SPX5_SDLB_PUP_TOKEN_MAX (SPX5_SDLB_PUP_TOKEN_DISABLE - 1)
diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_port.c b/drivers/net/ethernet/microchip/sparx5/sparx5_port.c
index 49ff94db0e63..0dc2201fe653 100644
--- a/drivers/net/ethernet/microchip/sparx5/sparx5_port.c
+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_port.c
@@ -516,9 +516,8 @@ static int sparx5_port_fifo_sz(struct sparx5 *sparx5,
/* Configure port muxing:
* QSGMII: 4x2G5 devices
*/
-static int sparx5_port_mux_set(struct sparx5 *sparx5,
- struct sparx5_port *port,
- struct sparx5_port_config *conf)
+int sparx5_port_mux_set(struct sparx5 *sparx5, struct sparx5_port *port,
+ struct sparx5_port_config *conf)
{
u32 portno = port->portno;
u32 inst;
@@ -1039,7 +1038,7 @@ int sparx5_port_init(struct sparx5 *sparx5,
pcsinst = spx5_inst_get(sparx5, pcs, pix);
/* Set the mux port mode */
- err = sparx5_port_mux_set(sparx5, port, conf);
+ err = ops->set_port_mux(sparx5, port, conf);
if (err)
return err;
--
2.34.1
next prev parent reply other threads:[~2024-10-04 13:20 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-04 13:19 [PATCH net-next v2 00/15] net: sparx5: prepare for lan969x switch driver Daniel Machon
2024-10-04 13:19 ` [PATCH net-next v2 01/15] net: sparx5: add support for private match data Daniel Machon
2024-10-04 13:19 ` [PATCH net-next v2 02/15] net: sparx5: add indirection layer to register macros Daniel Machon
2024-10-04 13:19 ` [PATCH net-next v2 03/15] net: sparx5: modify SPX5_PORTS_ALL macro Daniel Machon
2024-10-04 13:19 ` [PATCH net-next v2 04/15] net: sparx5: add *sparx5 argument to a few functions Daniel Machon
2024-10-04 13:19 ` [PATCH net-next v2 05/15] net: sparx5: add constants to match data Daniel Machon
2024-10-04 13:19 ` [PATCH net-next v2 06/15] net: sparx5: use SPX5_CONST for constants which already have a symbol Daniel Machon
2024-10-04 13:19 ` [PATCH net-next v2 07/15] net: sparx5: use SPX5_CONST for constants which do not " Daniel Machon
2024-10-04 13:19 ` [PATCH net-next v2 08/15] net: sparx5: add ops to match data Daniel Machon
2024-10-04 13:19 ` [PATCH net-next v2 09/15] net: sparx5: ops out chip port to device index/bit functions Daniel Machon
2024-10-04 13:19 ` [PATCH net-next v2 10/15] net: sparx5: ops out functions for getting certain array values Daniel Machon
2024-10-04 13:19 ` Daniel Machon [this message]
2024-10-04 13:19 ` [PATCH net-next v2 12/15] net: sparx5: ops out PTP IRQ handler Daniel Machon
2024-10-04 13:19 ` [PATCH net-next v2 13/15] net: sparx5: ops out function for DSM calendar calculation Daniel Machon
2024-10-04 13:19 ` [PATCH net-next v2 14/15] net: sparx5: add is_sparx5 macro and use it throughout Daniel Machon
2024-10-04 13:19 ` [PATCH net-next v2 15/15] net: sparx5: redefine internal ports and PGID's as offsets Daniel Machon
2024-10-08 10:20 ` [PATCH net-next v2 00/15] net: sparx5: prepare for lan969x switch 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=20241004-b4-sparx5-lan969x-switch-driver-v2-11-d3290f581663@microchip.com \
--to=daniel.machon@microchip.com \
--cc=Steen.Hegelund@microchip.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=aakash.r.menon@gmail.com \
--cc=ast@fiberby.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=gal@nvidia.com \
--cc=horatiu.vultur@microchip.com \
--cc=horms@kernel.org \
--cc=jacob.e.keller@intel.com \
--cc=jensemil.schulzostergaard@microchip.com \
--cc=justinstitt@google.com \
--cc=kuba@kernel.org \
--cc=lars.povlsen@microchip.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=richardcochran@gmail.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 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®