1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 288a8516aSOliver Neukum #ifndef __USBAUDIO_POWER_H 388a8516aSOliver Neukum #define __USBAUDIO_POWER_H 488a8516aSOliver Neukum 5*11785ef5SJorge Sanjuan struct snd_usb_power_domain { 6*11785ef5SJorge Sanjuan int pd_id; /* UAC3 Power Domain ID */ 7*11785ef5SJorge Sanjuan int pd_d1d0_rec; /* D1 to D0 recovery time */ 8*11785ef5SJorge Sanjuan int pd_d2d0_rec; /* D2 to D0 recovery time */ 9*11785ef5SJorge Sanjuan }; 10*11785ef5SJorge Sanjuan 11*11785ef5SJorge Sanjuan enum { 12*11785ef5SJorge Sanjuan UAC3_PD_STATE_D0, 13*11785ef5SJorge Sanjuan UAC3_PD_STATE_D1, 14*11785ef5SJorge Sanjuan UAC3_PD_STATE_D2, 15*11785ef5SJorge Sanjuan }; 16*11785ef5SJorge Sanjuan 17*11785ef5SJorge Sanjuan int snd_usb_power_domain_set(struct snd_usb_audio *chip, 18*11785ef5SJorge Sanjuan struct snd_usb_power_domain *pd, 19*11785ef5SJorge Sanjuan unsigned char state); 20*11785ef5SJorge Sanjuan struct snd_usb_power_domain * 21*11785ef5SJorge Sanjuan snd_usb_find_power_domain(struct usb_host_interface *ctrl_iface, 22*11785ef5SJorge Sanjuan unsigned char id); 23*11785ef5SJorge Sanjuan 2488a8516aSOliver Neukum int snd_usb_autoresume(struct snd_usb_audio *chip); 2588a8516aSOliver Neukum void snd_usb_autosuspend(struct snd_usb_audio *chip); 2688a8516aSOliver Neukum 2788a8516aSOliver Neukum #endif /* __USBAUDIO_POWER_H */ 28