Skip to content
  • Alexander Aring's avatar
    at86rf230: fix unexpected state change · 7332fcb8
    Alexander Aring authored
    This patch fix a unexpected state change for the at86rf231 chip.
    We can't change into STATE_FORCE_TX_ON while the chip is in one of
    SLEEP, P_ON, RESET, TRX_OFF, and all *_NOCLK states.
    
    In this case we are in the TRX_OFF state. See datasheet [1] page 71 for
    more information.
    
    Without this patch you will get the following message on a at86rf231 device:
    
    [   20.065218] unexpected state change: 8, asked for 4
    [   20.070527] ------------[ cut here ]------------
    [   20.075414] WARNING: CPU: 0 PID: 160 at net/mac802154/ieee802154_dev.c:43 mac802154_slave_open+0x70/0xb8()
    [   20.085594] Modules linked in: autofs4
    [   20.089667] CPU: 0 PID: 160 Comm: ifconfig Not tainted 3.14.0-20140108-1-00993-g905c192 #162
    [   20.098612] [<c00127b8>] (unwind_backtrace) from [<c0010b1c>] (show_stack+0x10/0x14)
    [   20.106819] [<c0010b1c>] (show_stack) from [<c0033838>] (warn_slowpath_common+0x60/0x80)
    [   20.115311] [<c0033838>] (warn_slowpath_common) from [<c00338e8>] (warn_slowpath_null+0x18/0x20)
    [   20.124590] [<c00338e8>] (warn_slowpath_null) from [<c057b7e8>] (mac802154_slave_open+0x70/0xb8)
    [   20.133880] [<c057b7e8>] (mac802154_slave_open) from [<c0488a58>] (__dev_open+0xa8/0x108)
    [   20.142553] [<c0488a58>] (__dev_open) from [<c0488cb0>] (__dev_change_flags+0x8c/0x148)
    [   20.151051] [<c0488cb0>] (__dev_change_flags) from [<c0488d84>] (dev_change_flags+0x18/0x48)
    [   20.159968] [<c0488d84>] (dev_change_flags) from [<c04e2e9c>] (devinet_ioctl+0x2b0/0x63c)
    [   20.168623] [<c04e2e9c>] (devinet_ioctl) from [<c04712e4>] (sock_ioctl+0x23c/0x29c)
    [   20.176727] [<c04712e4>] (sock_ioctl) from [<c00e3cb8>] (do_vfs_ioctl+0x4a8/0x578)
    [   20.184671] [<c00e3cb8>] (do_vfs_ioctl) from [<c00e3dd4>] (SyS_ioctl+0x4c/0x78)
    [   20.192402] [<c00e3dd4>] (SyS_ioctl) from [<c000da00>] (ret_fast_syscall+0x0/0x48)
    [   20.200392] ---[ end trace 9a34542f4ea08e47 ]---
    
    This patch was tested on at86rf231 and at86rf212.
    
    [1] http://www.atmel.com/images/doc8111.pdf
    
    
    
    Signed-off-by: default avatarAlexander Aring <alex.aring@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    7332fcb8