Hi,

This patch series is a rework of the at86rf230 driver. There are several 
changes:

- Regmap support.
- Drop of irqworker. This is a workqueue which will scheduled by an irq to
  handle synchronous spi handling. Instead using asynchronous spi handling,
  so no scheduler is involved at irq handling.
- Also detected some bugs by receiving frame like CRC can be correct and a
  802.15.4 frame length could be above 127 bytes. This would crash the whole
  kernel (but should be handled by the mac layer). Another bug is the handling
  with RX_SAFE_MODE which protect the frame buffer after a readout. This is
  currently not working because we read out the buffer twice and the first one
  to get the frame size. Solution is to readout always the whole frame buffer.
- Added some timing relevants things from the datasheet for state changes And
  IEEE 802.15.4 standard like interframe spacing. Interframe spacing is needed
  to frame some receiving space time between frame transmitting. This should be
  also handled by MAC layer, but it's currently a workaround to add this inside
  the driver layer.
- Add some callback setting for chip specific handling, instead of runtime 
decisions
  if (is_chip_type()). Callbacks are set only once at probe time.
- We don't using a force state change anymore. A force state change will do a
  abort of receiving frames while we want to transmit a new frame. This should
  decrease the drop rate of packets.
- And many others changes...

I will send this series when to netdev when I get response if it still work on
at86rf212 :-). In this time we can test the new driver implementation. My tests
shows a speedup of 1 ms for a 6LoWPAN ping without fragmentation and a decrease
of the drop rate.

I have a at86rf231 chip only and I test it in ARET mode as well without any 
problems.
It would be nice I get some testing reviews from other at86rf2xx chips.

The changes are also available at github see:
https://github.com/linux-wpan/wpan-next/commits/at86rf230_rework

- Alex

changes since v2:
There was some huge change.
 - remove driver rename.
 - fix ieee802154_register_device error handling.
 - async transmit handling:
        - do more state change like the programming model guide.
        - add a assert which check only once the state change.
        - add support for checking trac status.
        - fix the race condition from RX_AACK_ON -> RX_AACK_BUSY check.

Alexander Aring (12):
  at86rf230: add regmap support
  at86rf230: rework detect device handling
  at86rf230: remove is212 and add driver data
  at86rf230: add support for at86rf23x desense
  at86rf230: rework transmit and receive handling
  at86rf230: move RX_SAFE_MODE setting to hw_init
  at86rf230: rework irq_pol setting
  at86rf230: rework state change and start/stop
  at86rf230: rework reset to trx_off state change
  at86rf230: add timing for channel switch
  at86rf230: add sleep cycle timing
  at86rf230: add new author

 drivers/net/ieee802154/Kconfig     |    1 +
 drivers/net/ieee802154/at86rf230.c | 1420 +++++++++++++++++++++++-------------
 2 files changed, 907 insertions(+), 514 deletions(-)

-- 
2.0.0


------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
Linux-zigbee-devel mailing list
Linux-zigbee-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel

Reply via email to