mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-06 17:35:20 +02:00
net: dsa: felix: ignore pending status of TAS module when it's disabled
[ Upstream commit70654f4c21
] The TAS module could not be configured when it's running in pending status. We need disable the module and configure it again. However, the pending status is not cleared after the module disabled. TC taprio set will always return busy even it's disabled. For example, a user uses tc-taprio to configure Qbv and a future basetime. The TAS module will run in a pending status. There is no way to reconfigure Qbv, it always returns busy. Actually the TAS module can be reconfigured when it's disabled. So it doesn't need to check the pending status if the TAS module is disabled. After the patch, user can delete the tc taprio configuration to disable Qbv and reconfigure it again. Fixes:de143c0e27
("net: dsa: felix: Configure Time-Aware Scheduler via taprio offload") Signed-off-by: Xiaoliang Yang <xiaoliang.yang_1@nxp.com> Link: https://patch.msgid.link/20240906093550.29985-1-xiaoliang.yang_1@nxp.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
83e6fb5904
commit
fc8c0cec1b
|
@ -1474,10 +1474,13 @@ static int vsc9959_qos_port_tas_set(struct ocelot *ocelot, int port,
|
|||
/* Hardware errata - Admin config could not be overwritten if
|
||||
* config is pending, need reset the TAS module
|
||||
*/
|
||||
val = ocelot_read(ocelot, QSYS_PARAM_STATUS_REG_8);
|
||||
if (val & QSYS_PARAM_STATUS_REG_8_CONFIG_PENDING) {
|
||||
ret = -EBUSY;
|
||||
goto err_reset_tc;
|
||||
val = ocelot_read_rix(ocelot, QSYS_TAG_CONFIG, port);
|
||||
if (val & QSYS_TAG_CONFIG_ENABLE) {
|
||||
val = ocelot_read(ocelot, QSYS_PARAM_STATUS_REG_8);
|
||||
if (val & QSYS_PARAM_STATUS_REG_8_CONFIG_PENDING) {
|
||||
ret = -EBUSY;
|
||||
goto err_reset_tc;
|
||||
}
|
||||
}
|
||||
|
||||
ocelot_rmw_rix(ocelot,
|
||||
|
|
Loading…
Reference in New Issue
Block a user