usb: gadget: f_uac2: fix endianness of 'struct cntrl_*_lay3'
The list [1] of commits doing endianness fixes in USB subsystem is long due to below quote from USB spec Revision 2.0 from April 27, 2000: ------------ 8.1 Byte/Bit Ordering Multiple byte fields in standard descriptors, requests, and responses are interpreted as and moved over the bus in little-endian order, i.e. LSB to MSB. ------------ This commit belongs to the same family. [1] Example of endianness fixes in USB subsystem: commit14e1d56cbe
("usb: gadget: f_uac2: endianness fixes.") commit42370b8211
("usb: gadget: f_uac1: endianness fixes.") commit63afd5cc78
("USB: chaoskey: fix Alea quirk on big-endian hosts") commit74098c4ac7
("usb: gadget: acm: fix endianness in notifications") commitcdd7928df0
("ACM gadget: fix endianness in notifications") commit323ece54e0
("cdc-wdm: fix endianness bug in debug statements") commite102609f10
("usb: gadget: uvc: Fix endianness mismatches") list goes on Fixes:132fcb4608
("usb: gadget: Add Audio Class 2.0 Driver") Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com> Reviewed-by: Ruslan Bilovol <ruslan.bilovol@gmail.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
This commit is contained in:
parent
1e111e8852
commit
eec24f2a0d
@ -438,14 +438,14 @@ static struct usb_descriptor_header *hs_audio_desc[] = {
|
||||
};
|
||||
|
||||
struct cntrl_cur_lay3 {
|
||||
__u32 dCUR;
|
||||
__le32 dCUR;
|
||||
};
|
||||
|
||||
struct cntrl_range_lay3 {
|
||||
__u16 wNumSubRanges;
|
||||
__u32 dMIN;
|
||||
__u32 dMAX;
|
||||
__u32 dRES;
|
||||
__le16 wNumSubRanges;
|
||||
__le32 dMIN;
|
||||
__le32 dMAX;
|
||||
__le32 dRES;
|
||||
} __packed;
|
||||
|
||||
static void set_ep_max_packet_size(const struct f_uac2_opts *uac2_opts,
|
||||
@ -703,9 +703,9 @@ in_rq_cur(struct usb_function *fn, const struct usb_ctrlrequest *cr)
|
||||
memset(&c, 0, sizeof(struct cntrl_cur_lay3));
|
||||
|
||||
if (entity_id == USB_IN_CLK_ID)
|
||||
c.dCUR = p_srate;
|
||||
c.dCUR = cpu_to_le32(p_srate);
|
||||
else if (entity_id == USB_OUT_CLK_ID)
|
||||
c.dCUR = c_srate;
|
||||
c.dCUR = cpu_to_le32(c_srate);
|
||||
|
||||
value = min_t(unsigned, w_length, sizeof c);
|
||||
memcpy(req->buf, &c, value);
|
||||
@ -742,15 +742,15 @@ in_rq_range(struct usb_function *fn, const struct usb_ctrlrequest *cr)
|
||||
|
||||
if (control_selector == UAC2_CS_CONTROL_SAM_FREQ) {
|
||||
if (entity_id == USB_IN_CLK_ID)
|
||||
r.dMIN = p_srate;
|
||||
r.dMIN = cpu_to_le32(p_srate);
|
||||
else if (entity_id == USB_OUT_CLK_ID)
|
||||
r.dMIN = c_srate;
|
||||
r.dMIN = cpu_to_le32(c_srate);
|
||||
else
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
r.dMAX = r.dMIN;
|
||||
r.dRES = 0;
|
||||
r.wNumSubRanges = 1;
|
||||
r.wNumSubRanges = cpu_to_le16(1);
|
||||
|
||||
value = min_t(unsigned, w_length, sizeof r);
|
||||
memcpy(req->buf, &r, value);
|
||||
|
Loading…
Reference in New Issue
Block a user