aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/ports
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2015-12-31 15:54:56 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2015-12-31 15:54:56 +0000
commitd832e5d17362212c0eaadb830fdfd8239ce08c54 (patch)
tree4279ec4fdbc8c5bf10151ef350aebda6bc000bdd /os/hal/ports
parent1671d6b7e129ffbee917c2839f428d6f37206def (diff)
downloadChibiOS-d832e5d17362212c0eaadb830fdfd8239ce08c54.tar.gz
ChibiOS-d832e5d17362212c0eaadb830fdfd8239ce08c54.tar.bz2
ChibiOS-d832e5d17362212c0eaadb830fdfd8239ce08c54.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8664 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/ports')
-rw-r--r--os/hal/ports/STM32/LLD/USBv1/usb_lld.c70
-rw-r--r--os/hal/ports/STM32/LLD/USBv1/usb_lld.h48
2 files changed, 0 insertions, 118 deletions
diff --git a/os/hal/ports/STM32/LLD/USBv1/usb_lld.c b/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
index 76e5f8665..488f6e81a 100644
--- a/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
+++ b/os/hal/ports/STM32/LLD/USBv1/usb_lld.c
@@ -493,17 +493,6 @@ void usb_lld_start(USBDriver *usbp) {
/* Reset procedure enforced on driver start.*/
_usb_reset(usbp);
}
-
-#if STM32_USB_USE_PUMP_THREAD && defined(_CHIBIOS_RT_)
- /* Creates the data pump thread. Note, it is created only once.*/
- if (usbp->tr == NULL) {
- usbp->tr = chThdCreateI(usbp->wa_pump, sizeof usbp->wa_pump,
- STM32_USB_PUMP_THREAD_PRIO,
- usb_lld_pump, usbp);
- chThdStartI(usbp->tr);
- chSchRescheduleS();
- }
-#endif
}
/**
@@ -869,65 +858,6 @@ void usb_lld_clear_in(USBDriver *usbp, usbep_t ep) {
EPR_SET_STAT_TX(ep, EPR_STAT_TX_NAK);
}
-#if STM32_USB_USE_PUMP_THREAD || defined(__DOXYGEN__)
-/**
- * @brief USB data transfer loop.
- * @details This function must be executed by a system thread in order to
- * make the USB driver work.
- * @note The data copy part of the driver is implemented in this thread
- * in order to not perform heavy tasks within interrupt handlers.
- *
- * @param[in] p pointer to the @p USBDriver object
- *
- * @special
- */
-void usb_lld_pump(void *p) {
- USBDriver *usbp = (USBDriver *)p;
-
-#if defined(_CHIBIOS_RT_)
- chRegSetThreadName("usb_lld_pump");
-#endif
- while (true) {
- usbep_t ep;
-
- /* Checking if to go to sleep.*/
- osalSysLock();
- if ((usbp->state == USB_STOP) && (usbp->pending == 0U)) {
- osalThreadSuspendS(&usbp->wait);
- }
- osalSysUnlock();
-
- /* Scanning endpoints.*/
- for (ep = 0; ep <= USB_ENDOPOINTS_NUMBER; ep++) {
- uint32_t epmask;
-
- /* Checking of active endpoints.*/
- const USBEndpointConfig *epcp = usbp->epc[ep];
- if (epcp != NULL) {
- if (epcp->in_state != NULL) {
- epmask = (1U << 16U) << ep;
- if ((usbp->pending & epmask) != 0U) {
- /* Handling transfer of this IN endpoint.*/
-
- osalSysLock();
- usbp->pending &= ~epmask;
- osalSysUnlock();
- }
- epmask = 1U << ep;
- if ((usbp->pending & epmask) != 0U) {
- /* Handling transfer of this OUT endpoint.*/
-
- osalSysLock();
- usbp->pending &= ~epmask;
- osalSysUnlock();
- }
- }
- }
- }
- }
-}
-#endif /* STM32_USB_USE_PUMP_THREAD */
-
#endif /* HAL_USE_USB */
/** @} */
diff --git a/os/hal/ports/STM32/LLD/USBv1/usb_lld.h b/os/hal/ports/STM32/LLD/USBv1/usb_lld.h
index 6214e5ff4..2013480dc 100644
--- a/os/hal/ports/STM32/LLD/USBv1/usb_lld.h
+++ b/os/hal/ports/STM32/LLD/USBv1/usb_lld.h
@@ -105,30 +105,6 @@
#define STM32_USB_USE_FAST_COPY FALSE
#endif
-/**
- * @brief Enables the use of a thread for data moving.
- * @details This option improves IRQ handling by performing data moving
- * from a dedicated internal thread at the cost of increased
- * footprint.
- */
-#if !defined(STM32_USB_USE_PUMP_THREAD) || defined(__DOXYGEN__)
-#define STM32_USB_USE_PUMP_THREAD FALSE
-#endif
-
-/**
- * @brief Dedicated data pump threads priority.
- */
-#if !defined(STM32_USB_PUMP_THREAD_PRIO) || defined(__DOXYGEN__)
-#define STM32_USB_PUMP_THREAD_PRIO LOWPRIO
-#endif
-
-/**
- * @brief Dedicated data pump threads stack size.
- */
-#if !defined(STM32_USB_PUMP_THREAD_STACK_SIZE) || defined(__DOXYGEN__)
-#define STM32_USB_PUMP_THREAD_STACK_SIZE 128
-#endif
-
/*===========================================================================*/
/* Derived constants and error checks. */
/*===========================================================================*/
@@ -405,27 +381,6 @@ struct USBDriver {
* @brief Pointer to the next address in the packet memory.
*/
uint32_t pmnext;
-#if STM32_USB_USE_PUMP_THREAD || defined(__DOXYGEN__)
- /**
- * @brief Mask of endpoints to be served by the pump thread.
- * @note 0..15 for OUT endpoints, 16..31 for IN endpoints.
- */
- uint32_t pending;
- /**
- * @brief Pointer to the thread when it is sleeping or @p NULL.
- */
- thread_reference_t wait;
-#if defined(_CHIBIOS_RT_) || defined(__DOXYGEN__)
- /**
- * @brief Pointer to the thread once created.
- */
- thread_reference_t tr;
- /**
- * @brief Working area for the dedicated data pump thread;
- */
- THD_WORKING_AREA(wa_pump, STM32_USB_PUMP_THREAD_STACK_SIZE);
-#endif /* _CHIBIOS_RT_ */
-#endif /* STM32_USB_USE_PUMP_THREAD */
};
/*===========================================================================*/
@@ -516,9 +471,6 @@ extern "C" {
void usb_lld_stall_in(USBDriver *usbp, usbep_t ep);
void usb_lld_clear_out(USBDriver *usbp, usbep_t ep);
void usb_lld_clear_in(USBDriver *usbp, usbep_t ep);
-#if STM32_USB_USE_PUMP_THREAD
- void usb_lld_pump(void *p);
-#endif
#ifdef __cplusplus
}
#endif