~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/sound/usb/power.c

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /sound/usb/power.c (Version linux-6.12-rc7) and /sound/usb/power.c (Version linux-5.10.228)


** Warning: Cannot open xref database.

  1 // SPDX-License-Identifier: GPL-2.0                 1 
  2 /*                                                
  3  *   UAC3 Power Domain state management functi    
  4  */                                               
  5                                                   
  6 #include <linux/slab.h>                           
  7 #include <linux/usb.h>                            
  8 #include <linux/usb/audio.h>                      
  9 #include <linux/usb/audio-v2.h>                   
 10 #include <linux/usb/audio-v3.h>                   
 11                                                   
 12 #include "usbaudio.h"                             
 13 #include "helper.h"                               
 14 #include "power.h"                                
 15                                                   
 16 struct snd_usb_power_domain *                     
 17 snd_usb_find_power_domain(struct usb_host_inte    
 18                           unsigned char id)       
 19 {                                                 
 20         struct snd_usb_power_domain *pd;          
 21         void *p;                                  
 22                                                   
 23         pd = kzalloc(sizeof(*pd), GFP_KERNEL);    
 24         if (!pd)                                  
 25                 return NULL;                      
 26                                                   
 27         p = NULL;                                 
 28         while ((p = snd_usb_find_csint_desc(ct    
 29                                             ct    
 30                                             p,    
 31                 struct uac3_power_domain_descr    
 32                 int i;                            
 33                                                   
 34                 if (!snd_usb_validate_audio_de    
 35                         continue;                 
 36                 for (i = 0; i < pd_desc->bNrEn    
 37                         if (pd_desc->baEntityI    
 38                                 pd->pd_id = pd    
 39                                 pd->pd_d1d0_re    
 40                                         le16_t    
 41                                 pd->pd_d2d0_re    
 42                                         le16_t    
 43                                 pd->ctrl_iface    
 44                                 return pd;        
 45                         }                         
 46                 }                                 
 47         }                                         
 48                                                   
 49         kfree(pd);                                
 50         return NULL;                              
 51 }                                                 
 52                                                   
 53 int snd_usb_power_domain_set(struct snd_usb_au    
 54                              struct snd_usb_po    
 55                              unsigned char sta    
 56 {                                                 
 57         struct usb_device *dev = chip->dev;       
 58         unsigned char current_state;              
 59         int err, idx;                             
 60                                                   
 61         idx = snd_usb_ctrl_intf(pd->ctrl_iface    
 62                                                   
 63         err = snd_usb_ctl_msg(chip->dev, usb_r    
 64                               UAC2_CS_CUR,        
 65                               USB_RECIP_INTERF    
 66                               UAC3_AC_POWER_DO    
 67                               &current_state,     
 68         if (err < 0) {                            
 69                 dev_err(&dev->dev, "Can't get     
 70                         pd->pd_id);               
 71                 return err;                       
 72         }                                         
 73                                                   
 74         if (current_state == state) {             
 75                 dev_dbg(&dev->dev, "UAC3 power    
 76                         pd->pd_id, state);        
 77                 return 0;                         
 78         }                                         
 79                                                   
 80         err = snd_usb_ctl_msg(chip->dev, usb_s    
 81                               USB_RECIP_INTERF    
 82                               UAC3_AC_POWER_DO    
 83                               &state, sizeof(s    
 84         if (err < 0) {                            
 85                 dev_err(&dev->dev, "Can't set     
 86                         state, pd->pd_id);        
 87                 return err;                       
 88         }                                         
 89                                                   
 90         if (state == UAC3_PD_STATE_D0) {          
 91                 switch (current_state) {          
 92                 case UAC3_PD_STATE_D2:            
 93                         udelay(pd->pd_d2d0_rec    
 94                         break;                    
 95                 case UAC3_PD_STATE_D1:            
 96                         udelay(pd->pd_d1d0_rec    
 97                         break;                    
 98                 default:                          
 99                         return -EINVAL;           
100                 }                                 
101         }                                         
102                                                   
103         dev_dbg(&dev->dev, "UAC3 power domain     
104                 pd->pd_id, state);                
105                                                   
106         return 0;                                 
107 }                                                 
108                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php