Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d981b5b5 authored by Alexander Aring's avatar Alexander Aring Committed by Marcel Holtmann
Browse files

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: default avatarAlexander Aring <aar@pengutronix.de>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent c231c5a4
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -902,15 +902,13 @@ 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
at86rf230_xmit(struct ieee802154_hw *hw, struct sk_buff *skb)
@@ -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);
	}