On Wed, Jan 24, 2024 at 11:18 AM Abhishek Pandit-Subedi <abhishekpandit@xxxxxxxxxxxx> wrote: > > On Wed, Jan 24, 2024 at 10:49 AM Prashant Malani <pmalani@xxxxxxxxxxxx> wrote: > > > > Hi Abhishek, > > > > On Tue, Jan 23, 2024 at 2:30 PM Abhishek Pandit-Subedi > > <abhishekpandit@xxxxxxxxxx> wrote: > > > > > > From: Abhishek Pandit-Subedi <abhishekpandit@xxxxxxxxxxxx> > > > > > > PD major revision for the port partner is described in > > > GET_CONNECTOR_CAPABILITY and is only valid on UCSI 2.0 and newer. Update > > > the pd_revision on the partner if the UCSI version is 2.0 or newer. > > > > > > Signed-off-by: Abhishek Pandit-Subedi <abhishekpandit@xxxxxxxxxxxx> > > > --- > > > $ cat /sys/class/typec/port2-partner/usb_power_delivery_revision > > > 3.0 > > > > > > drivers/usb/typec/ucsi/ucsi.c | 25 +++++++++++++++++++++++++ > > > drivers/usb/typec/ucsi/ucsi.h | 3 +++ > > > 2 files changed, 28 insertions(+) > > > > > > diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c > > > index 4edf785d203b..8e0a512853ba 100644 > > > --- a/drivers/usb/typec/ucsi/ucsi.c > > > +++ b/drivers/usb/typec/ucsi/ucsi.c > > > @@ -782,6 +782,8 @@ static int ucsi_register_partner(struct ucsi_connector *con) > > > } > > > > > > desc.usb_pd = pwr_opmode == UCSI_CONSTAT_PWR_OPMODE_PD; > > > + desc.pd_revision = > > > + UCSI_CONCAP_FLAG_PARTNER_PD_MAJOR_REV_AS_BCD(con->cap.flags); > > > > > > partner = typec_register_partner(con->port, &desc); > > > if (IS_ERR(partner)) { > > > @@ -856,6 +858,28 @@ static void ucsi_partner_change(struct ucsi_connector *con) > > > con->num, u_role); > > > } > > > > > > +static int ucsi_check_connector_capability(struct ucsi_connector *con) > > > +{ > > > + u64 command; > > > + int ret; > > > + > > > + if (!con->partner && !IS_MIN_VERSION_2_0(con->ucsi)) > > > > (Mentioned side-band but reproducing here for consistency) > > This macro is unnecessary. It's just doing a comparison, which can be inlined > > without any perceptible change in readability (actually, I'd argue adding the ! > > to an english idiom makes things *less* readable): > > I prefer the macro because it makes it easier to search where version > checks are being done. I don't see how searching for "IS_MIN_VERSION_2_0" is easier than just searching for "UCSI_VERSION_2_0". I didn't quite understand what you meant by > it keeps the `<` vs `<=` consistent. Perhaps I'm missing something... (are these comparisons being used elsewhere/in some other fashion?). In any case, I don't want to bike-shed so I'll defer to the maintainer's call on this. BR, -Prashant