forked from luck/tmp_suning_uos_patched
at86rf230: fix state change handling on error
This patch force always to set "is_tx_from_off", when calibration timeout was not occurred. In case of error handling the is_tx_from_off can be inside in an invalid state. Signed-off-by: Alexander Aring <aar@pengutronix.de> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
c231c5a47a
commit
d981b5b5fe
@ -902,14 +902,12 @@ at86rf230_xmit_start(void *context)
|
||||
struct at86rf230_local *lp = ctx->lp;
|
||||
|
||||
/* check if we change from off state */
|
||||
if (lp->is_tx_from_off) {
|
||||
lp->is_tx_from_off = false;
|
||||
if (lp->is_tx_from_off)
|
||||
at86rf230_async_state_change(lp, ctx, STATE_TX_ARET_ON,
|
||||
at86rf230_write_frame);
|
||||
} else {
|
||||
else
|
||||
at86rf230_async_state_change(lp, ctx, STATE_TX_ON,
|
||||
at86rf230_xmit_tx_on);
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
@ -933,6 +931,7 @@ at86rf230_xmit(struct ieee802154_hw *hw, struct sk_buff *skb)
|
||||
at86rf230_async_state_change(lp, ctx, STATE_TRX_OFF,
|
||||
at86rf230_xmit_start);
|
||||
} else {
|
||||
lp->is_tx_from_off = false;
|
||||
at86rf230_xmit_start(ctx);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user