Message ID | 20201106184104.939284-2-pmalani@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | platform/chrome: cros_ec_typec: Add cable | expand |
On Fri, Nov 06, 2020 at 10:40:59AM -0800, Prashant Malani wrote: > Change the disc_done flag, which indicates whether PD discovery is > complete, to sop_disc_done instead, since we will process SOP and SOP' > discovery data separately. > > Signed-off-by: Prashant Malani <pmalani@chromium.org> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> > --- > > Changes in v2: > - No changes. > > drivers/platform/chrome/cros_ec_typec.c | 19 +++++++------------ > 1 file changed, 7 insertions(+), 12 deletions(-) > > diff --git a/drivers/platform/chrome/cros_ec_typec.c b/drivers/platform/chrome/cros_ec_typec.c > index ce031a10eb1b..801c3d2c1fbd 100644 > --- a/drivers/platform/chrome/cros_ec_typec.c > +++ b/drivers/platform/chrome/cros_ec_typec.c > @@ -57,8 +57,8 @@ struct cros_typec_port { > /* Port alt modes. */ > struct typec_altmode p_altmode[CROS_EC_ALTMODE_MAX]; > > - /* Flag indicating that PD discovery data parsing is completed. */ > - bool disc_done; > + /* Flag indicating that PD partner discovery data parsing is completed. */ > + bool sop_disc_done; > struct ec_response_typec_discovery *sop_disc; > struct list_head partner_mode_list; > }; > @@ -210,7 +210,7 @@ static void cros_typec_remove_partner(struct cros_typec_data *typec, > typec_unregister_partner(port->partner); > port->partner = NULL; > memset(&port->p_identity, 0, sizeof(port->p_identity)); > - port->disc_done = false; > + port->sop_disc_done = false; > } > > static void cros_unregister_ports(struct cros_typec_data *typec) > @@ -727,18 +727,13 @@ static void cros_typec_handle_status(struct cros_typec_data *typec, int port_num > return; > } > > - if (typec->ports[port_num]->disc_done) > - return; > - > /* Handle any events appropriately. */ > - if (resp.events & PD_STATUS_EVENT_SOP_DISC_DONE) { > + if (resp.events & PD_STATUS_EVENT_SOP_DISC_DONE && !typec->ports[port_num]->sop_disc_done) { > ret = cros_typec_handle_sop_disc(typec, port_num); > - if (ret < 0) { > + if (ret < 0) > dev_err(typec->dev, "Couldn't parse SOP Disc data, port: %d\n", port_num); > - return; > - } > - > - typec->ports[port_num]->disc_done = true; > + else > + typec->ports[port_num]->sop_disc_done = true; > } > } > thanks,
diff --git a/drivers/platform/chrome/cros_ec_typec.c b/drivers/platform/chrome/cros_ec_typec.c index ce031a10eb1b..801c3d2c1fbd 100644 --- a/drivers/platform/chrome/cros_ec_typec.c +++ b/drivers/platform/chrome/cros_ec_typec.c @@ -57,8 +57,8 @@ struct cros_typec_port { /* Port alt modes. */ struct typec_altmode p_altmode[CROS_EC_ALTMODE_MAX]; - /* Flag indicating that PD discovery data parsing is completed. */ - bool disc_done; + /* Flag indicating that PD partner discovery data parsing is completed. */ + bool sop_disc_done; struct ec_response_typec_discovery *sop_disc; struct list_head partner_mode_list; }; @@ -210,7 +210,7 @@ static void cros_typec_remove_partner(struct cros_typec_data *typec, typec_unregister_partner(port->partner); port->partner = NULL; memset(&port->p_identity, 0, sizeof(port->p_identity)); - port->disc_done = false; + port->sop_disc_done = false; } static void cros_unregister_ports(struct cros_typec_data *typec) @@ -727,18 +727,13 @@ static void cros_typec_handle_status(struct cros_typec_data *typec, int port_num return; } - if (typec->ports[port_num]->disc_done) - return; - /* Handle any events appropriately. */ - if (resp.events & PD_STATUS_EVENT_SOP_DISC_DONE) { + if (resp.events & PD_STATUS_EVENT_SOP_DISC_DONE && !typec->ports[port_num]->sop_disc_done) { ret = cros_typec_handle_sop_disc(typec, port_num); - if (ret < 0) { + if (ret < 0) dev_err(typec->dev, "Couldn't parse SOP Disc data, port: %d\n", port_num); - return; - } - - typec->ports[port_num]->disc_done = true; + else + typec->ports[port_num]->sop_disc_done = true; } }
Change the disc_done flag, which indicates whether PD discovery is complete, to sop_disc_done instead, since we will process SOP and SOP' discovery data separately. Signed-off-by: Prashant Malani <pmalani@chromium.org> --- Changes in v2: - No changes. drivers/platform/chrome/cros_ec_typec.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-)