From patchwork Wed Aug 19 11:27:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mika Westerberg X-Patchwork-Id: 11723533 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C046A16B1 for ; Wed, 19 Aug 2020 11:27:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A7F7920882 for ; Wed, 19 Aug 2020 11:27:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728056AbgHSL13 (ORCPT ); Wed, 19 Aug 2020 07:27:29 -0400 Received: from mga06.intel.com ([134.134.136.31]:63288 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727116AbgHSL1V (ORCPT ); Wed, 19 Aug 2020 07:27:21 -0400 IronPort-SDR: vCsKWuPvDT7zYG4WsnbLCBHdiAzkGU9/paYxs7zudVzCchF2XGRAgj+YjQe94RVpO9bc8p9rHF V0YoIacUEmpQ== X-IronPort-AV: E=McAfee;i="6000,8403,9717"; a="216612662" X-IronPort-AV: E=Sophos;i="5.76,331,1592895600"; d="scan'208";a="216612662" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Aug 2020 04:27:20 -0700 IronPort-SDR: uyxpC3TYfO1rGHJQqNXNOkfwQxVPBiXdoTMWebCucXgZbpfAT3IYcra/QIhfvrTT81ZO4wAarO /rp63RHHgyAg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,331,1592895600"; d="scan'208";a="497204521" Received: from black.fi.intel.com ([10.237.72.28]) by fmsmga006.fm.intel.com with ESMTP; 19 Aug 2020 04:27:17 -0700 Received: by black.fi.intel.com (Postfix, from userid 1001) id CE706B8; Wed, 19 Aug 2020 14:27:16 +0300 (EEST) From: Mika Westerberg To: linux-usb@vger.kernel.org Cc: Michael Jamet , Yehezkel Bernat , Andreas Noever , Mika Westerberg , "Nikunj A . Dadhania" , Srikanth Nandamuri , Lukas Wunner Subject: [PATCH 2/2] thunderbolt: Use maximum USB3 link rate when reclaiming if link is not up Date: Wed, 19 Aug 2020 14:27:16 +0300 Message-Id: <20200819112716.59074-2-mika.westerberg@linux.intel.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200819112716.59074-1-mika.westerberg@linux.intel.com> References: <20200819112716.59074-1-mika.westerberg@linux.intel.com> MIME-Version: 1.0 Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org If the USB3 link is not up the actual link rate is 0 so when reclaiming bandwidth we should look at maximum supported link rate instead. Cc: stable@vger.kernel.org Fixes: 0bd680cd900c ("thunderbolt: Add USB3 bandwidth management") Signed-off-by: Mika Westerberg --- drivers/thunderbolt/tunnel.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/thunderbolt/tunnel.c b/drivers/thunderbolt/tunnel.c index 2aae2c76d880..d50e5b93632a 100644 --- a/drivers/thunderbolt/tunnel.c +++ b/drivers/thunderbolt/tunnel.c @@ -951,10 +951,18 @@ static void tb_usb3_reclaim_available_bandwidth(struct tb_tunnel *tunnel, int ret, max_rate, allocate_up, allocate_down; ret = usb4_usb3_port_actual_link_rate(tunnel->src_port); - if (ret <= 0) { - tb_tunnel_warn(tunnel, "tunnel is not up\n"); + if (ret < 0) { + tb_tunnel_warn(tunnel, "failed to read actual link rate\n"); return; + } else if (!ret) { + /* Use maximum link rate if the link valid is not set */ + ret = usb4_usb3_port_max_link_rate(tunnel->src_port); + if (ret < 0) { + tb_tunnel_warn(tunnel, "failed to read maximum link rate\n"); + return; + } } + /* * 90% of the max rate can be allocated for isochronous * transfers.