linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] thunderbolt: Add support for Intel Tiger Lake
@ 2020-04-16 12:08 Mika Westerberg
  2020-04-16 23:17 ` Yehezkel Bernat
  0 siblings, 1 reply; 3+ messages in thread
From: Mika Westerberg @ 2020-04-16 12:08 UTC (permalink / raw)
  To: linux-usb
  Cc: Yehezkel Bernat, Michael Jamet, Andreas Noever, Mika Westerberg,
	Lukas Wunner

Tiger Lake integrated Thunderbolt/USB4 controller is quite close to
Intel Ice Lake. By default it is still using firmware based connection
manager so we can use most of the Ice Lake flows in Tiger Lake as well.
We check if the firmware connection manager is running and in that case
use it, otherwise use the software based connection manager.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
---
 drivers/thunderbolt/icm.c | 22 ++++++++++++++++++++++
 drivers/thunderbolt/nhi.c |  4 ++++
 drivers/thunderbolt/nhi.h |  2 ++
 3 files changed, 28 insertions(+)

diff --git a/drivers/thunderbolt/icm.c b/drivers/thunderbolt/icm.c
index fbbe32ca1e69..ffcc8c3459e5 100644
--- a/drivers/thunderbolt/icm.c
+++ b/drivers/thunderbolt/icm.c
@@ -1633,6 +1633,15 @@ static void icm_icl_rtd3_veto(struct tb *tb, const struct icm_pkg_header *hdr)
 		icm_veto_end(tb);
 }
 
+static bool icm_tgl_is_supported(struct tb *tb)
+{
+	/*
+	 * If the firmware is not running use software CM. This platform
+	 * should fully support both.
+	 */
+	return icm_firmware_running(tb->nhi);
+}
+
 static void icm_handle_notification(struct work_struct *work)
 {
 	struct icm_notification *n = container_of(work, typeof(*n), work);
@@ -2269,6 +2278,19 @@ struct tb *icm_probe(struct tb_nhi *nhi)
 		icm->rtd3_veto = icm_icl_rtd3_veto;
 		tb->cm_ops = &icm_icl_ops;
 		break;
+
+	case PCI_DEVICE_ID_INTEL_TGL_NHI0:
+	case PCI_DEVICE_ID_INTEL_TGL_NHI1:
+		icm->is_supported = icm_tgl_is_supported;
+		icm->driver_ready = icm_icl_driver_ready;
+		icm->set_uuid = icm_icl_set_uuid;
+		icm->device_connected = icm_icl_device_connected;
+		icm->device_disconnected = icm_tr_device_disconnected;
+		icm->xdomain_connected = icm_tr_xdomain_connected;
+		icm->xdomain_disconnected = icm_tr_xdomain_disconnected;
+		icm->rtd3_veto = icm_icl_rtd3_veto;
+		tb->cm_ops = &icm_icl_ops;
+		break;
 	}
 
 	if (!icm->is_supported || !icm->is_supported(tb)) {
diff --git a/drivers/thunderbolt/nhi.c b/drivers/thunderbolt/nhi.c
index 1be491ecbb45..2e51d06e8e8d 100644
--- a/drivers/thunderbolt/nhi.c
+++ b/drivers/thunderbolt/nhi.c
@@ -1270,6 +1270,10 @@ static struct pci_device_id nhi_ids[] = {
 	  .driver_data = (kernel_ulong_t)&icl_nhi_ops },
 	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ICL_NHI1),
 	  .driver_data = (kernel_ulong_t)&icl_nhi_ops },
+	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_TGL_NHI0),
+	  .driver_data = (kernel_ulong_t)&icl_nhi_ops },
+	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_TGL_NHI1),
+	  .driver_data = (kernel_ulong_t)&icl_nhi_ops },
 
 	/* Any USB4 compliant host */
 	{ PCI_DEVICE_CLASS(PCI_CLASS_SERIAL_USB_USB4, ~0) },
diff --git a/drivers/thunderbolt/nhi.h b/drivers/thunderbolt/nhi.h
index 5d276ee9b38e..80162e4b013f 100644
--- a/drivers/thunderbolt/nhi.h
+++ b/drivers/thunderbolt/nhi.h
@@ -73,6 +73,8 @@ extern const struct tb_nhi_ops icl_nhi_ops;
 #define PCI_DEVICE_ID_INTEL_TITAN_RIDGE_DD_BRIDGE	0x15ef
 #define PCI_DEVICE_ID_INTEL_ICL_NHI1			0x8a0d
 #define PCI_DEVICE_ID_INTEL_ICL_NHI0			0x8a17
+#define PCI_DEVICE_ID_INTEL_TGL_NHI0			0x9a1b
+#define PCI_DEVICE_ID_INTEL_TGL_NHI1			0x9a1d
 
 #define PCI_CLASS_SERIAL_USB_USB4			0x0c0340
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] thunderbolt: Add support for Intel Tiger Lake
  2020-04-16 12:08 [PATCH] thunderbolt: Add support for Intel Tiger Lake Mika Westerberg
@ 2020-04-16 23:17 ` Yehezkel Bernat
  2020-04-23  7:05   ` Mika Westerberg
  0 siblings, 1 reply; 3+ messages in thread
From: Yehezkel Bernat @ 2020-04-16 23:17 UTC (permalink / raw)
  To: Mika Westerberg; +Cc: linux-usb, Michael Jamet, Andreas Noever, Lukas Wunner

On Thu, Apr 16, 2020 at 3:08 PM Mika Westerberg
<mika.westerberg@linux.intel.com> wrote:
>
> Tiger Lake integrated Thunderbolt/USB4 controller is quite close to
> Intel Ice Lake. By default it is still using firmware based connection
> manager so we can use most of the Ice Lake flows in Tiger Lake as well.
> We check if the firmware connection manager is running and in that case
> use it, otherwise use the software based connection manager.
>
> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>

Acked-by: Yehezkel Bernat <yehezkelshb@gmail.com>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] thunderbolt: Add support for Intel Tiger Lake
  2020-04-16 23:17 ` Yehezkel Bernat
@ 2020-04-23  7:05   ` Mika Westerberg
  0 siblings, 0 replies; 3+ messages in thread
From: Mika Westerberg @ 2020-04-23  7:05 UTC (permalink / raw)
  To: Yehezkel Bernat; +Cc: linux-usb, Michael Jamet, Andreas Noever, Lukas Wunner

On Fri, Apr 17, 2020 at 02:17:23AM +0300, Yehezkel Bernat wrote:
> On Thu, Apr 16, 2020 at 3:08 PM Mika Westerberg
> <mika.westerberg@linux.intel.com> wrote:
> >
> > Tiger Lake integrated Thunderbolt/USB4 controller is quite close to
> > Intel Ice Lake. By default it is still using firmware based connection
> > manager so we can use most of the Ice Lake flows in Tiger Lake as well.
> > We check if the firmware connection manager is running and in that case
> > use it, otherwise use the software based connection manager.
> >
> > Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> 
> Acked-by: Yehezkel Bernat <yehezkelshb@gmail.com>

Applied, thanks!

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-04-23  7:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-16 12:08 [PATCH] thunderbolt: Add support for Intel Tiger Lake Mika Westerberg
2020-04-16 23:17 ` Yehezkel Bernat
2020-04-23  7:05   ` Mika Westerberg

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).