From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S939632AbdEXKnl (ORCPT ); Wed, 24 May 2017 06:43:41 -0400 Received: from mga09.intel.com ([134.134.136.24]:52828 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758888AbdEXKng (ORCPT ); Wed, 24 May 2017 06:43:36 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.38,385,1491289200"; d="scan'208";a="972484633" Date: Wed, 24 May 2017 13:39:07 +0300 From: Mika Westerberg To: Lukas Wunner Cc: Greg Kroah-Hartman , Andreas Noever , Michael Jamet , Yehezkel Bernat , Amir Levy , Andy Lutomirski , Mario.Limonciello@dell.com, Jared.Dominguez@dell.com, Andy Shevchenko , linux-kernel@vger.kernel.org Subject: Re: [PATCH 06/24] thunderbolt: Introduce thunderbolt bus and connection manager Message-ID: <20170524103907.GZ8541@lahna.fi.intel.com> References: <20170518143914.60902-1-mika.westerberg@linux.intel.com> <20170518143914.60902-7-mika.westerberg@linux.intel.com> <20170524102821.GB9302@wunner.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170524102821.GB9302@wunner.de> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo User-Agent: Mutt/1.7.1 (2016-10-04) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 24, 2017 at 12:28:21PM +0200, Lukas Wunner wrote: > On Thu, May 18, 2017 at 05:38:56PM +0300, Mika Westerberg wrote: > > Thunderbolt fabric consists of one or more switches. This fabric is > > called domain and it is controlled by an entity called connection > > manager. The connection manager can be either internal (driven by a > > firmware running on the host controller) or external (software driver). > > This driver currently implements support for the latter. > > > > In order to manage switches and their properties more easily we model > > this domain structure as a Linux bus. Each host controller adds a domain > > device to this bus, and these devices are named as domainN where N > > stands for index or id of the current domain. > > What is the rationale for using a bus? Do you intend to attach a driver > to each domain and/or switch? Unless you do, a class might be more > appropriate. It is used to make switches (and the host) identification available for the userspace. This identification information is used to make a decision whether or not a device should be authorized. There will be (in subsequent patches, currently work in progress) also other type of devices (XDomain) which XDomain service drivers bind to in order to send data, like IP traffic over Thunderbolt link(s). And last, Thunderbolt is actually a bus as far as I can tell so we model it accordingly ;-)