usb: typec: intel_pmc_mux: Definitions for response status bits
authorHeikki Krogerus <heikki.krogerus@linux.intel.com>
Wed, 1 Jul 2020 11:56:17 +0000 (14:56 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Jul 2020 12:06:25 +0000 (14:06 +0200)
Adding definitions for the two status bits that we have in
the command response data structure.

Also, from now on only considering the second status bit,
which tells was the failure fatal or not, if the first bit
is set. If the first bit is not set, then the command was
successful, and we need to ignore the second bit.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20200701115618.22482-4-heikki.krogerus@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/mux/intel_pmc_mux.c

index 70ddc9d6d49e4636dbeadc41604908fe53f5d8c6..31fa62f968fb2e53d64cb4fd11f3cc517a804dff 100644 (file)
 
 #define PMC_USBC_CMD           0xa7
 
+/* Response status bits */
+#define PMC_USB_RESP_STATUS_FAILURE    BIT(0)
+#define PMC_USB_RESP_STATUS_FATAL      BIT(1)
+
 /* "Usage" OOB Message field values */
 enum {
        PMC_USB_CONNECT,
@@ -130,8 +134,8 @@ static int pmc_usb_command(struct pmc_usb_port *port, u8 *msg, u32 len)
         */
        intel_scu_ipc_dev_command(port->pmc->ipc, PMC_USBC_CMD, 0, msg, len,
                                  response, sizeof(response));
-       if (response[2]) {
-               if (response[2] & BIT(1))
+       if (response[2] & PMC_USB_RESP_STATUS_FAILURE) {
+               if (response[2] & PMC_USB_RESP_STATUS_FATAL)
                        return -EIO;
                return -EBUSY;
        }