* [PATCH v3 0/2] Add interconnect support for stmmac driver.
@ 2024-07-03 22:15 Sagar Cheluvegowda
2024-07-03 22:15 ` [PATCH v3 1/2] dt-bindings: net: qcom: ethernet: Add interconnect properties Sagar Cheluvegowda
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Sagar Cheluvegowda @ 2024-07-03 22:15 UTC (permalink / raw)
To: Vinod Koul, Alexandre Torgue, Jose Abreu, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
Russell King, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bhupesh Sharma
Cc: kernel, Andrew Halaney, Andrew Lunn, linux-arm-msm, netdev,
linux-stm32, linux-arm-kernel, linux-kernel, devicetree,
Sagar Cheluvegowda
Interconnect is a software framework to access NOC bus topology
of the system, this framework is designed to provide a standard
kernel interface to control the settings of the interconnects on
an SoC.
The interconnect support is now being added to the stmmac driver
so that any vendors who wants to use this feature can just
define corresponging dtsi properties according to their
NOC bus topologies.
Signed-off-by: Sagar Cheluvegowda <quic_scheluve@quicinc.com>
---
Changes in v3:
- Drop the patch:
[PATCH v2 3/3] net: stmmac: Bring down the clocks to lower frequencies when mac link goes down.
- Modify the dt-bindings property names from "axi" and "ahb" to "mac-mem" and
"cpu-mac" respectively.
- Link to v2: https://lore.kernel.org/r/20240625-icc_bw_voting_from_ethqos-v2-0-eaa7cf9060f0@quicinc.com
Changes in v2:
- Edit the cover letter to give a big picture of this change.
- Move the interconnect changes from ethqos driver to stmmac driver.
- Reorder the the patches to place bindings patch on the top.
- Remove "_icc_path" redundant string from the "interconnect-names" property.
- Link to v1: https://lore.kernel.org/r/20240619-icc_bw_voting_from_ethqos-v1-0-6112948b825e@quicinc.com
---
Sagar Cheluvegowda (2):
dt-bindings: net: qcom: ethernet: Add interconnect properties
net: stmmac: Add interconnect support
Documentation/devicetree/bindings/net/qcom,ethqos.yaml | 8 ++++++++
drivers/net/ethernet/stmicro/stmmac/stmmac.h | 1 +
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8 ++++++++
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 12 ++++++++++++
include/linux/stmmac.h | 2 ++
5 files changed, 31 insertions(+)
---
base-commit: 8a92980606e3585d72d510a03b59906e96755b8a
change-id: 20240610-icc_bw_voting_from_ethqos-12f5c6ed46c2
Best regards,
--
Sagar Cheluvegowda <quic_scheluve@quicinc.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v3 1/2] dt-bindings: net: qcom: ethernet: Add interconnect properties
2024-07-03 22:15 [PATCH v3 0/2] Add interconnect support for stmmac driver Sagar Cheluvegowda
@ 2024-07-03 22:15 ` Sagar Cheluvegowda
2024-07-04 6:25 ` Krzysztof Kozlowski
2024-07-03 22:15 ` [PATCH v3 2/2] net: stmmac: Add interconnect support Sagar Cheluvegowda
2024-07-03 22:21 ` [PATCH v3 0/2] Add interconnect support for stmmac driver.\ Andrew Lunn
2 siblings, 1 reply; 6+ messages in thread
From: Sagar Cheluvegowda @ 2024-07-03 22:15 UTC (permalink / raw)
To: Vinod Koul, Alexandre Torgue, Jose Abreu, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
Russell King, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bhupesh Sharma
Cc: kernel, Andrew Halaney, Andrew Lunn, linux-arm-msm, netdev,
linux-stm32, linux-arm-kernel, linux-kernel, devicetree,
Sagar Cheluvegowda
Add documentation for the interconnect and interconnect-names
properties required when voting for AHB and AXI buses.
Suggested-by: Andrew Halaney <ahalaney@redhat.com>
Signed-off-by: Sagar Cheluvegowda <quic_scheluve@quicinc.com>
---
Documentation/devicetree/bindings/net/qcom,ethqos.yaml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/qcom,ethqos.yaml b/Documentation/devicetree/bindings/net/qcom,ethqos.yaml
index 6672327358bc..f0e8eaf51137 100644
--- a/Documentation/devicetree/bindings/net/qcom,ethqos.yaml
+++ b/Documentation/devicetree/bindings/net/qcom,ethqos.yaml
@@ -63,6 +63,14 @@ properties:
dma-coherent: true
+ interconnects:
+ maxItems: 2
+
+ interconnect-names:
+ items:
+ - const: cpu-mac
+ - const: mac-mem
+
phys: true
phy-names:
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v3 2/2] net: stmmac: Add interconnect support
2024-07-03 22:15 [PATCH v3 0/2] Add interconnect support for stmmac driver Sagar Cheluvegowda
2024-07-03 22:15 ` [PATCH v3 1/2] dt-bindings: net: qcom: ethernet: Add interconnect properties Sagar Cheluvegowda
@ 2024-07-03 22:15 ` Sagar Cheluvegowda
2024-07-03 22:21 ` [PATCH v3 0/2] Add interconnect support for stmmac driver.\ Andrew Lunn
2 siblings, 0 replies; 6+ messages in thread
From: Sagar Cheluvegowda @ 2024-07-03 22:15 UTC (permalink / raw)
To: Vinod Koul, Alexandre Torgue, Jose Abreu, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
Russell King, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bhupesh Sharma
Cc: kernel, Andrew Halaney, Andrew Lunn, linux-arm-msm, netdev,
linux-stm32, linux-arm-kernel, linux-kernel, devicetree,
Sagar Cheluvegowda
Add interconnect support to vote for bus bandwidth based
on the current speed of the driver.
Adds support for two different paths - one from ethernet to
DDR and the other from CPU to ethernet, Vote from each
interconnect client is aggregated and the on-chip interconnect
hardware is configured to the most appropriate bandwidth profile.
Suggested-by: Andrew Halaney <ahalaney@redhat.com>
Signed-off-by: Sagar Cheluvegowda <quic_scheluve@quicinc.com>
---
drivers/net/ethernet/stmicro/stmmac/stmmac.h | 1 +
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8 ++++++++
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 12 ++++++++++++
include/linux/stmmac.h | 2 ++
4 files changed, 23 insertions(+)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac.h b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
index b23b920eedb1..56a282d2b8cd 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac.h
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
@@ -21,6 +21,7 @@
#include <linux/ptp_clock_kernel.h>
#include <linux/net_tstamp.h>
#include <linux/reset.h>
+#include <linux/interconnect.h>
#include <net/page_pool/types.h>
#include <net/xdp.h>
#include <uapi/linux/bpf.h>
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index b3afc7cb7d72..ec7c61ee44d4 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -985,6 +985,12 @@ static void stmmac_fpe_link_state_handle(struct stmmac_priv *priv, bool is_up)
}
}
+static void stmmac_set_icc_bw(struct stmmac_priv *priv, unsigned int speed)
+{
+ icc_set_bw(priv->plat->axi_icc_path, Mbps_to_icc(speed), Mbps_to_icc(speed));
+ icc_set_bw(priv->plat->ahb_icc_path, Mbps_to_icc(speed), Mbps_to_icc(speed));
+}
+
static void stmmac_mac_link_down(struct phylink_config *config,
unsigned int mode, phy_interface_t interface)
{
@@ -1080,6 +1086,8 @@ static void stmmac_mac_link_up(struct phylink_config *config,
if (priv->plat->fix_mac_speed)
priv->plat->fix_mac_speed(priv->plat->bsp_priv, speed, mode);
+ stmmac_set_icc_bw(priv, speed);
+
if (!duplex)
ctrl &= ~priv->hw->link.duplex;
else
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
index 54797edc9b38..201f9dea6da9 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
@@ -642,6 +642,18 @@ stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac)
dev_dbg(&pdev->dev, "PTP rate %d\n", plat->clk_ptp_rate);
}
+ plat->axi_icc_path = devm_of_icc_get(&pdev->dev, "mac-mem");
+ if (IS_ERR(plat->axi_icc_path)) {
+ ret = ERR_CAST(plat->axi_icc_path);
+ goto error_hw_init;
+ }
+
+ plat->ahb_icc_path = devm_of_icc_get(&pdev->dev, "cpu-mac");
+ if (IS_ERR(plat->ahb_icc_path)) {
+ ret = ERR_CAST(plat->ahb_icc_path);
+ goto error_hw_init;
+ }
+
plat->stmmac_rst = devm_reset_control_get_optional(&pdev->dev,
STMMAC_RESOURCE_NAME);
if (IS_ERR(plat->stmmac_rst)) {
diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h
index f92c195c76ed..385f352a0c23 100644
--- a/include/linux/stmmac.h
+++ b/include/linux/stmmac.h
@@ -283,6 +283,8 @@ struct plat_stmmacenet_data {
struct reset_control *stmmac_rst;
struct reset_control *stmmac_ahb_rst;
struct stmmac_axi *axi;
+ struct icc_path *axi_icc_path;
+ struct icc_path *ahb_icc_path;
int has_gmac4;
int rss_en;
int mac_port_sel_speed;
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 0/2] Add interconnect support for stmmac driver.\
2024-07-03 22:15 [PATCH v3 0/2] Add interconnect support for stmmac driver Sagar Cheluvegowda
2024-07-03 22:15 ` [PATCH v3 1/2] dt-bindings: net: qcom: ethernet: Add interconnect properties Sagar Cheluvegowda
2024-07-03 22:15 ` [PATCH v3 2/2] net: stmmac: Add interconnect support Sagar Cheluvegowda
@ 2024-07-03 22:21 ` Andrew Lunn
2024-07-08 21:28 ` Sagar Cheluvegowda
2 siblings, 1 reply; 6+ messages in thread
From: Andrew Lunn @ 2024-07-03 22:21 UTC (permalink / raw)
To: Sagar Cheluvegowda
Cc: Vinod Koul, Alexandre Torgue, Jose Abreu, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
Russell King, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bhupesh Sharma, kernel, Andrew Halaney, linux-arm-msm, netdev,
linux-stm32, linux-arm-kernel, linux-kernel, devicetree
On Wed, Jul 03, 2024 at 03:15:20PM -0700, Sagar Cheluvegowda wrote:
> Interconnect is a software framework to access NOC bus topology
> of the system, this framework is designed to provide a standard
> kernel interface to control the settings of the interconnects on
> an SoC.
> The interconnect support is now being added to the stmmac driver
> so that any vendors who wants to use this feature can just
> define corresponging dtsi properties according to their
> NOC bus topologies.
>
> Signed-off-by: Sagar Cheluvegowda <quic_scheluve@quicinc.com>
Thanks for the rework.
It is normal to have a user of a new feature. Please could you patch a
few .dts files with these new properties.
Thanks
Andrew
---
pw-bot: cr
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 1/2] dt-bindings: net: qcom: ethernet: Add interconnect properties
2024-07-03 22:15 ` [PATCH v3 1/2] dt-bindings: net: qcom: ethernet: Add interconnect properties Sagar Cheluvegowda
@ 2024-07-04 6:25 ` Krzysztof Kozlowski
0 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2024-07-04 6:25 UTC (permalink / raw)
To: Sagar Cheluvegowda, Vinod Koul, Alexandre Torgue, Jose Abreu,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Maxime Coquelin, Russell King, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Bhupesh Sharma
Cc: kernel, Andrew Halaney, Andrew Lunn, linux-arm-msm, netdev,
linux-stm32, linux-arm-kernel, linux-kernel, devicetree
On 04/07/2024 00:15, Sagar Cheluvegowda wrote:
> Add documentation for the interconnect and interconnect-names
> properties required when voting for AHB and AXI buses.
>
> Suggested-by: Andrew Halaney <ahalaney@redhat.com>
> Signed-off-by: Sagar Cheluvegowda <quic_scheluve@quicinc.com>
> ---
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 0/2] Add interconnect support for stmmac driver.\
2024-07-03 22:21 ` [PATCH v3 0/2] Add interconnect support for stmmac driver.\ Andrew Lunn
@ 2024-07-08 21:28 ` Sagar Cheluvegowda
0 siblings, 0 replies; 6+ messages in thread
From: Sagar Cheluvegowda @ 2024-07-08 21:28 UTC (permalink / raw)
To: Andrew Lunn
Cc: Vinod Koul, Alexandre Torgue, Jose Abreu, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Maxime Coquelin,
Russell King, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Bhupesh Sharma, kernel, Andrew Halaney, linux-arm-msm, netdev,
linux-stm32, linux-arm-kernel, linux-kernel, devicetree
On 7/3/2024 3:21 PM, Andrew Lunn wrote:
> On Wed, Jul 03, 2024 at 03:15:20PM -0700, Sagar Cheluvegowda wrote:
>> Interconnect is a software framework to access NOC bus topology
>> of the system, this framework is designed to provide a standard
>> kernel interface to control the settings of the interconnects on
>> an SoC.
>> The interconnect support is now being added to the stmmac driver
>> so that any vendors who wants to use this feature can just
>> define corresponging dtsi properties according to their
>> NOC bus topologies.
>>
>> Signed-off-by: Sagar Cheluvegowda <quic_scheluve@quicinc.com>
>
> Thanks for the rework.
>
> It is normal to have a user of a new feature. Please could you patch a
> few .dts files with these new properties.
>
> Thanks
> Andrew
> ---
> pw-bot: cr
I should have referenced corresponding dtsi patch in this series,
i am going to post a Version 4 patch updating the cover letter
with a link to the dtsi patch which is enabling interconnect support on
SA8775P ethernet device.
Regards,
Sagar
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-07-08 21:29 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-07-03 22:15 [PATCH v3 0/2] Add interconnect support for stmmac driver Sagar Cheluvegowda
2024-07-03 22:15 ` [PATCH v3 1/2] dt-bindings: net: qcom: ethernet: Add interconnect properties Sagar Cheluvegowda
2024-07-04 6:25 ` Krzysztof Kozlowski
2024-07-03 22:15 ` [PATCH v3 2/2] net: stmmac: Add interconnect support Sagar Cheluvegowda
2024-07-03 22:21 ` [PATCH v3 0/2] Add interconnect support for stmmac driver.\ Andrew Lunn
2024-07-08 21:28 ` Sagar Cheluvegowda
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®