On Fri, Sep 21, 2018 at 04:04:11PM +0100, Adam Thomson wrote: > Current code mistakenly checks against max current to determine > order but this should be max voltage. This commit fixes the issue > so order is correctly determined, thus avoiding failure based on > a higher voltage PPS APDO having a lower maximum current output, > which is actually valid. > > Fixes: 2eadc33f40d4 ("typec: tcpm: Add core support for sink side PPS") > Cc: <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@xxxxxxxxxxx> Makes sense. Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx> > --- > Code based on usb-testing branch (ae8a2ca8a2215c7e31e6d874f7303801bb15fbb) > > drivers/usb/typec/tcpm/tcpm.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c > index 4f1f421..c11b3be 100644 > --- a/drivers/usb/typec/tcpm/tcpm.c > +++ b/drivers/usb/typec/tcpm/tcpm.c > @@ -1430,8 +1430,8 @@ static enum pdo_err tcpm_caps_err(struct tcpm_port *port, const u32 *pdo, > if (pdo_apdo_type(pdo[i]) != APDO_TYPE_PPS) > break; > > - if (pdo_pps_apdo_max_current(pdo[i]) < > - pdo_pps_apdo_max_current(pdo[i - 1])) > + if (pdo_pps_apdo_max_voltage(pdo[i]) < > + pdo_pps_apdo_max_voltage(pdo[i - 1])) > return PDO_ERR_PPS_APDO_NOT_SORTED; > else if (pdo_pps_apdo_min_voltage(pdo[i]) == > pdo_pps_apdo_min_voltage(pdo[i - 1]) && > -- > 1.9.1 >