lkml.org 
[lkml]   [2022]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.19 01/64] thunderbolt: Change downstream router's TMU rate in both TMU uni/bidir mode
    Date
    From: Gil Fine <gil.fine@intel.com>

    [ Upstream commit 5fd6b9a5cbe63fea4c490fee8af34144a139a266 ]

    In case of uni-directional time sync, TMU handshake is
    initiated by upstream router. In case of bi-directional
    time sync, TMU handshake is initiated by downstream router.
    In order to handle correctly the case of uni-directional mode,
    we avoid changing the upstream router's rate to off,
    because it might have another downstream router plugged that is set to
    uni-directional mode (and we don't want to change its mode).
    Instead, we always change downstream router's rate.

    Signed-off-by: Gil Fine <gil.fine@intel.com>
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/thunderbolt/tmu.c | 13 +++++++------
    1 file changed, 7 insertions(+), 6 deletions(-)

    diff --git a/drivers/thunderbolt/tmu.c b/drivers/thunderbolt/tmu.c
    index e4a07a26f693..93ba1d00335b 100644
    --- a/drivers/thunderbolt/tmu.c
    +++ b/drivers/thunderbolt/tmu.c
    @@ -359,13 +359,14 @@ int tb_switch_tmu_disable(struct tb_switch *sw)
    * In case of uni-directional time sync, TMU handshake is
    * initiated by upstream router. In case of bi-directional
    * time sync, TMU handshake is initiated by downstream router.
    - * Therefore, we change the rate to off in the respective
    - * router.
    + * We change downstream router's rate to off for both uni/bidir
    + * cases although it is needed only for the bi-directional mode.
    + * We avoid changing upstream router's mode since it might
    + * have another downstream router plugged, that is set to
    + * uni-directional mode and we don't want to change it's TMU
    + * mode.
    */
    - if (unidirectional)
    - tb_switch_tmu_rate_write(parent, TB_SWITCH_TMU_RATE_OFF);
    - else
    - tb_switch_tmu_rate_write(sw, TB_SWITCH_TMU_RATE_OFF);
    + tb_switch_tmu_rate_write(sw, TB_SWITCH_TMU_RATE_OFF);

    tb_port_tmu_time_sync_disable(up);
    ret = tb_port_tmu_time_sync_disable(down);
    --
    2.35.1
    \
     
     \ /
      Last update: 2022-08-14 17:25    [W:5.499 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site