linux-loongson/drivers/net/ethernet/ti
MD Danish Anwar 01792bc3e5 net: ti: icssg-prueth: Fix HSR and switch offload Enablement during firwmare reload.
To enable HSR / Switch offload, certain configurations are needed.
Currently they are done inside icssg_change_mode(). This function only
gets called if we move from one mode to another without bringing the
links up / down.

Once in HSR / Switch mode, if we bring the links down and bring it back
up again. The callback sequence is,

- emac_ndo_stop()
	Firmwares are stopped
- emac_ndo_open()
	Firmwares are loaded

In this path icssg_change_mode() doesn't get called and as a result the
configurations needed for HSR / Switch is not done.

To fix this, put all these configurations in a separate function
icssg_enable_fw_offload() and call this from both icssg_change_mode()
and emac_ndo_open()

Fixes: 56375086d0 ("net: ti: icssg-prueth: Enable HSR Tx duplication, Tx Tag and Rx Tag offload")
Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Link: https://patch.msgid.link/20250814105106.1491871-1-danishanwar@ti.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2025-08-19 12:26:18 +02:00
..
icssg net: ti: icssg-prueth: Fix HSR and switch offload Enablement during firwmare reload. 2025-08-19 12:26:18 +02:00
am65-cpsw-ethtool.c net: ethernet: ti: am65-cpsw: Introduce multi queue Rx 2024-09-13 10:48:59 +01:00
am65-cpsw-nuss.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-07-10 10:10:49 -07:00
am65-cpsw-nuss.h net: ethernet: ti am65_cpsw: Drop separate TX completion functions 2025-02-19 11:52:44 +00:00
am65-cpsw-qos.c
am65-cpsw-qos.h
am65-cpsw-switchdev.c
am65-cpsw-switchdev.h
am65-cpts.c
am65-cpts.h
cpsw_ale.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
cpsw_ale.h net: ethernet: ti: cpsw_ale: Fix warning on some platforms 2024-10-01 11:34:41 +02:00
cpsw_ethtool.c net: ethernet: ti: cpsw: disable PHY EEE advertisement 2024-12-19 19:07:48 -08:00
cpsw_new.c net: cpsw: isolate cpsw_ndo_ioctl() to just the old driver 2025-05-14 19:41:46 -07:00
cpsw_priv.c net: cpsw: isolate cpsw_ndo_ioctl() to just the old driver 2025-05-14 19:41:46 -07:00
cpsw_priv.h net: cpsw: isolate cpsw_ndo_ioctl() to just the old driver 2025-05-14 19:41:46 -07:00
cpsw_sl.c
cpsw_sl.h
cpsw_switchdev.c
cpsw_switchdev.h
cpsw-common.c
cpsw-phy-sel.c
cpsw.c net: cpsw: isolate cpsw_ndo_ioctl() to just the old driver 2025-05-14 19:41:46 -07:00
cpsw.h
cpts.c time/timecounter: Fix the lie that struct cyclecounter is const 2025-07-01 15:38:25 +02:00
cpts.h
davinci_cpdma.c
davinci_cpdma.h
davinci_emac.c net: ethernet: Switch back to struct platform_driver::remove() 2024-10-04 16:39:56 -07:00
davinci_mdio.c net: ethernet: Switch back to struct platform_driver::remove() 2024-10-04 16:39:56 -07:00
k3-cppi-desc-pool.c
k3-cppi-desc-pool.h
Kconfig net: ti: icssg-prueth: Use page_pool API for RX buffer allocation 2025-03-11 11:09:55 +01:00
Makefile net: ti: icssg-prueth: Split out common object into module 2024-07-15 13:50:40 +01:00
netcp_core.c net: ethernet: Switch back to struct platform_driver::remove() 2024-10-04 16:39:56 -07:00
netcp_ethss.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
netcp_sgmii.c
netcp_xgbepcsr.c
netcp.h
tlan.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
tlan.h