From: liangshengjun <liangshengjun@hisilicon.com> To: Felipe Balbi <balbi@kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Paul Elder <paul.elder@ideasonboard.com>, "linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org> Cc: Jiangheng <jiangheng@hisilicon.com>, Caizhiyong <caizhiyong@hisilicon.com> Subject: [PATCH] usb: gadget: function: f_uac1 add interface assoc desc Date: Mon, 24 Dec 2018 02:35:16 +0000 [thread overview] Message-ID: <84923CA334DF85428B9ADCEC0F3CE864055B6976@dggemm510-mbs.china.huawei.com> (raw) Add f_uac1 interface association descriptor, make f_uac1 link other function(like f_uvc) is possible. Signed-off-by: Liang Shengjun <liangshengjun@hisilicon.com> --- drivers/usb/gadget/function/f_uac1.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/usb/gadget/function/f_uac1.c b/drivers/usb/gadget/function/f_uac1.c index 2746a92..28c1a78 100644 --- a/drivers/usb/gadget/function/f_uac1.c +++ b/drivers/usb/gadget/function/f_uac1.c @@ -48,6 +48,16 @@ static inline struct f_uac1 *func_to_uac1(struct usb_function *f) /* Number of streaming interfaces */ #define F_AUDIO_NUM_INTERFACES 2 +static struct usb_interface_assoc_descriptor uac_iad = { + .bLength = sizeof(uac_iad), + .bDescriptorType = USB_DT_INTERFACE_ASSOCIATION, + .bFirstInterface = 0, + .bInterfaceCount = 3, + .bFunctionClass = USB_CLASS_AUDIO, + .bFunctionSubClass = 0, + .bFunctionProtocol = UAC_VERSION_1, +}; + /* B.3.1 Standard AC Interface Descriptor */ static struct usb_interface_descriptor ac_interface_desc = { .bLength = USB_DT_INTERFACE_SIZE, @@ -247,6 +257,7 @@ static struct uac_iso_endpoint_descriptor as_iso_in_desc = { }; static struct usb_descriptor_header *f_audio_desc[] = { + (struct usb_descriptor_header *)&uac_iad, (struct usb_descriptor_header *)&ac_interface_desc, (struct usb_descriptor_header *)&ac_header_desc, @@ -523,6 +534,7 @@ static int f_audio_bind(struct usb_configuration *c, struct usb_function *f) us = usb_gstrings_attach(cdev, uac1_strings, ARRAY_SIZE(strings_uac1)); if (IS_ERR(us)) return PTR_ERR(us); + uac_iad.iFunction = us[STR_AC_IF].id; ac_interface_desc.iInterface = us[STR_AC_IF].id; usb_out_it_desc.iTerminal = us[STR_USB_OUT_IT].id; usb_out_it_desc.iChannelNames = us[STR_USB_OUT_IT_CH_NAMES].id; @@ -559,6 +571,7 @@ static int f_audio_bind(struct usb_configuration *c, struct usb_function *f) status = usb_interface_id(c, f); if (status < 0) goto fail; + uac_iad.bFirstInterface = status; ac_interface_desc.bInterfaceNumber = status; uac1->ac_intf = status; uac1->ac_alt = 0; -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: liangshengjun <liangshengjun@hisilicon.com> To: Felipe Balbi <balbi@kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Paul Elder <paul.elder@ideasonboard.com>, "linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org> Cc: Jiangheng <jiangheng@hisilicon.com>, Caizhiyong <caizhiyong@hisilicon.com> Subject: usb: gadget: function: f_uac1 add interface assoc desc Date: Mon, 24 Dec 2018 02:35:16 +0000 [thread overview] Message-ID: <84923CA334DF85428B9ADCEC0F3CE864055B6976@dggemm510-mbs.china.huawei.com> (raw) Add f_uac1 interface association descriptor, make f_uac1 link other function(like f_uvc) is possible. Signed-off-by: Liang Shengjun <liangshengjun@hisilicon.com> --- drivers/usb/gadget/function/f_uac1.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) static struct usb_descriptor_header *f_audio_desc[] = { + (struct usb_descriptor_header *)&uac_iad, (struct usb_descriptor_header *)&ac_interface_desc, (struct usb_descriptor_header *)&ac_header_desc, @@ -523,6 +534,7 @@ static int f_audio_bind(struct usb_configuration *c, struct usb_function *f) us = usb_gstrings_attach(cdev, uac1_strings, ARRAY_SIZE(strings_uac1)); if (IS_ERR(us)) return PTR_ERR(us); + uac_iad.iFunction = us[STR_AC_IF].id; ac_interface_desc.iInterface = us[STR_AC_IF].id; usb_out_it_desc.iTerminal = us[STR_USB_OUT_IT].id; usb_out_it_desc.iChannelNames = us[STR_USB_OUT_IT_CH_NAMES].id; @@ -559,6 +571,7 @@ static int f_audio_bind(struct usb_configuration *c, struct usb_function *f) status = usb_interface_id(c, f); if (status < 0) goto fail; + uac_iad.bFirstInterface = status; ac_interface_desc.bInterfaceNumber = status; uac1->ac_intf = status; uac1->ac_alt = 0; -- 2.7.4 diff --git a/drivers/usb/gadget/function/f_uac1.c b/drivers/usb/gadget/function/f_uac1.c index 2746a92..28c1a78 100644 --- a/drivers/usb/gadget/function/f_uac1.c +++ b/drivers/usb/gadget/function/f_uac1.c @@ -48,6 +48,16 @@ static inline struct f_uac1 *func_to_uac1(struct usb_function *f) /* Number of streaming interfaces */ #define F_AUDIO_NUM_INTERFACES 2 +static struct usb_interface_assoc_descriptor uac_iad = { + .bLength = sizeof(uac_iad), + .bDescriptorType = USB_DT_INTERFACE_ASSOCIATION, + .bFirstInterface = 0, + .bInterfaceCount = 3, + .bFunctionClass = USB_CLASS_AUDIO, + .bFunctionSubClass = 0, + .bFunctionProtocol = UAC_VERSION_1, +}; + /* B.3.1 Standard AC Interface Descriptor */ static struct usb_interface_descriptor ac_interface_desc = { .bLength = USB_DT_INTERFACE_SIZE, @@ -247,6 +257,7 @@ static struct uac_iso_endpoint_descriptor as_iso_in_desc = { };
next reply other threads:[~2018-12-24 2:35 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-12-24 2:35 liangshengjun [this message] 2018-12-24 2:35 ` usb: gadget: function: f_uac1 add interface assoc desc liangshengjun 2019-02-06 6:51 ` [PATCH] " Felipe Balbi 2019-02-06 6:51 ` Felipe Balbi -- strict thread matches above, loose matches on Subject: below -- 2018-12-19 11:02 [PATCH] " liangshengjun
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=84923CA334DF85428B9ADCEC0F3CE864055B6976@dggemm510-mbs.china.huawei.com \ --to=liangshengjun@hisilicon.com \ --cc=balbi@kernel.org \ --cc=caizhiyong@hisilicon.com \ --cc=gregkh@linuxfoundation.org \ --cc=jiangheng@hisilicon.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-usb@vger.kernel.org \ --cc=paul.elder@ideasonboard.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.