From patchwork Tue Nov 10 00:37:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Patel, Utkarsh H" X-Patchwork-Id: 11892815 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 274B01744 for ; Tue, 10 Nov 2020 00:39:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 112552078D for ; Tue, 10 Nov 2020 00:39:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730249AbgKJAip (ORCPT ); Mon, 9 Nov 2020 19:38:45 -0500 Received: from mga04.intel.com ([192.55.52.120]:25963 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727311AbgKJAip (ORCPT ); Mon, 9 Nov 2020 19:38:45 -0500 IronPort-SDR: +8RFbWz5M5zT6QGvTAYZU5254bHlLCwvqXU25vmSnsA4PDp5mxc0TaqexNH6+PxrzF0tH02hTw IHof8TZcf/rA== X-IronPort-AV: E=McAfee;i="6000,8403,9800"; a="167308557" X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="167308557" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2020 16:38:44 -0800 IronPort-SDR: V7L5k+e9r2CLbh30vomy9O2Tgbe0B4Bho+LcG2x6nM28dNscpaCQQBT/1gaui0RxYdoW2dEFYe uHMJskG2l9tQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="354312328" Received: from uhpatel-desk4.jf.intel.com (HELO uhpatel-desk4.intel.com) ([10.23.15.15]) by orsmga008.jf.intel.com with ESMTP; 09 Nov 2020 16:38:44 -0800 From: Utkarsh Patel To: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Cc: heikki.krogerus@linux.intel.com, pmalani@chromium.org, enric.balletbo@collabora.com, rajmohan.mani@intel.com, azhar.shaikh@intel.com, Utkarsh Patel Subject: [PATCH 1/8] usb: typec: Correct the bit values for the Thunderbolt rounded/non-rounded cable support Date: Mon, 9 Nov 2020 16:37:09 -0800 Message-Id: <20201110003716.5164-2-utkarsh.h.patel@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201110003716.5164-1-utkarsh.h.patel@intel.com> References: <20201110003716.5164-1-utkarsh.h.patel@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Rounded and non-rounded Thunderbolt cables are represented by two bits as per USB Type-C Connector specification v2.0 section F.2.6. Corrected that in the Thunderbolt 3 cable discover mode VDO. Fixes: ca469c292edc ("usb: typec: Add definitions for Thunderbolt 3 Alternate Mode") Signed-off-by: Utkarsh Patel --- include/linux/usb/typec_tbt.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/linux/usb/typec_tbt.h b/include/linux/usb/typec_tbt.h index 47c2d501ddce..aad648d14bb3 100644 --- a/include/linux/usb/typec_tbt.h +++ b/include/linux/usb/typec_tbt.h @@ -40,11 +40,16 @@ struct typec_thunderbolt_data { #define TBT_CABLE_USB3_PASSIVE 2 #define TBT_CABLE_10_AND_20GBPS 3 #define TBT_CABLE_ROUNDED BIT(19) +#define TBT_CABLE_ROUNDED_SUPPORT(_vdo_) \ + (((_vdo_) & GENMASK(20, 19)) >> 19) +#define TBT_GEN3_NON_ROUNDED 0 +#define TBT_GEN3_GEN4_ROUNDED_NON_ROUNDED 1 #define TBT_CABLE_OPTICAL BIT(21) #define TBT_CABLE_RETIMER BIT(22) #define TBT_CABLE_LINK_TRAINING BIT(23) #define TBT_SET_CABLE_SPEED(_s_) (((_s_) & GENMASK(2, 0)) << 16) +#define TBT_SET_CABLE_ROUNDED(_g_) (((_g_) & GENMASK(1, 0)) << 19) /* TBT3 Device Enter Mode VDO bits */ #define TBT_ENTER_MODE_CABLE_SPEED(s) TBT_SET_CABLE_SPEED(s) From patchwork Tue Nov 10 00:37:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Patel, Utkarsh H" X-Patchwork-Id: 11892813 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 3C5B11744 for ; Tue, 10 Nov 2020 00:39:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 27F9820809 for ; Tue, 10 Nov 2020 00:39:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730467AbgKJAir (ORCPT ); Mon, 9 Nov 2020 19:38:47 -0500 Received: from mga04.intel.com ([192.55.52.120]:25963 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730387AbgKJAiq (ORCPT ); Mon, 9 Nov 2020 19:38:46 -0500 IronPort-SDR: aOBQkAW7iTy9oJ5Jhs1URI2lkmfRKJyCGAl03NASg88WHg/KRWhLi7fICAeCbiSszHo4kRNlil U0FjPbITjv2w== X-IronPort-AV: E=McAfee;i="6000,8403,9800"; a="167308560" X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="167308560" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2020 16:38:46 -0800 IronPort-SDR: qYE5tI5DSRYrRZocpoW+TfVXos6L0C7s3Y9Rh1exCBm+0CRMV53vzEx+nw1c6srS7EeY1VomgP HlHzb0dzB3wg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="354312331" Received: from uhpatel-desk4.jf.intel.com (HELO uhpatel-desk4.intel.com) ([10.23.15.15]) by orsmga008.jf.intel.com with ESMTP; 09 Nov 2020 16:38:46 -0800 From: Utkarsh Patel To: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Cc: heikki.krogerus@linux.intel.com, pmalani@chromium.org, enric.balletbo@collabora.com, rajmohan.mani@intel.com, azhar.shaikh@intel.com, Utkarsh Patel Subject: [PATCH 2/8] platform/chrome: cros_ec_typec: Correct the Thunderbolt rounded/non-rounded cable support Date: Mon, 9 Nov 2020 16:37:10 -0800 Message-Id: <20201110003716.5164-3-utkarsh.h.patel@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201110003716.5164-1-utkarsh.h.patel@intel.com> References: <20201110003716.5164-1-utkarsh.h.patel@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Thunderbolt rounded/non-rounded cable support is two bits value. Correcting it as per the Thunderbolt 3 cable discover mode VDO changes done in the Thunderbolt 3 alternate mode header. Fixes: 5b30bd35aab4 ("platform/chrome: cros_ec_typec: Add TBT compat support") Signed-off-by: Utkarsh Patel --- drivers/platform/chrome/cros_ec_typec.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/platform/chrome/cros_ec_typec.c b/drivers/platform/chrome/cros_ec_typec.c index 31be31161350..8111ed1fc574 100644 --- a/drivers/platform/chrome/cros_ec_typec.c +++ b/drivers/platform/chrome/cros_ec_typec.c @@ -438,8 +438,7 @@ static int cros_typec_enable_tbt(struct cros_typec_data *typec, if (pd_ctrl->control_flags & USB_PD_CTRL_ACTIVE_LINK_UNIDIR) data.cable_mode |= TBT_CABLE_LINK_TRAINING; - if (pd_ctrl->cable_gen) - data.cable_mode |= TBT_CABLE_ROUNDED; + data.cable_mode |= TBT_SET_CABLE_ROUNDED(pd_ctrl->cable_gen); /* Enter Mode VDO */ data.enter_vdo = TBT_SET_CABLE_SPEED(pd_ctrl->cable_speed); From patchwork Tue Nov 10 00:37:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Patel, Utkarsh H" X-Patchwork-Id: 11892801 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 116DE15E6 for ; Tue, 10 Nov 2020 00:38:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EE8E7206D8 for ; Tue, 10 Nov 2020 00:38:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730733AbgKJAit (ORCPT ); Mon, 9 Nov 2020 19:38:49 -0500 Received: from mga04.intel.com ([192.55.52.120]:25963 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730608AbgKJAis (ORCPT ); Mon, 9 Nov 2020 19:38:48 -0500 IronPort-SDR: dFMXm2GE5FHXUWhkCiaOtLJEqlUscMM803h7GIdYgCr/ThiTaBoVpPb8tR9iUY/ZGQZHfXnsST K4cto56jIipA== X-IronPort-AV: E=McAfee;i="6000,8403,9800"; a="167308563" X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="167308563" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2020 16:38:48 -0800 IronPort-SDR: 8+NyTaOfgOqfj3dSponRGgWOUyPbqwLPWrxFYMIP3BIM+0VuP4bODYMzSh+olKTJjaxzAuktwS Xne/VfvlYHzw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="354312344" Received: from uhpatel-desk4.jf.intel.com (HELO uhpatel-desk4.intel.com) ([10.23.15.15]) by orsmga008.jf.intel.com with ESMTP; 09 Nov 2020 16:38:48 -0800 From: Utkarsh Patel To: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Cc: heikki.krogerus@linux.intel.com, pmalani@chromium.org, enric.balletbo@collabora.com, rajmohan.mani@intel.com, azhar.shaikh@intel.com, Utkarsh Patel Subject: [PATCH 3/8] usb: typec: intel_pmc_mux: Configure Thunderbolt cable generation bits Date: Mon, 9 Nov 2020 16:37:11 -0800 Message-Id: <20201110003716.5164-4-utkarsh.h.patel@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201110003716.5164-1-utkarsh.h.patel@intel.com> References: <20201110003716.5164-1-utkarsh.h.patel@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Thunderbolt cable generation bits received as a part of Thunderbolt 3 cable discover mode VDO needs to be configured for Thunderbolt rounded and non-rounded cable support in the Thunderbolt alternate mode. Signed-off-by: Utkarsh Patel --- drivers/usb/typec/mux/intel_pmc_mux.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/usb/typec/mux/intel_pmc_mux.c b/drivers/usb/typec/mux/intel_pmc_mux.c index d7f63b74c6b1..aa3211f1c4c3 100644 --- a/drivers/usb/typec/mux/intel_pmc_mux.c +++ b/drivers/usb/typec/mux/intel_pmc_mux.c @@ -256,6 +256,7 @@ static int pmc_usb_mux_tbt(struct pmc_usb_port *port, struct typec_mux_state *state) { struct typec_thunderbolt_data *data = state->data; + u8 cable_rounded = TBT_CABLE_ROUNDED_SUPPORT(data->cable_mode); u8 cable_speed = TBT_CABLE_SPEED(data->cable_mode); struct altmode_req req = { }; @@ -284,6 +285,8 @@ pmc_usb_mux_tbt(struct pmc_usb_port *port, struct typec_mux_state *state) req.mode_data |= PMC_USB_ALTMODE_CABLE_SPD(cable_speed); + req.mode_data |= PMC_USB_ALTMODE_TBT_GEN(cable_rounded); + return pmc_usb_command(port, (void *)&req, sizeof(req)); } From patchwork Tue Nov 10 00:37:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Patel, Utkarsh H" X-Patchwork-Id: 11892809 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 E71691744 for ; Tue, 10 Nov 2020 00:39:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D0B5F207D3 for ; Tue, 10 Nov 2020 00:39:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730846AbgKJAiw (ORCPT ); Mon, 9 Nov 2020 19:38:52 -0500 Received: from mga04.intel.com ([192.55.52.120]:25963 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730790AbgKJAiu (ORCPT ); Mon, 9 Nov 2020 19:38:50 -0500 IronPort-SDR: P9S2hNSbYAiPSWqlTelFyfX/Gdls3BgUiGjC2WdExxO2Bmp23KqCzm18isuZGhXJJVuSp2BL87 TzIXmw3ENwxQ== X-IronPort-AV: E=McAfee;i="6000,8403,9800"; a="167308568" X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="167308568" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2020 16:38:50 -0800 IronPort-SDR: O/Ttf5HRpmiY+MgxDf0+6LWfFh3Mr15pHDoxn6Xrm1BS2c566MK1aeLZbjbMkdGSArQ4oQAII5 b6qsKRACVf6g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="354312348" Received: from uhpatel-desk4.jf.intel.com (HELO uhpatel-desk4.intel.com) ([10.23.15.15]) by orsmga008.jf.intel.com with ESMTP; 09 Nov 2020 16:38:50 -0800 From: Utkarsh Patel To: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Cc: heikki.krogerus@linux.intel.com, pmalani@chromium.org, enric.balletbo@collabora.com, rajmohan.mani@intel.com, azhar.shaikh@intel.com, Utkarsh Patel Subject: [PATCH 4/8] usb: typec: Remove one bit support for the Thunderbolt rounded/non-rounded cable Date: Mon, 9 Nov 2020 16:37:12 -0800 Message-Id: <20201110003716.5164-5-utkarsh.h.patel@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201110003716.5164-1-utkarsh.h.patel@intel.com> References: <20201110003716.5164-1-utkarsh.h.patel@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Two bits support for the Thunderbolt rounded/non-rounded cable has been added to the header file. Hence, removing unused TBT_CABLE_ROUNDED definition from the header file. Fixes: ca469c292edc ("usb: typec: Add definitions for Thunderbolt 3 Alternate Mode") Signed-off-by: Utkarsh Patel --- include/linux/usb/typec_tbt.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/linux/usb/typec_tbt.h b/include/linux/usb/typec_tbt.h index aad648d14bb3..63dd44b72e0c 100644 --- a/include/linux/usb/typec_tbt.h +++ b/include/linux/usb/typec_tbt.h @@ -39,7 +39,6 @@ struct typec_thunderbolt_data { #define TBT_CABLE_USB3_GEN1 1 #define TBT_CABLE_USB3_PASSIVE 2 #define TBT_CABLE_10_AND_20GBPS 3 -#define TBT_CABLE_ROUNDED BIT(19) #define TBT_CABLE_ROUNDED_SUPPORT(_vdo_) \ (((_vdo_) & GENMASK(20, 19)) >> 19) #define TBT_GEN3_NON_ROUNDED 0 From patchwork Tue Nov 10 00:37:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Patel, Utkarsh H" X-Patchwork-Id: 11892805 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 4778F1744 for ; Tue, 10 Nov 2020 00:39:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2CE5F2078D for ; Tue, 10 Nov 2020 00:39:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731095AbgKJAi6 (ORCPT ); Mon, 9 Nov 2020 19:38:58 -0500 Received: from mga04.intel.com ([192.55.52.120]:25963 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730923AbgKJAiy (ORCPT ); Mon, 9 Nov 2020 19:38:54 -0500 IronPort-SDR: hNmH3qcIE0Cs0r6l9Chf9wTntTd/vllA30bS1DEYhKg6nLoIhKcsMyOslp26T84ECRQDS2/at4 EqUav3YvCAhQ== X-IronPort-AV: E=McAfee;i="6000,8403,9800"; a="167308586" X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="167308586" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2020 16:38:53 -0800 IronPort-SDR: sbf93IN/N67SJ0uH032Yevp3hC3tEfY97Y8p8c4ajFhKIS5ahJc0evkzjFm5qcW0Vq+1YGZOJL q/5ah14Sz2Vw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="354312360" Received: from uhpatel-desk4.jf.intel.com (HELO uhpatel-desk4.intel.com) ([10.23.15.15]) by orsmga008.jf.intel.com with ESMTP; 09 Nov 2020 16:38:52 -0800 From: Utkarsh Patel To: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Cc: heikki.krogerus@linux.intel.com, pmalani@chromium.org, enric.balletbo@collabora.com, rajmohan.mani@intel.com, azhar.shaikh@intel.com, Utkarsh Patel Subject: [PATCH 5/8] usb: typec: Use Thunderbolt 3 cable discover mode VDO in Enter_USB message Date: Mon, 9 Nov 2020 16:37:13 -0800 Message-Id: <20201110003716.5164-6-utkarsh.h.patel@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201110003716.5164-1-utkarsh.h.patel@intel.com> References: <20201110003716.5164-1-utkarsh.h.patel@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org USB4 also uses same cable properties as Thunderbolt 3 so use Thunderbolt 3 cable discover mode VDO to fill details such as active cable plug link training and cable rounded support. Suggested-by: Heikki Krogerus Signed-off-by: Utkarsh Patel --- include/linux/usb/typec.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/linux/usb/typec.h b/include/linux/usb/typec.h index 6be558045942..d91e09d9d91c 100644 --- a/include/linux/usb/typec.h +++ b/include/linux/usb/typec.h @@ -75,6 +75,7 @@ enum typec_orientation { /* * struct enter_usb_data - Enter_USB Message details * @eudo: Enter_USB Data Object + * @tbt_cable_vdo: TBT3 Cable Discover Mode Response * @active_link_training: Active Cable Plug Link Training * * @active_link_training is a flag that should be set with uni-directional SBRX @@ -83,6 +84,7 @@ enum typec_orientation { */ struct enter_usb_data { u32 eudo; + u32 tbt_cable_vdo; unsigned char active_link_training:1; }; From patchwork Tue Nov 10 00:37:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Patel, Utkarsh H" X-Patchwork-Id: 11892803 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 BCD581744 for ; Tue, 10 Nov 2020 00:39:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A78592078D for ; Tue, 10 Nov 2020 00:39:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731192AbgKJAjA (ORCPT ); Mon, 9 Nov 2020 19:39:00 -0500 Received: from mga04.intel.com ([192.55.52.120]:25963 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731115AbgKJAi7 (ORCPT ); Mon, 9 Nov 2020 19:38:59 -0500 IronPort-SDR: yK5iQr4Kw7DEnmET5ukiH0HgIYPEQegBgk5CrLuTuxftEkcyafwrKqW2dIXw2qQ6ByI/zmLCQv 0hiVUy/S+myg== X-IronPort-AV: E=McAfee;i="6000,8403,9800"; a="167308616" X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="167308616" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2020 16:38:55 -0800 IronPort-SDR: Fll814JwIQALSl+wpFokCLz5V0TOSBTozvUSSixxMgTKVHOtrRXJQdWC92ycZ0X2RnKysrwKD+ xtrXMCuDPDBg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="354312366" Received: from uhpatel-desk4.jf.intel.com (HELO uhpatel-desk4.intel.com) ([10.23.15.15]) by orsmga008.jf.intel.com with ESMTP; 09 Nov 2020 16:38:54 -0800 From: Utkarsh Patel To: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Cc: heikki.krogerus@linux.intel.com, pmalani@chromium.org, enric.balletbo@collabora.com, rajmohan.mani@intel.com, azhar.shaikh@intel.com, Utkarsh Patel Subject: [PATCH 6/8] platform/chrome: cros_ec_typec: Use Thunderbolt 3 cable discover mode VDO in USB4 mode Date: Mon, 9 Nov 2020 16:37:14 -0800 Message-Id: <20201110003716.5164-7-utkarsh.h.patel@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201110003716.5164-1-utkarsh.h.patel@intel.com> References: <20201110003716.5164-1-utkarsh.h.patel@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Configure Thunderbolt3/USB4 cable generation value by filing Thunderbolt 3 cable discover mode VDO to support rounded and non-rounded Thunderbolt3/ USB4 cables. While we are here use Thunderbolt 3 cable discover mode VDO to fill active cable plug link training value. Suggested-by: Heikki Krogerus Signed-off-by: Utkarsh Patel --- drivers/platform/chrome/cros_ec_typec.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/platform/chrome/cros_ec_typec.c b/drivers/platform/chrome/cros_ec_typec.c index 8111ed1fc574..b7416e82c3b3 100644 --- a/drivers/platform/chrome/cros_ec_typec.c +++ b/drivers/platform/chrome/cros_ec_typec.c @@ -514,8 +514,18 @@ static int cros_typec_enable_usb4(struct cros_typec_data *typec, else if (pd_ctrl->control_flags & USB_PD_CTRL_ACTIVE_CABLE) data.eudo |= EUDO_CABLE_TYPE_RE_TIMER << EUDO_CABLE_TYPE_SHIFT; - data.active_link_training = !!(pd_ctrl->control_flags & - USB_PD_CTRL_ACTIVE_LINK_UNIDIR); + /* + * This driver does not have access to the identity information or + * capabilities of the cable, so we don't know is it a real USB4 or + * TBT3 cable. Therefore pretending that it's always TBT3 cable by + * filling the TBT3 Cable VDO. + */ + data.tbt_cable_vdo = TBT_MODE; + + if (pd_ctrl->control_flags & USB_PD_CTRL_ACTIVE_LINK_UNIDIR) + data.tbt_cable_vdo |= TBT_CABLE_LINK_TRAINING; + + data.tbt_cable_vdo |= TBT_SET_CABLE_ROUNDED(pd_ctrl->cable_gen); port->state.alt = NULL; port->state.data = &data; From patchwork Tue Nov 10 00:37:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Patel, Utkarsh H" X-Patchwork-Id: 11892807 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 1546015E6 for ; Tue, 10 Nov 2020 00:39:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E8A2E20789 for ; Tue, 10 Nov 2020 00:39:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731115AbgKJAjH (ORCPT ); Mon, 9 Nov 2020 19:39:07 -0500 Received: from mga04.intel.com ([192.55.52.120]:25974 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731130AbgKJAjG (ORCPT ); Mon, 9 Nov 2020 19:39:06 -0500 IronPort-SDR: FSQNfCQ6aGS5WZTBVgSo7OfRLhI3TpXS19ijn5/aFEJkvNwyjWFdvGtb6cETVXPYr+kaUcvIln 2YGLF1j5+D5g== X-IronPort-AV: E=McAfee;i="6000,8403,9800"; a="167308653" X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="167308653" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2020 16:38:57 -0800 IronPort-SDR: 1kfOF0v2n+Lkcrl5cbE6bVDTmTtEGnXUfndi7miaFYROuECHT365aNfgOlLbPVJz9TYdPpB4me cja9IG22lnjw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="354312381" Received: from uhpatel-desk4.jf.intel.com (HELO uhpatel-desk4.intel.com) ([10.23.15.15]) by orsmga008.jf.intel.com with ESMTP; 09 Nov 2020 16:38:56 -0800 From: Utkarsh Patel To: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Cc: heikki.krogerus@linux.intel.com, pmalani@chromium.org, enric.balletbo@collabora.com, rajmohan.mani@intel.com, azhar.shaikh@intel.com, Utkarsh Patel Subject: [PATCH 7/8] usb: typec: intel_pmc_mux: Configure active cable properties for USB4 Date: Mon, 9 Nov 2020 16:37:15 -0800 Message-Id: <20201110003716.5164-8-utkarsh.h.patel@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201110003716.5164-1-utkarsh.h.patel@intel.com> References: <20201110003716.5164-1-utkarsh.h.patel@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Value received as a part of Thunderbolt 3 cable discover mode VDO needs to be configured in the USB4 mode for the Thunderbolt rounded support and active cable plug link training. Suggested-by: Heikki Krogerus Signed-off-by: Utkarsh Patel --- drivers/usb/typec/mux/intel_pmc_mux.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/usb/typec/mux/intel_pmc_mux.c b/drivers/usb/typec/mux/intel_pmc_mux.c index aa3211f1c4c3..61feb358aad3 100644 --- a/drivers/usb/typec/mux/intel_pmc_mux.c +++ b/drivers/usb/typec/mux/intel_pmc_mux.c @@ -295,6 +295,7 @@ pmc_usb_mux_usb4(struct pmc_usb_port *port, struct typec_mux_state *state) { struct enter_usb_data *data = state->data; struct altmode_req req = { }; + u8 cable_rounded; u8 cable_speed; if (IOM_PORT_ACTIVITY_IS(port->iom_status, TBT) || @@ -308,9 +309,6 @@ pmc_usb_mux_usb4(struct pmc_usb_port *port, struct typec_mux_state *state) /* USB4 Mode */ req.mode_data = PMC_USB_ALTMODE_FORCE_LSR; - if (data->active_link_training) - req.mode_data |= PMC_USB_ALTMODE_ACTIVE_LINK; - req.mode_data |= (port->orientation - 1) << PMC_USB_ALTMODE_ORI_SHIFT; req.mode_data |= (port->role - 1) << PMC_USB_ALTMODE_UFP_SHIFT; @@ -322,6 +320,20 @@ pmc_usb_mux_usb4(struct pmc_usb_port *port, struct typec_mux_state *state) fallthrough; default: req.mode_data |= PMC_USB_ALTMODE_ACTIVE_CABLE; + + if (data->tbt_cable_vdo) { + /* Active Thunderbolt 3 cable */ + if (data->tbt_cable_vdo & TBT_CABLE_LINK_TRAINING) + req.mode_data |= PMC_USB_ALTMODE_ACTIVE_LINK; + + cable_rounded = + TBT_CABLE_ROUNDED_SUPPORT(data->tbt_cable_vdo); + req.mode_data |= PMC_USB_ALTMODE_TBT_GEN(cable_rounded); + } else { + /* Active USB4 cable */ + req.mode_data |= PMC_USB_ALTMODE_ACTIVE_LINK | + PMC_USB_ALTMODE_TBT_GEN(1); + } break; } From patchwork Tue Nov 10 00:37:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Patel, Utkarsh H" X-Patchwork-Id: 11892811 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 48DD91744 for ; Tue, 10 Nov 2020 00:39:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 321AA207D3 for ; Tue, 10 Nov 2020 00:39:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731253AbgKJAjN (ORCPT ); Mon, 9 Nov 2020 19:39:13 -0500 Received: from mga04.intel.com ([192.55.52.120]:25974 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731130AbgKJAjL (ORCPT ); Mon, 9 Nov 2020 19:39:11 -0500 IronPort-SDR: T2HXha+OnmeyGqV0UsAyU5NBsNogDJB7yIjYUBWSwMgellrWVKvmHewCPhzCqZyg0hl8uD4Fm1 Z7pVObWGgX1A== X-IronPort-AV: E=McAfee;i="6000,8403,9800"; a="167308689" X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="167308689" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2020 16:38:58 -0800 IronPort-SDR: I8VpbswOaV7EmvvtK8g+7qrYToR7tuShwspPwrXpQWuCI2QE1D/JwSOM9n1je1OqVVHYWzAvBH KkbDoJ9atiVA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="354312394" Received: from uhpatel-desk4.jf.intel.com (HELO uhpatel-desk4.intel.com) ([10.23.15.15]) by orsmga008.jf.intel.com with ESMTP; 09 Nov 2020 16:38:58 -0800 From: Utkarsh Patel To: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Cc: heikki.krogerus@linux.intel.com, pmalani@chromium.org, enric.balletbo@collabora.com, rajmohan.mani@intel.com, azhar.shaikh@intel.com, Utkarsh Patel Subject: [PATCH 8/8] usb: typec: Remove active_link_training variable from Enter_USB message Date: Mon, 9 Nov 2020 16:37:16 -0800 Message-Id: <20201110003716.5164-9-utkarsh.h.patel@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201110003716.5164-1-utkarsh.h.patel@intel.com> References: <20201110003716.5164-1-utkarsh.h.patel@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Thunderbolt 3 cable discover mode VDO support has been added as part of Enter_USB message to fill details of active cable plug link training. Hence, removing unused variable active_link_training from Enter_USB message data structure. Signed-off-by: Utkarsh Patel --- include/linux/usb/typec.h | 6 ------ 1 file changed, 6 deletions(-) diff --git a/include/linux/usb/typec.h b/include/linux/usb/typec.h index d91e09d9d91c..4a9608a15ac1 100644 --- a/include/linux/usb/typec.h +++ b/include/linux/usb/typec.h @@ -76,16 +76,10 @@ enum typec_orientation { * struct enter_usb_data - Enter_USB Message details * @eudo: Enter_USB Data Object * @tbt_cable_vdo: TBT3 Cable Discover Mode Response - * @active_link_training: Active Cable Plug Link Training - * - * @active_link_training is a flag that should be set with uni-directional SBRX - * communication, and left 0 with passive cables and with bi-directional SBRX - * communication. */ struct enter_usb_data { u32 eudo; u32 tbt_cable_vdo; - unsigned char active_link_training:1; }; /*