• Hans de Goede's avatar
    Revert "typec: tcpm: Only request matching pdos" · 6f566af3
    Hans de Goede authored
    Commit 57e6f0d7 ("typec: tcpm: Only request matching pdos") is causing
    a regression, before this commit e.g. the GPD win and GPD pocket devices
    were charging at 9V 3A with a PD charger, now they are instead slowly
    discharging  at 5V 0.4A, as this commit causes the ports max_snk_mv/ma/mw
    settings to be completely ignored.
    
    Arguably the way to fix this would be to add a PDO_VAR() describing the
    voltage range to the snk_caps of boards which can handle any voltage in
    their range, but the "typec: tcpm: Only request matching pdos" commit
    looks at the type of PDO advertised by the source/charger and if that
    is fixed (as it typically is) only compairs against PDO_FIXED entries
    in the snk_caps so supporting a range of voltage would require adding a
    PDO_FIXED entry for *every possible* voltage to snk_caps.
    
    AFAICT there is no reason why a fixed source_cap cannot be matched against
    a variable snk_cap, so at a minimum the commit should be rewritten to
    support that.
    
    For now lets revert the "typec: tcpm: Only request matching pdos" commit,
    fixing the regression.
    
    Fixes: 57e6f0d7 ("typec: tcpm: Only request matching pdos")
    Cc: Badhri Jagan Sridharan <badhri@google.com>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Acked-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
    Acked-by: default avatarAdam Thomson <Adam.Thomson.Opensource@diasemi.com>
    Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    6f566af3
tcpm.c 92.3 KB