All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benson Leung <bleung@chromium.org>
To: heikki.krogerus@linux.intel.com, enric.balletbo@collabora.com,
	pmalani@chromium.org, gregkh@linuxfoundation.org,
	linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: groeck@chromium.org, bleung@google.com, bleung@chromium.org
Subject: [PATCH 4/6] platform/chrome: cros_ec_typec: Report SOP' PD revision from status
Date: Thu, 28 Jan 2021 22:14:04 -0800	[thread overview]
Message-ID: <20210129061406.2680146-5-bleung@chromium.org> (raw)
In-Reply-To: <20210129061406.2680146-1-bleung@chromium.org>

cros_typec_handle_sop_prime_disc now takes the PD revision provided
by the EC_CMD_TYPEC_STATUS command response for the SOP'.

Attach the properly formatted pd_revision to the cable desc before
registering the cable.

Signed-off-by: Benson Leung <bleung@chromium.org>
---
 drivers/platform/chrome/cros_ec_typec.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/platform/chrome/cros_ec_typec.c b/drivers/platform/chrome/cros_ec_typec.c
index e724a5eaef1c..30600e9454e1 100644
--- a/drivers/platform/chrome/cros_ec_typec.c
+++ b/drivers/platform/chrome/cros_ec_typec.c
@@ -748,7 +748,7 @@ static void cros_typec_parse_pd_identity(struct usb_pd_identity *id,
 		id->vdo[i - 3] = disc->discovery_vdo[i];
 }
 
-static int cros_typec_handle_sop_prime_disc(struct cros_typec_data *typec, int port_num)
+static int cros_typec_handle_sop_prime_disc(struct cros_typec_data *typec, int port_num, u16 pd_revision)
 {
 	struct cros_typec_port *port = typec->ports[port_num];
 	struct ec_response_typec_discovery *disc = port->disc_data;
@@ -794,6 +794,7 @@ static int cros_typec_handle_sop_prime_disc(struct cros_typec_data *typec, int p
 	}
 
 	c_desc.identity = &port->c_identity;
+	c_desc.pd_revision = pd_revision;
 
 	port->cable = typec_register_cable(port->port, &c_desc);
 	if (IS_ERR(port->cable)) {
@@ -893,7 +894,11 @@ static void cros_typec_handle_status(struct cros_typec_data *typec, int port_num
 
 	if (resp.events & PD_STATUS_EVENT_SOP_PRIME_DISC_DONE &&
 	    !typec->ports[port_num]->sop_prime_disc_done) {
-		ret = cros_typec_handle_sop_prime_disc(typec, port_num);
+		u16 sop_prime_revision;
+
+		/* Convert BCD to the format preferred by the TypeC framework */
+		sop_prime_revision = (le16_to_cpu(resp.sop_prime_revision) & 0xff00) >> 4;
+		ret = cros_typec_handle_sop_prime_disc(typec, port_num, sop_prime_revision);
 		if (ret < 0)
 			dev_err(typec->dev, "Couldn't parse SOP' Disc data, port: %d\n", port_num);
 		else
-- 
2.30.0.365.g02bc693789-goog


  parent reply	other threads:[~2021-01-29  6:16 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-29  6:14 [PATCH 0/6] usb: typec: and platform/chrome: Add PD revision numbers Benson Leung
2021-01-29  6:14 ` [PATCH 1/6] usb: typec: Standardize PD Revision format with Type-C Revision Benson Leung
2021-02-01 12:38   ` Heikki Krogerus
2021-01-29  6:14 ` [PATCH 2/6] usb: typec: Provide PD Specification Revision for cable and partner Benson Leung
2021-02-01 12:40   ` Heikki Krogerus
2021-01-29  6:14 ` [PATCH 3/6] usb: typec: Add typec_partner_set_pd_revision Benson Leung
2021-02-01 12:41   ` Heikki Krogerus
2021-01-29  6:14 ` Benson Leung [this message]
2021-02-01 12:51   ` [PATCH 4/6] platform/chrome: cros_ec_typec: Report SOP' PD revision from status Heikki Krogerus
2021-02-01 14:33   ` Enric Balletbo i Serra
2021-02-01 18:12   ` Prashant Malani
2021-01-29  6:14 ` [PATCH 5/6] platform/chrome: cros_ec_typec: Set Partner " Benson Leung
2021-02-01 12:52   ` Heikki Krogerus
2021-02-01 14:33   ` Enric Balletbo i Serra
2021-02-01 18:13   ` Prashant Malani
2021-01-29  6:14 ` [PATCH 6/6] platform/chrome: cros_ec_typec: Set opmode to PD on SOP connected Benson Leung
2021-02-01 12:55   ` Heikki Krogerus
2021-02-01 14:33   ` Enric Balletbo i Serra
2021-02-01 18:15   ` Prashant Malani
2021-02-01 14:32 ` [PATCH 0/6] usb: typec: and platform/chrome: Add PD revision numbers Greg KH
2021-02-02  7:04   ` Benson Leung
2021-02-02  7:32     ` Greg KH
2021-02-01 14:37 ` Enric Balletbo i Serra
2021-02-01 14:43   ` Enric Balletbo i Serra

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=20210129061406.2680146-5-bleung@chromium.org \
    --to=bleung@chromium.org \
    --cc=bleung@google.com \
    --cc=enric.balletbo@collabora.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=groeck@chromium.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=pmalani@chromium.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.