• Douglas Gilbert's avatar
    USB-PD tcpm: bad warning+size, PPS adapters · c215e48e
    Douglas Gilbert authored
    Augmented Power Delivery Objects (A)PDO_s are used by USB-C
    PD power adapters to advertize the voltages and currents
    they support. There can be up to 7 PDO_s but before PPS
    (programmable power supply) there were seldom more than 4
    or 5. Recently Samsung released an optional PPS 45 Watt power
    adapter (EP-TA485) that has 7 PDO_s. It is for the Galaxy 10+
    tablet and charges it quicker than the adapter supplied at
    purchase. The EP-TA485 causes an overzealous WARN_ON to soil
    the log plus it miscalculates the number of bytes to read.
    
    So this bug has been there for some time but goes
    undetected for the majority of USB-C PD power adapters on
    the market today that have 6 or less PDO_s. That may soon
    change as more USB-C PD adapters with PPS come to market.
    
    Tested on a EP-TA485 and an older Lenovo PN: SA10M13950
    USB-C 65 Watt adapter (without PPS and has 4 PDO_s) plus
    several other PD power adapters.
    Signed-off-by: default avatarDouglas Gilbert <dgilbert@interlog.com>
    Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20191230033544.1809-1-dgilbert@interlog.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    c215e48e
tcpci.c 14.7 KB