usb suspend deep sleep

This commit is contained in:
Šerif Rami 2025-08-10 10:35:41 +02:00
parent f50b96f459
commit 9a9a957047
3 changed files with 9 additions and 0 deletions

View File

@ -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;
}

View File

@ -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,
};

View File

@ -118,6 +118,7 @@ int us144mkii_configure_device_for_rate(struct tascam_card *tascam, int rate)
u16 rate_vendor_wValue;
int err = 0;
const u8 *current_payload_src;
u8 *rate_payload_buf __free(kfree);
static const u8 payload_44100[] = { 0x44, 0xac, 0x00 };