From e26f0b35e3b77a7610f9d7c8e4096cc6a522ddad Mon Sep 17 00:00:00 2001 From: Ron Evans Date: Mon, 2 Sep 2019 10:40:28 +0200 Subject: [PATCH] machine/atsamd21: correct order of params for USB CDC descriptor Signed-off-by: Ron Evans --- src/machine/machine_atsamd21.go | 16 ++++++---------- src/machine/usb.go | 6 +++--- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/machine/machine_atsamd21.go b/src/machine/machine_atsamd21.go index efd21e22..ab623331 100644 --- a/src/machine/machine_atsamd21.go +++ b/src/machine/machine_atsamd21.go @@ -1408,12 +1408,8 @@ func handleUSB() { handleEndpoint(i) } setEPINTFLAG(i, epFlags) - case usb_CDC_ENDPOINT_IN, usb_CDC_ENDPOINT_ACM: - // set bank ready - setEPSTATUSCLR(i, sam.USB_DEVICE_EPSTATUSCLR_BK1RDY) - - // ack transfer complete - setEPINTFLAG(i, sam.USB_DEVICE_EPINTFLAG_TRCPT1) + case usb_CDC_ENDPOINT_ACM: + setEPINTFLAG(i, epFlags) } } } @@ -1808,9 +1804,9 @@ func sendConfiguration(setup usbSetup) { dif := NewInterfaceDescriptor(usb_CDC_DATA_INTERFACE, 2, usb_CDC_DATA_INTERFACE_CLASS, 0, 0) - in := NewEndpointDescriptor((usb_CDC_ENDPOINT_OUT | usbEndpointOut), usb_ENDPOINT_TYPE_BULK, usbEndpointPacketSize, 0) + out := NewEndpointDescriptor((usb_CDC_ENDPOINT_OUT | usbEndpointOut), usb_ENDPOINT_TYPE_BULK, usbEndpointPacketSize, 0) - out := NewEndpointDescriptor((usb_CDC_ENDPOINT_IN | usbEndpointIn), usb_ENDPOINT_TYPE_BULK, usbEndpointPacketSize, 0) + in := NewEndpointDescriptor((usb_CDC_ENDPOINT_IN | usbEndpointIn), usb_ENDPOINT_TYPE_BULK, usbEndpointPacketSize, 0) cdc := NewCDCDescriptor(iad, cif, @@ -1820,8 +1816,8 @@ func sendConfiguration(setup usbSetup) { callManagement, cifin, dif, - in, - out) + out, + in) sz := uint16(configDescriptorSize + cdcSize) config := NewConfigDescriptor(sz, 2) diff --git a/src/machine/usb.go b/src/machine/usb.go index 7805e23b..f9a2c7d5 100644 --- a/src/machine/usb.go +++ b/src/machine/usb.go @@ -316,8 +316,8 @@ func NewCDCDescriptor(i IADDescriptor, c InterfaceDescriptor, callm CMFunctionalDescriptor, ci EndpointDescriptor, di InterfaceDescriptor, - inp EndpointDescriptor, - outp EndpointDescriptor) CDCDescriptor { + outp EndpointDescriptor, + inp EndpointDescriptor) CDCDescriptor { return CDCDescriptor{iad: i, cif: c, header: h, @@ -352,8 +352,8 @@ func (d CDCDescriptor) Bytes() []byte { buf.Write(d.callManagement.Bytes()) buf.Write(d.cifin.Bytes()) buf.Write(d.dif.Bytes()) - buf.Write(d.in.Bytes()) buf.Write(d.out.Bytes()) + buf.Write(d.in.Bytes()) return buf.Bytes() }