From: Colin Foster <colin.foster@in-advantage.com> To: linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, netdev@vger.kernel.org Cc: Terry Bowman <terry.bowman@amd.com>, Wolfram Sang <wsa@kernel.org>, Andy Shevchenko <andy.shevchenko@gmail.com>, Steen Hegelund <Steen.Hegelund@microchip.com>, Lars Povlsen <lars.povlsen@microchip.com>, Linus Walleij <linus.walleij@linaro.org>, Russell King <linux@armlinux.org.uk>, Heiner Kallweit <hkallweit1@gmail.com>, Paolo Abeni <pabeni@redhat.com>, Jakub Kicinski <kuba@kernel.org>, Eric Dumazet <edumazet@google.com>, "David S. Miller" <davem@davemloft.net>, Florian Fainelli <f.fainelli@gmail.com>, Vivien Didelot <vivien.didelot@gmail.com>, Andrew Lunn <andrew@lunn.ch>, UNGLinuxDriver@microchip.com, Alexandre Belloni <alexandre.belloni@bootlin.com>, Claudiu Manoil <claudiu.manoil@nxp.com>, Vladimir Oltean <vladimir.oltean@nxp.com>, Lee Jones <lee.jones@linaro.org> Subject: [RFC v8 net-next 09/16] net: mscc: ocelot: expose ocelot wm functions Date: Sun, 8 May 2022 11:53:06 -0700 [thread overview] Message-ID: <20220508185313.2222956-10-colin.foster@in-advantage.com> (raw) In-Reply-To: <20220508185313.2222956-1-colin.foster@in-advantage.com> Expose ocelot_wm functions so they can be shared with other drivers. Signed-off-by: Colin Foster <colin.foster@in-advantage.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> --- drivers/net/ethernet/mscc/ocelot_devlink.c | 31 ++++++++++++++++++++++ drivers/net/ethernet/mscc/ocelot_vsc7514.c | 28 ------------------- include/soc/mscc/ocelot.h | 5 ++++ 3 files changed, 36 insertions(+), 28 deletions(-) diff --git a/drivers/net/ethernet/mscc/ocelot_devlink.c b/drivers/net/ethernet/mscc/ocelot_devlink.c index b8737efd2a85..d9ea75a14f2f 100644 --- a/drivers/net/ethernet/mscc/ocelot_devlink.c +++ b/drivers/net/ethernet/mscc/ocelot_devlink.c @@ -487,6 +487,37 @@ static void ocelot_watermark_init(struct ocelot *ocelot) ocelot_setup_sharing_watermarks(ocelot); } +/* Watermark encode + * Bit 8: Unit; 0:1, 1:16 + * Bit 7-0: Value to be multiplied with unit + */ +u16 ocelot_wm_enc(u16 value) +{ + WARN_ON(value >= 16 * BIT(8)); + + if (value >= BIT(8)) + return BIT(8) | (value / 16); + + return value; +} +EXPORT_SYMBOL(ocelot_wm_enc); + +u16 ocelot_wm_dec(u16 wm) +{ + if (wm & BIT(8)) + return (wm & GENMASK(7, 0)) * 16; + + return wm; +} +EXPORT_SYMBOL(ocelot_wm_dec); + +void ocelot_wm_stat(u32 val, u32 *inuse, u32 *maxuse) +{ + *inuse = (val & GENMASK(23, 12)) >> 12; + *maxuse = val & GENMASK(11, 0); +} +EXPORT_SYMBOL(ocelot_wm_stat); + /* Pool size and type are fixed up at runtime. Keeping this structure to * look up the cell size multipliers. */ diff --git a/drivers/net/ethernet/mscc/ocelot_vsc7514.c b/drivers/net/ethernet/mscc/ocelot_vsc7514.c index 961f803aca19..68d205088665 100644 --- a/drivers/net/ethernet/mscc/ocelot_vsc7514.c +++ b/drivers/net/ethernet/mscc/ocelot_vsc7514.c @@ -307,34 +307,6 @@ static int ocelot_reset(struct ocelot *ocelot) return 0; } -/* Watermark encode - * Bit 8: Unit; 0:1, 1:16 - * Bit 7-0: Value to be multiplied with unit - */ -static u16 ocelot_wm_enc(u16 value) -{ - WARN_ON(value >= 16 * BIT(8)); - - if (value >= BIT(8)) - return BIT(8) | (value / 16); - - return value; -} - -static u16 ocelot_wm_dec(u16 wm) -{ - if (wm & BIT(8)) - return (wm & GENMASK(7, 0)) * 16; - - return wm; -} - -static void ocelot_wm_stat(u32 val, u32 *inuse, u32 *maxuse) -{ - *inuse = (val & GENMASK(23, 12)) >> 12; - *maxuse = val & GENMASK(11, 0); -} - static const struct ocelot_ops ocelot_ops = { .reset = ocelot_reset, .wm_enc = ocelot_wm_enc, diff --git a/include/soc/mscc/ocelot.h b/include/soc/mscc/ocelot.h index f9124a66e386..61888453f913 100644 --- a/include/soc/mscc/ocelot.h +++ b/include/soc/mscc/ocelot.h @@ -865,6 +865,11 @@ void ocelot_deinit_port(struct ocelot *ocelot, int port); void ocelot_port_set_dsa_8021q_cpu(struct ocelot *ocelot, int port); void ocelot_port_unset_dsa_8021q_cpu(struct ocelot *ocelot, int port); +/* Watermark interface */ +u16 ocelot_wm_enc(u16 value); +u16 ocelot_wm_dec(u16 wm); +void ocelot_wm_stat(u32 val, u32 *inuse, u32 *maxuse); + /* DSA callbacks */ void ocelot_get_strings(struct ocelot *ocelot, int port, u32 sset, u8 *data); void ocelot_get_ethtool_stats(struct ocelot *ocelot, int port, u64 *data); -- 2.25.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Colin Foster <colin.foster@in-advantage.com> To: linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, netdev@vger.kernel.org Cc: Terry Bowman <terry.bowman@amd.com>, Wolfram Sang <wsa@kernel.org>, Andy Shevchenko <andy.shevchenko@gmail.com>, Steen Hegelund <Steen.Hegelund@microchip.com>, Lars Povlsen <lars.povlsen@microchip.com>, Linus Walleij <linus.walleij@linaro.org>, Russell King <linux@armlinux.org.uk>, Heiner Kallweit <hkallweit1@gmail.com>, Paolo Abeni <pabeni@redhat.com>, Jakub Kicinski <kuba@kernel.org>, Eric Dumazet <edumazet@google.com>, "David S. Miller" <davem@davemloft.net>, Florian Fainelli <f.fainelli@gmail.com>, Vivien Didelot <vivien.didelot@gmail.com>, Andrew Lunn <andrew@lunn.ch>, UNGLinuxDriver@microchip.com, Alexandre Belloni <alexandre.belloni@bootlin.com>, Claudiu Manoil <claudiu.manoil@nxp.com>, Vladimir Oltean <vladimir.oltean@nxp.com>, Lee Jones <lee.jones@linaro.org> Subject: [RFC v8 net-next 09/16] net: mscc: ocelot: expose ocelot wm functions Date: Sun, 8 May 2022 11:53:06 -0700 [thread overview] Message-ID: <20220508185313.2222956-10-colin.foster@in-advantage.com> (raw) In-Reply-To: <20220508185313.2222956-1-colin.foster@in-advantage.com> Expose ocelot_wm functions so they can be shared with other drivers. Signed-off-by: Colin Foster <colin.foster@in-advantage.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> --- drivers/net/ethernet/mscc/ocelot_devlink.c | 31 ++++++++++++++++++++++ drivers/net/ethernet/mscc/ocelot_vsc7514.c | 28 ------------------- include/soc/mscc/ocelot.h | 5 ++++ 3 files changed, 36 insertions(+), 28 deletions(-) diff --git a/drivers/net/ethernet/mscc/ocelot_devlink.c b/drivers/net/ethernet/mscc/ocelot_devlink.c index b8737efd2a85..d9ea75a14f2f 100644 --- a/drivers/net/ethernet/mscc/ocelot_devlink.c +++ b/drivers/net/ethernet/mscc/ocelot_devlink.c @@ -487,6 +487,37 @@ static void ocelot_watermark_init(struct ocelot *ocelot) ocelot_setup_sharing_watermarks(ocelot); } +/* Watermark encode + * Bit 8: Unit; 0:1, 1:16 + * Bit 7-0: Value to be multiplied with unit + */ +u16 ocelot_wm_enc(u16 value) +{ + WARN_ON(value >= 16 * BIT(8)); + + if (value >= BIT(8)) + return BIT(8) | (value / 16); + + return value; +} +EXPORT_SYMBOL(ocelot_wm_enc); + +u16 ocelot_wm_dec(u16 wm) +{ + if (wm & BIT(8)) + return (wm & GENMASK(7, 0)) * 16; + + return wm; +} +EXPORT_SYMBOL(ocelot_wm_dec); + +void ocelot_wm_stat(u32 val, u32 *inuse, u32 *maxuse) +{ + *inuse = (val & GENMASK(23, 12)) >> 12; + *maxuse = val & GENMASK(11, 0); +} +EXPORT_SYMBOL(ocelot_wm_stat); + /* Pool size and type are fixed up at runtime. Keeping this structure to * look up the cell size multipliers. */ diff --git a/drivers/net/ethernet/mscc/ocelot_vsc7514.c b/drivers/net/ethernet/mscc/ocelot_vsc7514.c index 961f803aca19..68d205088665 100644 --- a/drivers/net/ethernet/mscc/ocelot_vsc7514.c +++ b/drivers/net/ethernet/mscc/ocelot_vsc7514.c @@ -307,34 +307,6 @@ static int ocelot_reset(struct ocelot *ocelot) return 0; } -/* Watermark encode - * Bit 8: Unit; 0:1, 1:16 - * Bit 7-0: Value to be multiplied with unit - */ -static u16 ocelot_wm_enc(u16 value) -{ - WARN_ON(value >= 16 * BIT(8)); - - if (value >= BIT(8)) - return BIT(8) | (value / 16); - - return value; -} - -static u16 ocelot_wm_dec(u16 wm) -{ - if (wm & BIT(8)) - return (wm & GENMASK(7, 0)) * 16; - - return wm; -} - -static void ocelot_wm_stat(u32 val, u32 *inuse, u32 *maxuse) -{ - *inuse = (val & GENMASK(23, 12)) >> 12; - *maxuse = val & GENMASK(11, 0); -} - static const struct ocelot_ops ocelot_ops = { .reset = ocelot_reset, .wm_enc = ocelot_wm_enc, diff --git a/include/soc/mscc/ocelot.h b/include/soc/mscc/ocelot.h index f9124a66e386..61888453f913 100644 --- a/include/soc/mscc/ocelot.h +++ b/include/soc/mscc/ocelot.h @@ -865,6 +865,11 @@ void ocelot_deinit_port(struct ocelot *ocelot, int port); void ocelot_port_set_dsa_8021q_cpu(struct ocelot *ocelot, int port); void ocelot_port_unset_dsa_8021q_cpu(struct ocelot *ocelot, int port); +/* Watermark interface */ +u16 ocelot_wm_enc(u16 value); +u16 ocelot_wm_dec(u16 wm); +void ocelot_wm_stat(u32 val, u32 *inuse, u32 *maxuse); + /* DSA callbacks */ void ocelot_get_strings(struct ocelot *ocelot, int port, u32 sset, u8 *data); void ocelot_get_ethtool_stats(struct ocelot *ocelot, int port, u64 *data); -- 2.25.1
next prev parent reply other threads:[~2022-05-08 18:58 UTC|newest] Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-05-08 18:52 [RFC v8 net-next 00/16] add support for VSC7512 control over SPI Colin Foster 2022-05-08 18:52 ` Colin Foster 2022-05-08 18:52 ` [RFC v8 net-next 01/16] pinctrl: ocelot: allow pinctrl-ocelot to be loaded as a module Colin Foster 2022-05-08 18:52 ` Colin Foster 2022-05-09 10:05 ` Vladimir Oltean 2022-05-09 10:05 ` Vladimir Oltean 2022-05-08 18:52 ` [RFC v8 net-next 02/16] pinctrl: microchip-sgpio: allow sgpio driver to be used " Colin Foster 2022-05-08 18:52 ` Colin Foster 2022-05-09 10:05 ` Vladimir Oltean 2022-05-09 10:05 ` Vladimir Oltean 2022-05-08 18:53 ` [RFC v8 net-next 03/16] net: ocelot: add interface to get regmaps when exernally controlled Colin Foster 2022-05-08 18:53 ` Colin Foster 2022-05-08 18:53 ` [RFC v8 net-next 04/16] net: mdio: mscc-miim: add ability to be used in a non-mmio configuration Colin Foster 2022-05-08 18:53 ` Colin Foster 2022-05-08 21:14 ` Andy Shevchenko 2022-05-08 21:14 ` Andy Shevchenko 2022-05-08 18:53 ` [RFC v8 net-next 05/16] pinctrl: ocelot: " Colin Foster 2022-05-08 18:53 ` Colin Foster 2022-05-09 8:37 ` Andy Shevchenko 2022-05-09 8:37 ` Andy Shevchenko 2022-05-08 18:53 ` [RFC v8 net-next 06/16] pinctrl: microchip-sgpio: " Colin Foster 2022-05-08 18:53 ` Colin Foster 2022-05-09 8:44 ` Andy Shevchenko 2022-05-09 8:44 ` Andy Shevchenko 2022-05-09 22:19 ` Colin Foster 2022-05-09 22:19 ` Colin Foster 2022-05-08 18:53 ` [RFC v8 net-next 07/16] resource: add define macro for register address resources Colin Foster 2022-05-08 18:53 ` Colin Foster 2022-05-08 18:53 ` [RFC v8 net-next 08/16] mfd: ocelot: add support for the vsc7512 chip via spi Colin Foster 2022-05-08 18:53 ` Colin Foster 2022-05-09 9:02 ` Andy Shevchenko 2022-05-09 9:02 ` Andy Shevchenko 2022-05-09 23:15 ` Colin Foster 2022-05-09 23:15 ` Colin Foster 2022-08-19 16:50 ` Vladimir Oltean 2022-08-19 16:50 ` Vladimir Oltean 2022-05-09 10:52 ` Vladimir Oltean 2022-05-09 10:52 ` Vladimir Oltean 2022-05-09 23:49 ` Colin Foster 2022-05-09 23:49 ` Colin Foster 2022-05-09 17:20 ` Vladimir Oltean 2022-05-09 17:20 ` Vladimir Oltean 2022-05-10 0:30 ` Colin Foster 2022-05-10 0:30 ` Colin Foster 2022-05-10 15:32 ` Lee Jones 2022-05-10 15:32 ` Lee Jones 2022-05-10 16:13 ` Colin Foster 2022-05-10 16:13 ` Colin Foster 2022-05-12 9:49 ` Lee Jones 2022-05-12 9:49 ` Lee Jones 2022-05-12 15:03 ` Colin Foster 2022-05-12 15:03 ` Colin Foster 2022-05-10 15:58 ` Vladimir Oltean 2022-05-10 15:58 ` Vladimir Oltean 2022-05-10 16:02 ` Colin Foster 2022-05-10 16:02 ` Colin Foster 2022-05-08 18:53 ` Colin Foster [this message] 2022-05-08 18:53 ` [RFC v8 net-next 09/16] net: mscc: ocelot: expose ocelot wm functions Colin Foster 2022-05-08 18:53 ` [RFC v8 net-next 10/16] net: dsa: felix: add configurable device quirks Colin Foster 2022-05-08 18:53 ` Colin Foster 2022-05-08 18:53 ` [RFC v8 net-next 11/16] net: mscc: ocelot: expose regfield definition to be used by other drivers Colin Foster 2022-05-08 18:53 ` Colin Foster 2022-05-09 10:56 ` Vladimir Oltean 2022-05-09 10:56 ` Vladimir Oltean 2022-05-10 0:05 ` Colin Foster 2022-05-10 0:05 ` Colin Foster 2022-05-08 18:53 ` [RFC v8 net-next 12/16] net: mscc: ocelot: expose stats layout " Colin Foster 2022-05-08 18:53 ` Colin Foster 2022-05-08 18:53 ` [RFC v8 net-next 13/16] net: mscc: ocelot: expose vcap_props structure Colin Foster 2022-05-08 18:53 ` Colin Foster 2022-05-08 18:53 ` [RFC v8 net-next 14/16] net: dsa: ocelot: add external ocelot switch control Colin Foster 2022-05-08 18:53 ` Colin Foster 2022-05-09 16:27 ` Vladimir Oltean 2022-05-09 16:27 ` Vladimir Oltean 2022-05-10 0:02 ` Colin Foster 2022-05-10 0:02 ` Colin Foster 2022-05-08 18:53 ` [RFC v8 net-next 15/16] net: dsa: felix: add phylink_get_caps capability Colin Foster 2022-05-08 18:53 ` Colin Foster 2022-05-09 10:34 ` Vladimir Oltean 2022-05-09 10:34 ` Vladimir Oltean 2022-05-10 0:23 ` Colin Foster 2022-05-10 0:23 ` Colin Foster 2022-05-09 17:30 ` Vladimir Oltean 2022-05-09 17:30 ` Vladimir Oltean 2022-05-10 0:55 ` Colin Foster 2022-05-10 0:55 ` Colin Foster 2022-05-09 17:58 ` Vladimir Oltean 2022-05-09 17:58 ` Vladimir Oltean 2022-09-09 18:33 ` Colin Foster 2022-09-09 18:33 ` Colin Foster 2022-09-09 19:20 ` Russell King (Oracle) 2022-09-09 19:20 ` Russell King (Oracle) 2022-09-09 19:30 ` Colin Foster 2022-09-09 19:30 ` Colin Foster 2022-09-11 0:44 ` Vladimir Oltean 2022-09-11 0:44 ` Vladimir Oltean 2022-05-08 18:53 ` [RFC v8 net-next 16/16] net: dsa: ocelot: utilize phylink_generic_validate Colin Foster 2022-05-08 18:53 ` Colin Foster 2022-05-09 17:13 ` [RFC v8 net-next 00/16] add support for VSC7512 control over SPI Vladimir Oltean 2022-05-09 17:13 ` Vladimir Oltean 2022-05-10 1:43 ` Colin Foster 2022-05-10 1:43 ` Colin Foster 2022-05-10 2:57 ` Colin Foster 2022-05-10 2:57 ` Colin Foster 2022-05-10 16:18 ` Vladimir Oltean 2022-05-10 16:18 ` Vladimir Oltean 2022-05-14 22:00 ` Colin Foster 2022-05-14 22:00 ` Colin Foster 2022-05-19 14:44 ` Vladimir Oltean 2022-05-19 14:44 ` Vladimir Oltean 2022-05-19 16:15 ` Colin Foster 2022-05-19 16:15 ` Colin Foster 2022-05-19 17:09 ` Vladimir Oltean 2022-05-19 17:09 ` 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=20220508185313.2222956-10-colin.foster@in-advantage.com \ --to=colin.foster@in-advantage.com \ --cc=Steen.Hegelund@microchip.com \ --cc=UNGLinuxDriver@microchip.com \ --cc=alexandre.belloni@bootlin.com \ --cc=andrew@lunn.ch \ --cc=andy.shevchenko@gmail.com \ --cc=claudiu.manoil@nxp.com \ --cc=davem@davemloft.net \ --cc=edumazet@google.com \ --cc=f.fainelli@gmail.com \ --cc=hkallweit1@gmail.com \ --cc=kuba@kernel.org \ --cc=lars.povlsen@microchip.com \ --cc=lee.jones@linaro.org \ --cc=linus.walleij@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux@armlinux.org.uk \ --cc=netdev@vger.kernel.org \ --cc=pabeni@redhat.com \ --cc=terry.bowman@amd.com \ --cc=vivien.didelot@gmail.com \ --cc=vladimir.oltean@nxp.com \ --cc=wsa@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: linkBe 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.