1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef __USBAUDIO_POWER_H 3*4882a593Smuzhiyun #define __USBAUDIO_POWER_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun struct snd_usb_power_domain { 6*4882a593Smuzhiyun int pd_id; /* UAC3 Power Domain ID */ 7*4882a593Smuzhiyun int pd_d1d0_rec; /* D1 to D0 recovery time */ 8*4882a593Smuzhiyun int pd_d2d0_rec; /* D2 to D0 recovery time */ 9*4882a593Smuzhiyun }; 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun enum { 12*4882a593Smuzhiyun UAC3_PD_STATE_D0, 13*4882a593Smuzhiyun UAC3_PD_STATE_D1, 14*4882a593Smuzhiyun UAC3_PD_STATE_D2, 15*4882a593Smuzhiyun }; 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun int snd_usb_power_domain_set(struct snd_usb_audio *chip, 18*4882a593Smuzhiyun struct snd_usb_power_domain *pd, 19*4882a593Smuzhiyun unsigned char state); 20*4882a593Smuzhiyun struct snd_usb_power_domain * 21*4882a593Smuzhiyun snd_usb_find_power_domain(struct usb_host_interface *ctrl_iface, 22*4882a593Smuzhiyun unsigned char id); 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun #ifdef CONFIG_PM 25*4882a593Smuzhiyun int snd_usb_autoresume(struct snd_usb_audio *chip); 26*4882a593Smuzhiyun void snd_usb_autosuspend(struct snd_usb_audio *chip); 27*4882a593Smuzhiyun #else snd_usb_autoresume(struct snd_usb_audio * chip)28*4882a593Smuzhiyunstatic inline int snd_usb_autoresume(struct snd_usb_audio *chip) 29*4882a593Smuzhiyun { 30*4882a593Smuzhiyun return 0; 31*4882a593Smuzhiyun } snd_usb_autosuspend(struct snd_usb_audio * chip)32*4882a593Smuzhiyunstatic inline void snd_usb_autosuspend(struct snd_usb_audio *chip) 33*4882a593Smuzhiyun { 34*4882a593Smuzhiyun } 35*4882a593Smuzhiyun #endif 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun #endif /* __USBAUDIO_POWER_H */ 38