Removed some obsolete code from the USB driver.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2715 35acf78f-673a-0410-8e92-d51de3d6d3f4
master
gdisirio 2011-02-06 10:02:08 +00:00
parent 4e68b68d5a
commit 18853dba22
3 changed files with 13 additions and 166 deletions

View File

@ -222,70 +222,35 @@ typedef const USBDescriptor * (*usbgetdescriptor_t)(USBDriver *usbp,
* @param[in] usbp pointer to the @p USBDriver object
* @return The current frame number.
*
* @notapi
* @api
*/
#define usbGetFrameNumber(usbp) usb_lld_get_frame_number(usbp)
/**
* @brief Returns the number of bytes readable from the receive packet
* buffer.
* @brief Returns the status of an IN endpoint.
*
* @param[in] usbp pointer to the @p USBDriver object
* @param[in] ep endpoint number
* @return The number of bytes that are effectively available.
* @retval 0 Data not yet available.
* @return The operation status.
* @retval FALSE Endpoint ready.
* @retval TRUE Endpoint busy.
*
* @iclass
*/
#define usbGetReadableI(usbp, ep) usb_lld_get_readable(usbp, ep)
#define usbGetTransmitStatusI(usbp, ep) (usbp)->ep[ep]->transmitting
/**
* @brief Endpoint read.
* @details The buffered packet is copied into the user buffer and then
* the endpoint is brought to the valid state in order to allow
* reception of more data.
* @brief Returns the status of an OUT endpoint.
*
* @param[in] usbp pointer to the @p USBDriver object
* @param[in] ep endpoint number
* @param[out] buf buffer where to copy the endpoint data
* @param[in] n maximum number of bytes to copy
* @return The number of bytes that were effectively available.
* @retval 0 Data not yet available.
* @return The operation status.
* @retval FALSE Endpoint ready.
* @retval TRUE Endpoint busy.
*
* @iclass
*/
#define usbReadI(usbp, ep, buf, n) usb_lld_read(usbp, ep, buf, n)
/**
* @brief Returns the number of bytes writeable to the transmit packet
* buffer.
*
* @param[in] usbp pointer to the @p USBDriver object
* @param[in] ep endpoint number
* @return The number of bytes that can be written.
* @retval 0 Endpoint not ready for transmission.
*
* @iclass
*/
#define usbGetWriteableI(usbp, ep) usb_lld_get_readable(usbp, ep)
/**
* @brief Endpoint write.
* @details The user data is copied in the packer memory and then
* the endpoint is brought to the valid state in order to allow
* transmission.
*
* @param[in] usbp pointer to the @p USBDriver object triggering the
* callback
* @param[in] ep endpoint number
* @param[in] buf buffer where to copy the endpoint data
* @param[in] n maximum number of bytes to copy
* @return The number of bytes that were effectively written.
* @retval 0 Endpoint not ready for transmission.
*
* @iclass
*/
#define usbWriteI(usbp, ep, buf, n) usb_lld_write(usbp, ep, buf, n)
#define usbGetReceiveStatusI(usbp, ep) (usbp)->ep[ep]->receiving
/**
* @brief Request transfer setup.
@ -295,7 +260,6 @@ typedef const USBDescriptor * (*usbgetdescriptor_t)(USBDriver *usbp,
* @param[in] usbp pointer to the @p USBDriver object
* @param[in] buf pointer to a buffer for the transaction data
* @param[in] n number of bytes to be transferred
* @param[in] endcb transfer complete callback
*
* @api
*/

View File

@ -192,6 +192,7 @@ CH_IRQ_HANDLER(USB_LP_IRQHandler) {
}
else {
/* Transfer completed, invoking the callback, if defined.*/
(usbp)->ep[ep]->transmitting = FALSE;
if (epcp->in_cb)
epcp->in_cb(usbp, ep);
}
@ -218,6 +219,7 @@ CH_IRQ_HANDLER(USB_LP_IRQHandler) {
}
else {
/* Transfer completed, invoking the callback, if defined.*/
(usbp)->ep[ep]->receiving = FALSE;
if (epcp->out_cb)
epcp->out_cb(usbp, ep);
}
@ -394,120 +396,6 @@ void usb_lld_disable_endpoints(USBDriver *usbp) {
}
/**
* @brief Returns the number of bytes readable from the receive packet
* buffer.
*
* @param[in] usbp pointer to the @p USBDriver object
* @param[in] ep endpoint number
* @return The number of bytes that are effectively available.
* @retval 0 Data not yet available.
*
* @notapi
*/
size_t usb_lld_get_readable(USBDriver *usbp, usbep_t ep) {
(void)usbp;
if ((STM32_USB->EPR[ep] & EPR_STAT_RX_MASK) != EPR_STAT_RX_NAK)
return 0;
return (size_t)(USB_GET_DESCRIPTOR(ep)->RXCOUNT & RXCOUNT_COUNT_MASK);
}
/**
* @brief Endpoint read.
* @details The buffered packet is copied into the user buffer and then
* the endpoint is brought to the valid state in order to allow
* reception of more data.
*
* @param[in] usbp pointer to the @p USBDriver object
* @param[in] ep endpoint number
* @param[out] buf buffer where to copy the endpoint data
* @param[in] n maximum number of bytes to copy
* @return The number of bytes that were effectively available.
* @retval 0 Data not yet available.
*
* @notapi
*/
size_t usb_lld_read(USBDriver *usbp, usbep_t ep, uint8_t *buf, size_t n) {
uint32_t *pmap;
stm32_usb_descriptor_t *udp;
size_t count;
(void)usbp;
if ((STM32_USB->EPR[ep] & EPR_STAT_RX_MASK) != EPR_STAT_RX_NAK)
return 0;
udp = USB_GET_DESCRIPTOR(ep);
pmap = USB_ADDR2PTR(udp->RXADDR);
count = udp->RXCOUNT & RXCOUNT_COUNT_MASK;
if (n > count)
n = count;
count = (n + 1) / 2;
while (count) {
*(uint16_t *)buf = (uint16_t)*pmap++;
buf += 2;
count--;
}
EPR_SET_STAT_RX(ep, EPR_STAT_RX_VALID);
return n;
}
/**
* @brief Returns the number of bytes writeable to the transmit packet
* buffer.
*
* @param[in] usbp pointer to the @p USBDriver object
* @param[in] ep endpoint number
* @return The number of bytes that can be written.
* @retval 0 Endpoint not ready for transmission.
*
* @iclass
*/
size_t usb_lld_get_writeable(USBDriver *usbp, usbep_t ep) {
if ((STM32_USB->EPR[ep] & EPR_STAT_TX_MASK) != EPR_STAT_TX_NAK)
return 0;
return (size_t)usbp->ep[ep]->config->in_maxsize;
}
/**
* @brief Endpoint write.
* @details The user data is copied in the packer memory and then
* the endpoint is brought to the valid state in order to allow
* transmission.
*
* @param[in] usbp pointer to the @p USBDriver object
* @param[in] ep endpoint number
* @param[in] buf buffer where to copy the endpoint data
* @param[in] n maximum number of bytes to copy
* @return The number of bytes that were effectively written.
* @retval 0 Endpoint not ready for transmission.
*
* @notapi
*/
size_t usb_lld_write(USBDriver *usbp, usbep_t ep,
const uint8_t *buf,
size_t n) {
uint32_t *pmap;
stm32_usb_descriptor_t *udp;
size_t count;
(void)usbp;
if ((STM32_USB->EPR[ep] & EPR_STAT_TX_MASK) != EPR_STAT_TX_NAK)
return 0;
udp = USB_GET_DESCRIPTOR(ep);
pmap = USB_ADDR2PTR(udp->TXADDR);
udp->TXCOUNT = n;
count = (n + 1) / 2;
while (count) {
*pmap++ = *(uint16_t *)buf;
buf += 2;
count--;
}
EPR_SET_STAT_TX(ep, EPR_STAT_TX_VALID);
return n;
}
/**
* @brief Returns the status of an OUT endpoint.
*

View File

@ -310,11 +310,6 @@ extern "C" {
void usb_lld_set_address(USBDriver *usbp);
void usb_lld_init_endpoint(USBDriver *usbp, usbep_t ep);
void usb_lld_disable_endpoints(USBDriver *usbp);
size_t usb_lld_get_readable(USBDriver *usbp, usbep_t ep);
size_t usb_lld_read(USBDriver *usbp, usbep_t ep,
uint8_t *buf, size_t n);
size_t usb_lld_write(USBDriver *usbp, usbep_t ep,
const uint8_t *buf, size_t n);
usbepstatus_t usb_lld_get_status_in(USBDriver *usbp, usbep_t ep);
usbepstatus_t usb_lld_get_status_out(USBDriver *usbp, usbep_t ep);
void usb_lld_start_out(USBDriver *usbp, usbep_t ep,