Patch "net: dsa: felix: ignore pending status of TAS module when it's disabled" has been added to the 6.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    net: dsa: felix: ignore pending status of TAS module when it's disabled

to the 6.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     net-dsa-felix-ignore-pending-status-of-tas-module-wh.patch
and it can be found in the queue-6.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit c29a0b92862994b714550e84bc062a05a02e83fe
Author: Xiaoliang Yang <xiaoliang.yang_1@xxxxxxx>
Date:   Fri Sep 6 17:35:50 2024 +0800

    net: dsa: felix: ignore pending status of TAS module when it's disabled
    
    [ Upstream commit 70654f4c212e83898feced125d91ebb3695950d8 ]
    
    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: de143c0e274b ("net: dsa: felix: Configure Time-Aware Scheduler via taprio offload")
    Signed-off-by: Xiaoliang Yang <xiaoliang.yang_1@xxxxxxx>
    Link: https://patch.msgid.link/20240906093550.29985-1-xiaoliang.yang_1@xxxxxxx
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/dsa/ocelot/felix_vsc9959.c b/drivers/net/dsa/ocelot/felix_vsc9959.c
index 85952d841f28..bd061997618d 100644
--- a/drivers/net/dsa/ocelot/felix_vsc9959.c
+++ b/drivers/net/dsa/ocelot/felix_vsc9959.c
@@ -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,




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux