On Wed, Sep 12, 2018 at 01:03:57AM +0530, saranya.gopal@xxxxxxxxx wrote: > From: Saranya Gopal <saranya.gopal@xxxxxxxxx> Any reason you forgot to cc: the usb maintainer? :) > > USB audio class 3.0 specification introduced many significant > changes like > - new power domains, support for LPM/L1 > - new cluster descriptor > - new high capability and class-specific string descriptors > - BADD profiles > - ... and many other things (check spec from link below: > http://www.usb.org/developers/docs/devclass_docs/USB_Audio_v3.0.zip) > > Now that UAC3 is supported in linux, choose UAC3 > configuration for audio if the device supports it. > Selecting this configuration will enable the system to > save power by leveraging the new power domains and LPM L1 > capability and also support new codec types and data formats > for consumer audio applications. > > Signed-off-by: Saranya Gopal <saranya.gopal@xxxxxxxxx> > Reviewed-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> > --- > Changes from V1: Deleted nested if check for is_uac3_config > > drivers/usb/core/generic.c | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/drivers/usb/core/generic.c b/drivers/usb/core/generic.c > index bc8242b..df38d5a 100644 > --- a/drivers/usb/core/generic.c > +++ b/drivers/usb/core/generic.c > @@ -21,6 +21,7 @@ > > #include <linux/usb.h> > #include <linux/usb/hcd.h> > +#include <uapi/linux/usb/audio.h> > #include "usb.h" > > static inline const char *plural(int n) > @@ -42,6 +43,16 @@ static int is_activesync(struct usb_interface_descriptor *desc) > && desc->bInterfaceProtocol == 1; > } > > +static int is_audio(struct usb_interface_descriptor *desc) bool? > +{ > + return desc->bInterfaceClass == USB_CLASS_AUDIO; > +} > + > +static int is_uac3_config(struct usb_interface_descriptor *desc) bool? thanks, greg k-h