Cascoda / ca8210-linux

Linux kernel driver for direct SPI communication with Cascoda's CA-8210 IEEE 802.15.4 transceiver
BSD 3-Clause "New" or "Revised" License
5 stars 5 forks source link

The handshaking between the driver and the upperlayer not implemented #8

Closed tjobanpu closed 7 years ago

tjobanpu commented 7 years ago

The symptom could be the transmitted message is discarded instead of retransmitted.

I have noticed that in a few places where the driver had indicated the tx did not succeed we continue without stopping the tx queue.

if (ret < 0) { dev_warn( &priv->spi->dev, "Failed to transmit skb, returned %d\n", ret ); / retry transmission higher up / ieee802154_wake_queue(priv->hw);

Basically will start sending the next packet even though we think the transmit has failed, the ieee802154_wake_queue() is not required as the queue is already "wake", I have not seen the use of function ieee802154_stop_queue(), the ieee802154_wake_queue() is a wrapper function of netif_wake_queue().

http://www.makelinux.net/ldd3/chp-17-sect-5

tjobanpu commented 7 years ago

I am closing the issue since i notice the ieee802154 stack takes care of the stop queue! Apologies.