From 37c4fb547780430de9ab7d682e53339dbe4a93e2 Mon Sep 17 00:00:00 2001 From: Adam Porter Date: Sun, 23 Jun 2019 07:05:21 -0600 Subject: [PATCH] In stm32_ctrlout() in the HS and FS host drivers, the data buffer isn't sent. This patch passes the buffer and buflen to the stm32_ctrl_senddata() function. With this change, I am able to send MBIM control messages to my USB modem, and read the response. --- arch/arm/src/stm32/stm32_otgfshost.c | 3 ++- arch/arm/src/stm32/stm32_otghshost.c | 3 ++- arch/arm/src/stm32f7/stm32_otghost.c | 3 ++- arch/arm/src/stm32h7/stm32_otghost.c | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/arch/arm/src/stm32/stm32_otgfshost.c b/arch/arm/src/stm32/stm32_otgfshost.c index 76aa8f73e9..4fd3f2621f 100644 --- a/arch/arm/src/stm32/stm32_otgfshost.c +++ b/arch/arm/src/stm32/stm32_otgfshost.c @@ -4540,7 +4540,8 @@ static int stm32_ctrlout(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep0, /* Start DATA out transfer (only one DATA packet) */ priv->chan[ep0info->outndx].outdata1 = true; - ret = stm32_ctrl_senddata(priv, ep0info, NULL, 0); + ret = stm32_ctrl_senddata(priv, ep0info, (FAR uint8_t *)buffer, + buflen); if (ret < 0) { usbhost_trace1(OTGFS_TRACE1_SENDDATA, -ret); diff --git a/arch/arm/src/stm32/stm32_otghshost.c b/arch/arm/src/stm32/stm32_otghshost.c index 8353a43045..22e24ac646 100644 --- a/arch/arm/src/stm32/stm32_otghshost.c +++ b/arch/arm/src/stm32/stm32_otghshost.c @@ -4545,7 +4545,8 @@ static int stm32_ctrlout(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep0, /* Start DATA out transfer (only one DATA packet) */ priv->chan[ep0info->outndx].outdata1 = true; - ret = stm32_ctrl_senddata(priv, ep0info, NULL, 0); + ret = stm32_ctrl_senddata(priv, ep0info, (FAR uint8_t *)buffer, + buflen); if (ret < 0) { usbhost_trace1(OTGHS_TRACE1_SENDDATA, -ret); diff --git a/arch/arm/src/stm32f7/stm32_otghost.c b/arch/arm/src/stm32f7/stm32_otghost.c index e90ae1860c..20e308849b 100644 --- a/arch/arm/src/stm32f7/stm32_otghost.c +++ b/arch/arm/src/stm32f7/stm32_otghost.c @@ -4538,7 +4538,8 @@ static int stm32_ctrlout(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep0, /* Start DATA out transfer (only one DATA packet) */ priv->chan[ep0info->outndx].outdata1 = true; - ret = stm32_ctrl_senddata(priv, ep0info, NULL, 0); + ret = stm32_ctrl_senddata(priv, ep0info, (FAR uint8_t *)buffer, + buflen); if (ret < 0) { usbhost_trace1(OTG_TRACE1_SENDDATA, -ret); diff --git a/arch/arm/src/stm32h7/stm32_otghost.c b/arch/arm/src/stm32h7/stm32_otghost.c index 55ec2626b8..3f20583560 100644 --- a/arch/arm/src/stm32h7/stm32_otghost.c +++ b/arch/arm/src/stm32h7/stm32_otghost.c @@ -4543,7 +4543,8 @@ static int stm32_ctrlout(FAR struct usbhost_driver_s *drvr, usbhost_ep_t ep0, /* Start DATA out transfer (only one DATA packet) */ priv->chan[ep0info->outndx].outdata1 = true; - ret = stm32_ctrl_senddata(priv, ep0info, NULL, 0); + ret = stm32_ctrl_senddata(priv, ep0info, (FAR uint8_t *)buffer, + buflen); if (ret < 0) { usbhost_trace1(OTG_TRACE1_SENDDATA, -ret);