From fdd1a1ae55b15b3ed0f9d026b995fd00bef68a0c Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C5=A0erif=20Rami?= Date: Thu, 14 Aug 2025 19:22:21 +0200 Subject: [PATCH] ALSA: usb-audio: us144mkii: Add deep sleep command MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Add a deep sleep vendor command to be sent during suspend, allowing the device to enter a lower power state. Signed-off-by: Å erif Rami Signed-off-by: Takashi Iwai Link: https://patch.msgid.link/20250814172222.9448-7-ramiserifpersia@gmail.com --- sound/usb/usx2y/us144mkii.c | 7 +++++++ sound/usb/usx2y/us144mkii.h | 1 + 2 files changed, 8 insertions(+) diff --git a/sound/usb/usx2y/us144mkii.c b/sound/usb/usx2y/us144mkii.c index 55d6e002a310..da53c1908c4a 100644 --- a/sound/usb/usx2y/us144mkii.c +++ b/sound/usb/usx2y/us144mkii.c @@ -322,6 +322,13 @@ static int tascam_suspend(struct usb_interface *intf, pm_message_t message) usb_kill_anchored_urbs(&tascam->midi_in_anchor); usb_kill_anchored_urbs(&tascam->midi_out_anchor); + dev_info(&intf->dev, "sending deep sleep command\n"); + int err = usb_control_msg(tascam->dev, usb_sndctrlpipe(tascam->dev, 0), + VENDOR_REQ_DEEP_SLEEP, RT_H2D_VENDOR_DEV, + 0x0000, 0x0000, NULL, 0, USB_CTRL_TIMEOUT_MS); + if (err < 0) + dev_err(&intf->dev, "deep sleep command failed: %d\n", err); + return 0; } diff --git a/sound/usb/usx2y/us144mkii.h b/sound/usb/usx2y/us144mkii.h index c740a0b5a0ea..ecc4c2fed9e6 100644 --- a/sound/usb/usx2y/us144mkii.h +++ b/sound/usb/usx2y/us144mkii.h @@ -46,6 +46,7 @@ enum uac_control_selector { enum tascam_vendor_request { VENDOR_REQ_REGISTER_WRITE = 0x41, + VENDOR_REQ_DEEP_SLEEP = 0x44, VENDOR_REQ_MODE_CONTROL = 0x49, }; -- 2.51.0