diff options
author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2012-05-01 16:53:58 +0000 |
---|---|---|
committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2012-05-01 16:53:58 +0000 |
commit | 8ed6a8d9e3b4613a0d586d409f4c5706f21b5857 (patch) | |
tree | a278930226874066344e6410636b50a3038f2e42 /os/hal/platforms/STM32/mac_lld.c | |
parent | d317bf915aadcd7a29f5faa04ccc2e24cfe99675 (diff) | |
download | ChibiOS-8ed6a8d9e3b4613a0d586d409f4c5706f21b5857.tar.gz ChibiOS-8ed6a8d9e3b4613a0d586d409f4c5706f21b5857.tar.bz2 ChibiOS-8ed6a8d9e3b4613a0d586d409f4c5706f21b5857.zip |
Fixed bug 3522808, fixed problem with STM32 MAC driver checksum offload.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4156 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/platforms/STM32/mac_lld.c')
-rw-r--r-- | os/hal/platforms/STM32/mac_lld.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/os/hal/platforms/STM32/mac_lld.c b/os/hal/platforms/STM32/mac_lld.c index 15f9cd13c..aff58342e 100644 --- a/os/hal/platforms/STM32/mac_lld.c +++ b/os/hal/platforms/STM32/mac_lld.c @@ -384,7 +384,7 @@ void mac_lld_stop(MACDriver *macp) { *
* @notapi
*/
-msg_t max_lld_get_transmit_descriptor(MACDriver *macp,
+msg_t mac_lld_get_transmit_descriptor(MACDriver *macp,
MACTransmitDescriptor *tdp) {
stm32_eth_tx_descriptor_t *tdes;
@@ -493,7 +493,7 @@ void mac_lld_release_transmit_descriptor(MACTransmitDescriptor *tdp) { *
* @notapi
*/
-msg_t max_lld_get_receive_descriptor(MACDriver *macp,
+msg_t mac_lld_get_receive_descriptor(MACDriver *macp,
MACReceiveDescriptor *rdp) {
stm32_eth_rx_descriptor_t *rdes;
@@ -505,12 +505,12 @@ msg_t max_lld_get_receive_descriptor(MACDriver *macp, /* Iterates through received frames until a valid one is found, invalid
frames are discarded.*/
while (!(rdes->rdes0 & STM32_RDES0_OWN)) {
- if (!(rdes->rdes0 & (STM32_RDES0_AFM | STM32_RDES0_ES
+ if (!(rdes->rdes0 & (STM32_RDES0_AFM | STM32_RDES0_ES))
#if STM32_IP_CHECKSUM_OFFLOAD
- | STM32_RDES0_IPHCE | STM32_RDES0_PCE
+ && !(rdes->rdes0 & STM32_RDES0_FT & (STM32_RDES0_IPHCE |
+ STM32_RDES0_PCE))
#endif
- )) && (rdes->rdes0 & STM32_RDES0_FS) &&
- (rdes->rdes0 & STM32_RDES0_LS)) {
+ && (rdes->rdes0 & STM32_RDES0_FS) && (rdes->rdes0 & STM32_RDES0_LS)) {
/* Found a valid one.*/
rdp->offset = 0;
rdp->size = ((rdes->rdes0 & STM32_RDES0_FL_MASK) >> 16) - 4;
|