]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Revert "usb: typec: ucsi: Add support for message out data structure"
authorJohan Hovold <johan@kernel.org>
Mon, 22 Dec 2025 15:22:03 +0000 (16:22 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 23 Dec 2025 14:59:01 +0000 (15:59 +0100)
This reverts commit db0028637cc832add6d87564fcc2ebb12781b046.

The new buffer management code that this feature relies on is broken so
revert for now.

As for the in buffer, nothing prevents the out message size and buffer
from being modified while the message is being processed due to lack of
serialisation.

Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://patch.msgid.link/20251222152204.2846-4-johan@kernel.org
drivers/usb/typec/ucsi/ucsi.c
drivers/usb/typec/ucsi/ucsi.h
drivers/usb/typec/ucsi/ucsi_acpi.c

index 9b3df776137a17e569588d41ee437a778342146e..8195407131501c1b2cdc087ed8e00f1cb1eae86d 100644 (file)
@@ -67,20 +67,6 @@ int ucsi_sync_control_common(struct ucsi *ucsi, u64 command, u32 *cci)
 
        reinit_completion(&ucsi->complete);
 
-       if (ucsi->message_out_size > 0) {
-               if (!ucsi->ops->write_message_out) {
-                       ucsi->message_out_size = 0;
-                       ret = -EOPNOTSUPP;
-                       goto out_clear_bit;
-               }
-
-               ret = ucsi->ops->write_message_out(ucsi, ucsi->message_out,
-                                                  ucsi->message_out_size);
-               ucsi->message_out_size = 0;
-               if (ret)
-                       goto out_clear_bit;
-       }
-
        ret = ucsi->ops->async_control(ucsi, command);
        if (ret)
                goto out_clear_bit;
index d01b796a8d23a13867b8186ca4e4885bdee86845..479bf1f69c72b94ba0e34e624c2b0257cf4d9225 100644 (file)
@@ -69,7 +69,6 @@ struct dentry;
  * @read_cci: Read CCI register
  * @poll_cci: Read CCI register while polling with notifications disabled
  * @read_message_in: Read message data from UCSI
- * @write_message_out: Write message data to UCSI
  * @sync_control: Blocking control operation
  * @async_control: Non-blocking control operation
  * @update_altmodes: Squashes duplicate DP altmodes
@@ -85,7 +84,6 @@ struct ucsi_operations {
        int (*read_cci)(struct ucsi *ucsi, u32 *cci);
        int (*poll_cci)(struct ucsi *ucsi, u32 *cci);
        int (*read_message_in)(struct ucsi *ucsi, void *val, size_t val_len);
-       int (*write_message_out)(struct ucsi *ucsi, void *data, size_t data_len);
        int (*sync_control)(struct ucsi *ucsi, u64 command, u32 *cci);
        int (*async_control)(struct ucsi *ucsi, u64 command);
        bool (*update_altmodes)(struct ucsi *ucsi, u8 recipient,
index f9beeb835238280c3ed26b817e012daad252bbeb..f1d1f6917b0984679af9c8bac0f0660d54d8c0be 100644 (file)
@@ -86,21 +86,6 @@ static int ucsi_acpi_read_message_in(struct ucsi *ucsi, void *val, size_t val_le
        return 0;
 }
 
-static int ucsi_acpi_write_message_out(struct ucsi *ucsi, void *data, size_t data_len)
-{
-       struct ucsi_acpi *ua = ucsi_get_drvdata(ucsi);
-
-       if (!data || !data_len)
-               return -EINVAL;
-
-       if (ucsi->version <= UCSI_VERSION_1_2)
-               memcpy(ua->base + UCSI_MESSAGE_OUT, data, data_len);
-       else
-               memcpy(ua->base + UCSIv2_MESSAGE_OUT, data, data_len);
-
-       return 0;
-}
-
 static int ucsi_acpi_async_control(struct ucsi *ucsi, u64 command)
 {
        struct ucsi_acpi *ua = ucsi_get_drvdata(ucsi);
@@ -116,7 +101,6 @@ static const struct ucsi_operations ucsi_acpi_ops = {
        .read_cci = ucsi_acpi_read_cci,
        .poll_cci = ucsi_acpi_poll_cci,
        .read_message_in = ucsi_acpi_read_message_in,
-       .write_message_out = ucsi_acpi_write_message_out,
        .sync_control = ucsi_sync_control_common,
        .async_control = ucsi_acpi_async_control
 };