From patchwork Sat Jun 28 18:33:48 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Aring X-Patchwork-Id: 365299 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 98AC81400B5 for ; Sun, 29 Jun 2014 04:34:53 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932359AbaF1Ses (ORCPT ); Sat, 28 Jun 2014 14:34:48 -0400 Received: from mail-we0-f177.google.com ([74.125.82.177]:36989 "EHLO mail-we0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932247AbaF1Seq (ORCPT ); Sat, 28 Jun 2014 14:34:46 -0400 Received: by mail-we0-f177.google.com with SMTP id u56so6406260wes.36 for ; Sat, 28 Jun 2014 11:34:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=gYSopW5a+r+kmQ2DhFsYu5I6juiGUDoSHbXwvEz3I1w=; b=qxTmqIo/Ug2l6HQUqNL1lP+FeEg5aaylBkh35i4zmzjYlDnlj/NVyp704u5ritlQkK WGvA6wdV771dtyEm44HaxJXU0szlGz1LyP5NzJ2rpGuz0ydVegT637VSKzrh48BoUPGD R1XZSk9FPpsEtZ4xO2bKbtVcjJLKiXykyKSf13frOGTN9ncT/fR/0uT1KDrMAjT+XRaf PhmW1B2VDBFMBFSjmFZB2P767Jp/33EH3J1eLhRM5RocV2q2QqSAvMrSl7cqrKY0o9hw 9ia3sjDdQKl102OspYqq5VPR1ObZ0kg91PIxhtVb2kaj11rvEexkuQRh3bMYpHxlm1z+ GZuQ== X-Received: by 10.194.222.230 with SMTP id qp6mr33790804wjc.23.1403980485624; Sat, 28 Jun 2014 11:34:45 -0700 (PDT) Received: from omega.localdomain (p4FD3BDAF.dip0.t-ipconnect.de. [79.211.189.175]) by mx.google.com with ESMTPSA id m3sm29433289wjr.49.2014.06.28.11.34.44 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 28 Jun 2014 11:34:44 -0700 (PDT) From: Alexander Aring To: alex.bluesman.smirnov@gmail.com Cc: dbaryshkov@gmail.com, linux-zigbee-devel@lists.sourceforge.net, netdev@vger.kernel.org, werner@almesberger.net, Alexander Aring Subject: [PATCH net-next 10/13] at86rf230: rework reset to trx_off state change Date: Sat, 28 Jun 2014 20:33:48 +0200 Message-Id: <1403980431-6201-11-git-send-email-alex.aring@gmail.com> X-Mailer: git-send-email 2.0.1 In-Reply-To: <1403980431-6201-1-git-send-email-alex.aring@gmail.com> References: <1403980431-6201-1-git-send-email-alex.aring@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Signed-off-by: Alexander Aring --- drivers/net/ieee802154/at86rf230.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c index 9829248..2220c74 100644 --- a/drivers/net/ieee802154/at86rf230.c +++ b/drivers/net/ieee802154/at86rf230.c @@ -44,6 +44,7 @@ struct at86rf230_local; * All timings are in us. */ struct at86rf2xx_chip_data { + u16 t_reset_to_off; u16 t_off_to_aack; u16 t_off_to_tx_on; u16 t_frame; @@ -584,6 +585,16 @@ at86rf230_async_state_delay(void *context) break; } break; + /* Default value, means RESET state */ + case STATE_P_ON: + switch (ctx->to_state) { + case STATE_TRX_OFF: + usleep_range(c->t_reset_to_off, c->t_reset_to_off + 10); + goto change; + default: + break; + } + break; default: break; } @@ -1238,6 +1249,7 @@ static struct ieee802154_ops at86rf230_ops = { }; static struct at86rf2xx_chip_data at86rf233_data = { + .t_reset_to_off = 26, .t_off_to_aack = 80, .t_off_to_tx_on = 80, .t_frame = 4096, @@ -1251,6 +1263,7 @@ static struct at86rf2xx_chip_data at86rf233_data = { }; static struct at86rf2xx_chip_data at86rf231_data = { + .t_reset_to_off = 37, .t_off_to_aack = 110, .t_off_to_tx_on = 110, .t_frame = 4096, @@ -1264,6 +1277,7 @@ static struct at86rf2xx_chip_data at86rf231_data = { }; static struct at86rf2xx_chip_data at86rf212_data = { + .t_reset_to_off = 26, .t_off_to_aack = 200, .t_off_to_tx_on = 200, .t_frame = 4096, @@ -1282,7 +1296,7 @@ static int at86rf230_hw_init(struct at86rf230_local *lp) unsigned int dvdd; u8 csma_seed[2]; - rc = at86rf230_write_subreg(lp, SR_TRX_CMD, STATE_FORCE_TRX_OFF); + rc = at86rf230_sync_state_change(lp, STATE_FORCE_TRX_OFF); if (rc) return rc;