From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: linux-usb@vger.kernel.org
Cc: Andreas Noever <andreas.noever@gmail.com>,
Michael Jamet <michael.jamet@intel.com>,
Mika Westerberg <mika.westerberg@linux.intel.com>,
Yehezkel Bernat <YehezkelShB@gmail.com>,
Rajmohan Mani <rajmohan.mani@intel.com>,
Nicholas Johnson <nicholas.johnson-opensource@outlook.com.au>,
Lukas Wunner <lukas@wunner.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Alan Stern <stern@rowland.harvard.edu>,
Mario.Limonciello@dell.com,
Anthony Wong <anthony.wong@canonical.com>,
linux-kernel@vger.kernel.org
Subject: [RFC PATCH 01/22] thunderbolt: Introduce tb_switch_is_icm()
Date: Tue, 1 Oct 2019 14:38:09 +0300 [thread overview]
Message-ID: <20191001113830.13028-2-mika.westerberg@linux.intel.com> (raw)
In-Reply-To: <20191001113830.13028-1-mika.westerberg@linux.intel.com>
We currently differentiate between SW CM and ICM by looking directly at
the sw->config.enabled field which may be rather hard to understand for
the casual reader. For this reason introduce a wrapper function with
documentation that should make the intention more clear.
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
---
drivers/thunderbolt/lc.c | 4 ++--
drivers/thunderbolt/switch.c | 4 ++--
drivers/thunderbolt/tb.h | 14 ++++++++++++++
3 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/drivers/thunderbolt/lc.c b/drivers/thunderbolt/lc.c
index ae1e92611c3e..af38076088f6 100644
--- a/drivers/thunderbolt/lc.c
+++ b/drivers/thunderbolt/lc.c
@@ -94,7 +94,7 @@ int tb_lc_configure_link(struct tb_switch *sw)
struct tb_port *up, *down;
int ret;
- if (!sw->config.enabled || !tb_route(sw))
+ if (!tb_route(sw) || tb_switch_is_icm(sw))
return 0;
up = tb_upstream_port(sw);
@@ -124,7 +124,7 @@ void tb_lc_unconfigure_link(struct tb_switch *sw)
{
struct tb_port *up, *down;
- if (sw->is_unplugged || !sw->config.enabled || !tb_route(sw))
+ if (sw->is_unplugged || !tb_route(sw) || tb_switch_is_icm(sw))
return;
up = tb_upstream_port(sw);
diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c
index 5ea8db667e83..f9efd670d032 100644
--- a/drivers/thunderbolt/switch.c
+++ b/drivers/thunderbolt/switch.c
@@ -986,7 +986,7 @@ static int tb_plug_events_active(struct tb_switch *sw, bool active)
u32 data;
int res;
- if (!sw->config.enabled)
+ if (tb_switch_is_icm(sw))
return 0;
sw->config.plug_events_delay = 0xff;
@@ -1710,7 +1710,7 @@ static int tb_switch_add_dma_port(struct tb_switch *sw)
}
/* Root switch DMA port requires running firmware */
- if (!tb_route(sw) && sw->config.enabled)
+ if (!tb_route(sw) && !tb_switch_is_icm(sw))
return 0;
sw->dma_port = dma_port_alloc(sw);
diff --git a/drivers/thunderbolt/tb.h b/drivers/thunderbolt/tb.h
index 6407d529871d..1565af2e48cb 100644
--- a/drivers/thunderbolt/tb.h
+++ b/drivers/thunderbolt/tb.h
@@ -591,6 +591,20 @@ static inline bool tb_switch_is_fr(const struct tb_switch *sw)
}
}
+/**
+ * tb_switch_is_icm() - Is the switch handled by ICM firmware
+ * @sw: Switch to check
+ *
+ * In case there is a need to differentiate whether ICM firmware or SW CM
+ * is handling @sw this function can be called. It is valid to call this
+ * after tb_switch_alloc() and tb_switch_configure() has been called
+ * (latter only for SW CM case).
+ */
+static inline bool tb_switch_is_icm(const struct tb_switch *sw)
+{
+ return !sw->config.enabled;
+}
+
int tb_wait_for_port(struct tb_port *port, bool wait_if_unplugged);
int tb_port_add_nfc_credits(struct tb_port *port, int credits);
int tb_port_set_initial_credits(struct tb_port *port, u32 credits);
--
2.23.0
next prev parent reply other threads:[~2019-10-01 11:38 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-01 11:38 [RFC PATCH 00/22] thunderbolt: Add support for USB4 Mika Westerberg
2019-10-01 11:38 ` Mika Westerberg [this message]
2019-10-01 12:10 ` [RFC PATCH 01/22] thunderbolt: Introduce tb_switch_is_icm() Greg Kroah-Hartman
2019-10-01 12:46 ` Mika Westerberg
2019-10-01 13:36 ` Mario.Limonciello
2019-10-01 13:48 ` Mika Westerberg
2019-10-01 13:50 ` Mario.Limonciello
2019-10-01 13:52 ` Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 02/22] thunderbolt: Log switch route string on config read/write timeout Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 03/22] thunderbolt: Log warning if adding switch fails Mika Westerberg
2019-10-01 12:18 ` Greg Kroah-Hartman
2019-10-01 12:48 ` Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 04/22] thunderbolt: Make tb_sw_write() take const parameter Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 05/22] thunderbolt: Add helper macros to iterate over switch ports Mika Westerberg
2019-10-02 14:17 ` Oliver Neukum
2019-10-02 14:28 ` Mika Westerberg
2019-10-06 12:15 ` Lukas Wunner
2019-10-01 11:38 ` [RFC PATCH 06/22] thunderbolt: Add support for lane bonding Mika Westerberg
2019-10-01 12:38 ` Greg Kroah-Hartman
2019-10-01 12:53 ` Mika Westerberg
2019-10-02 14:21 ` Oliver Neukum
2019-10-02 14:30 ` Mika Westerberg
2019-10-03 8:25 ` Oliver Neukum
2019-10-03 8:53 ` Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 07/22] thunderbolt: Add default linking between ports if not provided by DROM Mika Westerberg
2019-10-01 12:39 ` Greg Kroah-Hartman
2019-10-01 13:14 ` Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 08/22] thunderbolt: Add downstream PCIe port mappings for Alpine and Titan Ridge Mika Westerberg
2019-10-01 12:40 ` Greg Kroah-Hartman
2019-10-01 13:27 ` Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 09/22] thunderbolt: Convert basic adapter register names to follow the USB4 spec Mika Westerberg
2019-10-01 12:41 ` Greg Kroah-Hartman
2019-10-01 13:28 ` Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 10/22] thunderbolt: Convert PCIe adapter register names to use USB4 names Mika Westerberg
2019-10-01 12:42 ` Greg Kroah-Hartman
2019-10-01 11:38 ` [RFC PATCH 11/22] thunderbolt: Convert DP adapter register names to follow the USB4 spec Mika Westerberg
2019-10-01 12:42 ` Greg Kroah-Hartman
2019-10-01 11:38 ` [RFC PATCH 12/22] thunderbolt: Add Display Port CM handshake for Titan Ridge devices Mika Westerberg
2019-10-01 12:44 ` Greg Kroah-Hartman
2019-10-01 13:30 ` Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 13/22] thunderbolt: Add Display Port adapter pairing and resource management Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 14/22] thunderbolt: Add bandwidth management for Display Port tunnels Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 15/22] thunderbolt: Make tb_find_port() available to other files Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 16/22] thunderbolt: Call tb_eeprom_get_drom_offset() from tb_eeprom_read_n() Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 17/22] thunderbolt: Add initial support for USB4 Mika Westerberg
2019-10-01 12:47 ` Greg Kroah-Hartman
2019-10-01 13:09 ` Mika Westerberg
2019-10-01 14:53 ` Greg Kroah-Hartman
2019-10-01 14:59 ` Mario.Limonciello
2019-10-01 15:13 ` Mika Westerberg
2019-10-01 15:22 ` Greg KH
2019-10-01 15:32 ` Mika Westerberg
2019-10-01 15:07 ` Mika Westerberg
2019-10-01 15:19 ` Greg Kroah-Hartman
2019-10-01 15:26 ` Mika Westerberg
2019-10-01 16:27 ` Oliver Neukum
2019-10-02 8:30 ` Mika Westerberg
2019-10-02 8:39 ` Greg Kroah-Hartman
2019-10-02 8:49 ` Mika Westerberg
2019-10-01 17:05 ` Mario.Limonciello
2019-10-01 18:14 ` Mario.Limonciello
2019-10-02 8:39 ` Mika Westerberg
2019-10-02 15:09 ` Mario.Limonciello
2019-10-02 15:36 ` Yehezkel Bernat
2019-10-02 16:00 ` Mario.Limonciello
2019-10-03 8:00 ` Mika Westerberg
2019-10-03 14:41 ` Mario.Limonciello
2019-10-04 7:54 ` Mika Westerberg
2019-10-04 8:07 ` Yehezkel Bernat
2019-10-04 8:19 ` Mika Westerberg
2019-10-04 11:19 ` Yehezkel Bernat
2019-10-04 14:05 ` Mario.Limonciello
2019-10-04 14:19 ` Mario.Limonciello
2019-10-04 14:21 ` Mika Westerberg
[not found] ` <1570201357.2.0@kellner.me>
2019-10-04 15:16 ` Mika Westerberg
2019-10-04 15:22 ` Christian Kellner
2019-10-02 8:34 ` Mika Westerberg
2019-10-02 15:04 ` Mario.Limonciello
2019-10-01 11:38 ` [RFC PATCH 18/22] thunderbolt: Make tb_switch_find_cap() available to other files Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 19/22] thunderbolt: Add support for Time Management Unit Mika Westerberg
2019-10-02 16:52 ` Mani, Rajmohan
2019-10-03 8:01 ` Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 20/22] thunderbolt: Add support for USB tunnels Mika Westerberg
2019-10-03 8:42 ` Oliver Neukum
2019-10-03 8:52 ` Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 21/22] thunderbolt: Update documentation with the USB4 information Mika Westerberg
2019-10-01 14:17 ` Mario.Limonciello
2019-10-01 14:21 ` Mika Westerberg
2019-10-01 11:38 ` [RFC PATCH 22/22] thunderbolt: Do not start firmware unless asked by the user Mika Westerberg
2019-10-01 14:43 ` Mario.Limonciello
2019-10-01 14:58 ` Mika Westerberg
2019-10-01 16:53 ` Mario.Limonciello
2019-10-02 8:48 ` Mika Westerberg
2019-10-01 12:49 ` [RFC PATCH 00/22] thunderbolt: Add support for USB4 Greg Kroah-Hartman
2019-10-01 13:42 ` Mika Westerberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191001113830.13028-2-mika.westerberg@linux.intel.com \
--to=mika.westerberg@linux.intel.com \
--cc=Mario.Limonciello@dell.com \
--cc=YehezkelShB@gmail.com \
--cc=andreas.noever@gmail.com \
--cc=anthony.wong@canonical.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=michael.jamet@intel.com \
--cc=nicholas.johnson-opensource@outlook.com.au \
--cc=rajmohan.mani@intel.com \
--cc=stern@rowland.harvard.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).