Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp419137imj; Thu, 7 Feb 2019 06:23:47 -0800 (PST) X-Google-Smtp-Source: AHgI3IYITcIwpLNDjkCeNdIgGtbywYxEO+N7DoBTzxTR6QOzUfUmv+hOGxBVvp48hEqg150wM/OI X-Received: by 2002:a17:902:e3:: with SMTP id a90mr16850860pla.82.1549549427177; Thu, 07 Feb 2019 06:23:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549549427; cv=none; d=google.com; s=arc-20160816; b=szCsejSWwFZjqZWmzXb+jFZ398Yrq43h+GfBqWheZOV7YYc8sGUkf1KOl5sGN7e87l 1pHezP20tv3aIvUVRL1wu7xWJfVJIIMv1zScvZmRMe7nmR6yNc0TsQRUJF3hRNh9bLVG /oSt6PwN6gOVMotyM0i+s04jY8CSQHuZ45iC7Amm78h732ZqxyhcuMQ2wSn0nhoo+139 EVsScUmaK1wLVNIog1pwtGROk4ZhysYdaO0q7zxL5/V5jz2TuLunILU2zM8FNY+ne2Dj CzfebA8lfVSDkBfXcFnunORvqIRbVmDoz9Z4TSQ5t3BMgmiqUbyrHDpdBRlzQW+KvvmO 030A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:organization:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=lN6g2q9aIwGRvBARTKoKM5OjtfXxm28tlzjV0RMUEQE=; b=DP6fd8saFno4xJZjgHBl9KS1QrIWvtDAxdTb8DUUvR37SXIJc8Rl1LRYTHECtu+ZdS tXGGGqX2wWJxAyD5oMQ63wLqIGkfumUsqFKxmWGQhnZsB7OcgPK74gXQeWrNDFUJ2E4L FK+SIW7h7q6z5Zs8d0XLUHvs/wA4Wh8yPgPxdciIlBsFxwicRqLCbuCd4hJiaqHnas5I 6mA8M6XD7u1XHCWnX55cV4DaeJDesQooYwXTPExgGHCuSIXD5Aafte80w22+Ci5WYfXC rmKxeIBTRynNzvw04CPp2Ouge9kECByE6uAwzJJlaYemNeEBIH8zbM6DMWJTRM/bVJ5S RNmA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g124si812927pgc.568.2019.02.07.06.23.30; Thu, 07 Feb 2019 06:23:47 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727372AbfBGOWx (ORCPT + 99 others); Thu, 7 Feb 2019 09:22:53 -0500 Received: from mga03.intel.com ([134.134.136.65]:14454 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727346AbfBGOWv (ORCPT ); Thu, 7 Feb 2019 09:22:51 -0500 X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Feb 2019 06:22:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,344,1544515200"; d="scan'208";a="120681829" Received: from smile.fi.intel.com (HELO smile) ([10.237.72.86]) by fmsmga007.fm.intel.com with ESMTP; 07 Feb 2019 06:22:48 -0800 Received: from andy by smile with local (Exim 4.92-RC5) (envelope-from ) id 1grkZi-0006QM-RR; Thu, 07 Feb 2019 16:22:46 +0200 Date: Thu, 7 Feb 2019 16:22:46 +0200 From: Andy Shevchenko To: Mika Westerberg Cc: linux-kernel@vger.kernel.org, Michael Jamet , Yehezkel Bernat , Andreas Noever , Lukas Wunner , "David S . Miller" , netdev@vger.kernel.org Subject: Re: [PATCH v2 00/28] thunderbolt: Software connection manager improvements Message-ID: <20190207142246.GG9224@smile.fi.intel.com> References: <20190206131738.43696-1-mika.westerberg@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190206131738.43696-1-mika.westerberg@linux.intel.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Feb 06, 2019 at 04:17:10PM +0300, Mika Westerberg wrote: > Hi, > > Software connection manager (drivers/thunderbolt/tb.c) is used on older > Apple hardware with Light Ridge, Cactus Ridge or Falcon Ridge controllers > to create PCIe tunnels when a Thunderbolt device is connected. Currently > only one PCIe tunnel is supported. On newer Alpine Ridge based Apple > systems the driver starts the firmware which then takes care creating > tunnels. > > This series improves the software connection manager so that it will > support: > > - Full PCIe daisy chains (up to 6 devices) > - Display Port tunneling > - P2P networking > > We also add support for Titan Ridge based Apple systems where we can use > the same flows than with Alpine Ridge to start the firmware. > > Note in order to prevent possible DMA attacks on these systems we should > make sure IOMMU is enabled. One option is to force dmar_platform_optin() > return true on Apple hardware. However, it is not part of this series. I'm > trusting people using Linux on such systems to take care of it. :-) > > Previous version of the patch series can be viewed here: > > https://lkml.org/lkml/2019/1/29/924 From code style and some other things we discussed off list the series looks good to me. Reviewed-by: Andy Shevchenko Though minor comments per individual patches are provided. > > Changes from v1: > > * Added ACK from David > > * Add constant (TMU_ACCESS_EN) for BIT(20) when TMU access is enabled. We > keep it in cap.c close to the LR/ER workaround. Also we enable/disable > only during capability walk. If it turns we need to have it enabled > elsewhere we can move it to switch.c and enable just once during > switch enumeration. > > * Use 0 to mean no cap_adap instead of negative value. This follows > cap_phy. > > * Use correct PCI IDs (_BRIDGE) in the last patch where we start firmware > on Titan Ridge. It wrongly used NHI PCI IDs in v1. > > Mika Westerberg (28): > net: thunderbolt: Unregister ThunderboltIP protocol handler when suspending > thunderbolt: Do not allocate switch if depth is greater than 6 > thunderbolt: Enable TMU access when accessing port space on legacy devices > thunderbolt: Add dummy read after port capability list walk on Light Ridge > thunderbolt: Move LC specific functionality into a separate file > thunderbolt: Configure lanes when switch is initialized > thunderbolt: Set sleep bit when suspending switch > thunderbolt: Properly disable path > thunderbolt: Cache adapter specific capability offset into struct port > thunderbolt: Rename tunnel_pci to tunnel > thunderbolt: Generalize tunnel creation functionality > thunderbolt: Add functions for allocating and releasing hop IDs > thunderbolt: Add helper function to iterate from one port to another > thunderbolt: Extend tunnel creation to more than 2 adjacent switches > thunderbolt: Deactivate all paths before restarting them > thunderbolt: Discover preboot PCIe paths the boot firmware established > thunderbolt: Add support for full PCIe daisy chains > thunderbolt: Scan only valid NULL adapter ports in hotplug > thunderbolt: Generalize port finding routines to support all port types > thunderbolt: Rework NFC credits handling > thunderbolt: Add support for Display Port tunnels > thunderbolt: Run tb_xdp_handle_request() in system workqueue > thunderbolt: Add XDomain UUID exchange support > thunderbolt: Add support for DMA tunnels > thunderbolt: Make tb_switch_alloc() return ERR_PTR() > thunderbolt: Add support for XDomain connections > thunderbolt: Make rest of the logging to happen at debug level > thunderbolt: Start firmware on Titan Ridge Apple systems > > drivers/net/thunderbolt.c | 3 + > drivers/thunderbolt/Makefile | 4 +- > drivers/thunderbolt/cap.c | 90 +++- > drivers/thunderbolt/ctl.c | 2 +- > drivers/thunderbolt/icm.c | 15 +- > drivers/thunderbolt/lc.c | 179 ++++++++ > drivers/thunderbolt/path.c | 326 +++++++++++++-- > drivers/thunderbolt/switch.c | 466 ++++++++++++++++++--- > drivers/thunderbolt/tb.c | 529 ++++++++++++++++++------ > drivers/thunderbolt/tb.h | 67 ++- > drivers/thunderbolt/tb_msgs.h | 11 + > drivers/thunderbolt/tb_regs.h | 50 ++- > drivers/thunderbolt/tunnel.c | 681 +++++++++++++++++++++++++++++++ > drivers/thunderbolt/tunnel.h | 75 ++++ > drivers/thunderbolt/tunnel_pci.c | 226 ---------- > drivers/thunderbolt/tunnel_pci.h | 31 -- > drivers/thunderbolt/xdomain.c | 142 ++++++- > include/linux/thunderbolt.h | 8 + > 18 files changed, 2389 insertions(+), 516 deletions(-) > create mode 100644 drivers/thunderbolt/lc.c > create mode 100644 drivers/thunderbolt/tunnel.c > create mode 100644 drivers/thunderbolt/tunnel.h > delete mode 100644 drivers/thunderbolt/tunnel_pci.c > delete mode 100644 drivers/thunderbolt/tunnel_pci.h > > -- > 2.20.1 > -- With Best Regards, Andy Shevchenko