Message ID | 20240904102722.45427-1-xiaoliang.yang_1@nxp.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net: dsa: felix: ignore pending status of TAS module when it's disabled | expand |
Hi Xiaoliang, On Wed, Sep 04, 2024 at 06:27:22PM +0800, Xiaoliang Yang wrote: > 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. So we don't > need to check the pending status if TAS module is disabled. > > Signed-off-by: Xiaoliang Yang <xiaoliang.yang_1@nxp.com> > --- Does this fix a functional, user-visible problem? If so, which problem is that? Could you describe it in the commit message? And maybe add a Fixes: tag to the patch where the problem was first visible?
Hi Vladimir, Yes, it's a user-visible problem. User can't reconfigured Qbv once the TAS is in pending status(configured the Qbv basetime as a future time). The driver always returns busy. Actually Qbv can be reconfigured after it's disabled. I update the commit to descript it and send in a new patch. Thanks, Xiaoliang > -----Original Message----- > From: Vladimir Oltean <vladimir.oltean@nxp.com> > Sent: Wednesday, September 4, 2024 6:12 PM > To: Xiaoliang Yang <xiaoliang.yang_1@nxp.com> > Cc: netdev@vger.kernel.org; davem@davemloft.net; kuba@kernel.org; > pabeni@redhat.com; Claudiu Manoil <claudiu.manoil@nxp.com>; > alexandre.belloni@bootlin.com; UNGLinuxDriver@microchip.com; > andrew@lunn.ch; f.fainelli@gmail.com; michael@walle.cc; > linux-kernel@vger.kernel.org > Subject: Re: [PATCH net] net: dsa: felix: ignore pending status of TAS module > when it's disabled > > Hi Xiaoliang, > > On Wed, Sep 04, 2024 at 06:27:22PM +0800, Xiaoliang Yang wrote: > > 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. So we > > don't need to check the pending status if TAS module is disabled. > > > > Signed-off-by: Xiaoliang Yang <xiaoliang.yang_1@nxp.com> > > --- > > Does this fix a functional, user-visible problem? If so, which problem is that? > Could you describe it in the commit message? And maybe add a Fixes: tag to > the patch where the problem was first visible?
diff --git a/drivers/net/dsa/ocelot/felix_vsc9959.c b/drivers/net/dsa/ocelot/felix_vsc9959.c index ba37a566da39..ecfa73725d25 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,
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. So we don't need to check the pending status if TAS module is disabled. Signed-off-by: Xiaoliang Yang <xiaoliang.yang_1@nxp.com> --- drivers/net/dsa/ocelot/felix_vsc9959.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)