aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Mork <bjorn@mork.no>2012-10-13 19:56:15 +0200
committerBjørn Mork <bjorn@mork.no>2012-10-13 19:56:15 +0200
commit6d2313412030c2d90241bd6960700304e86941d3 (patch)
tree084c11defc55f61a6f0fcb4265ae5403bf779757
parent7656d7818169f567d19503f5413158c370e5bc49 (diff)
usb-mbim: fix USB_CDC_GET_NTB_PARAMETERSusb-mbim
-rw-r--r--hw/usb/dev-mbim.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/hw/usb/dev-mbim.c b/hw/usb/dev-mbim.c
index a2bf4b84f..901e551aa 100644
--- a/hw/usb/dev-mbim.c
+++ b/hw/usb/dev-mbim.c
@@ -317,6 +317,7 @@ static const USBDescIface desc_iface_mbim_nocompat[] = {
.bInterfaceClass = 0x02,
.bInterfaceSubClass = 0x0e, /* MBIM */
.bInterfaceProtocol = 0x00,
+ .ndesc = 3,
.descs = (USBDescOther[]) {
{
.data = cdc_header,
@@ -451,14 +452,14 @@ static const USBDesc desc_mbim_nocompat = {
};
static const uint8_t ncm_ntb_parameters[] = {
- 0x1a, 0x00, /* __le16 wLength; */
+ 0x1c, 0x00, /* __le16 wLength; */
0x00, 0x00, /* __le16 bmNtbFormatsSupported; */
0x00, 0x00, 0x02, 0x00, /* __le32 dwNtbInMaxSize; */
0x20, 0x00, /* __le16 wNdpInDivisor; */
0x00, 0x00, /* __le16 wNdpInPayloadRemainder; */
0x20, 0x00, /* __le16 wNdpInAlignment; */
0x00, 0x00, /* __le16 wPadding1; */
- 0x00, 0x80, /* __le32 dwNtbOutMaxSize; */
+ 0x00, 0x80, 0x00, 0x00, /* __le32 dwNtbOutMaxSize; */
0x04, 0x00, /* __le16 wNdpOutDivisor; */
0x00, 0x00, /* __le16 wNdpOutPayloadRemainder; */
0x20, 0x00, /* __le16 wNdpOutAlignment; */
@@ -499,6 +500,7 @@ static int usb_mbim_handle_control(USBDevice *dev, USBPacket *p,
DPRINTF("USB_CDC_SET_MAX_DATAGRAM_SIZE is not implemented\n");
goto fail;
case InterfaceInClass | USB_CDC_GET_NTB_PARAMETERS:
+ DPRINTF("USB_CDC_GET_NTB_PARAMETERS, length=%d, sizeof(ncm_ntb_parameters)=%zu\n", length, sizeof(ncm_ntb_parameters));
if (length == sizeof(ncm_ntb_parameters))
memcpy(data, ncm_ntb_parameters, sizeof(ncm_ntb_parameters));
else