usb: typec: ucsi: acpi: Always decode connector change information
authorBenjamin Berg <bberg@redhat.com>
Fri, 9 Oct 2020 14:40:46 +0000 (16:40 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Nov 2020 10:47:42 +0000 (11:47 +0100)
Normal commands may be reporting that a connector has changed. Always
call the usci_connector_change handler and let it take care of
scheduling the work when needed.
Doing this makes the ACPI code path identical to the CCG one.

Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Benjamin Berg <bberg@redhat.com>
Link: https://lore.kernel.org/r/20201009144047.505957-2-benjamin@sipsolutions.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/ucsi/ucsi_acpi.c

index fbfe8f5..0497643 100644 (file)
@@ -103,11 +103,12 @@ static void ucsi_acpi_notify(acpi_handle handle, u32 event, void *data)
        if (ret)
                return;
 
+       if (UCSI_CCI_CONNECTOR(cci))
+               ucsi_connector_change(ua->ucsi, UCSI_CCI_CONNECTOR(cci));
+
        if (test_bit(COMMAND_PENDING, &ua->flags) &&
            cci & (UCSI_CCI_ACK_COMPLETE | UCSI_CCI_COMMAND_COMPLETE))
                complete(&ua->complete);
-       else if (UCSI_CCI_CONNECTOR(cci))
-               ucsi_connector_change(ua->ucsi, UCSI_CCI_CONNECTOR(cci));
 }
 
 static int ucsi_acpi_probe(struct platform_device *pdev)