From patchwork Sun Jan 6 08:37:44 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andreas_F=C3=A4rber?= X-Patchwork-Id: 1021060 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43XX4t3MPWz9s7h for ; Sun, 6 Jan 2019 19:39:26 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726770AbfAFIjZ (ORCPT ); Sun, 6 Jan 2019 03:39:25 -0500 Received: from mx2.suse.de ([195.135.220.15]:57178 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726431AbfAFIiE (ORCPT ); Sun, 6 Jan 2019 03:38:04 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id DD781AC38; Sun, 6 Jan 2019 08:38:02 +0000 (UTC) From: =?utf-8?q?Andreas_F=C3=A4rber?= To: linux-lpwan@lists.infradead.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Andrea?= =?utf-8?b?cyBGw6RyYmVy?= , "David S. Miller" Subject: [PATCH lora-next 01/11] net: lora: sx125x: Abort on wrong version Date: Sun, 6 Jan 2019 09:37:44 +0100 Message-Id: <20190106083754.6004-2-afaerber@suse.de> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190106083754.6004-1-afaerber@suse.de> References: <20190106083754.6004-1-afaerber@suse.de> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This helps detect issues such as the concentrator being in reset. Enhance error output while at it. Signed-off-by: Andreas Färber --- drivers/net/lora/sx125x.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/lora/sx125x.c b/drivers/net/lora/sx125x.c index 90e7cdb9d1a8..0228d1f887a0 100644 --- a/drivers/net/lora/sx125x.c +++ b/drivers/net/lora/sx125x.c @@ -195,9 +195,13 @@ static int __maybe_unused sx125x_regmap_probe(struct device *dev, struct regmap if (true) { ret = regmap_read(priv->regmap, SX1255_VERSION, &val); if (ret) { - dev_err(dev, "version read failed\n"); + dev_err(dev, "version read failed (%d)\n", ret); return ret; } + if (val != 0x21) { + dev_err(dev, "unexpected version: %u\n", val); + return -EINVAL; + } dev_info(dev, "SX125x version: %02x\n", val); } From patchwork Sun Jan 6 08:37:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andreas_F=C3=A4rber?= X-Patchwork-Id: 1021058 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43XX4m5W2kz9s9h for ; Sun, 6 Jan 2019 19:39:20 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726751AbfAFIjR (ORCPT ); Sun, 6 Jan 2019 03:39:17 -0500 Received: from mx2.suse.de ([195.135.220.15]:57184 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726438AbfAFIiE (ORCPT ); Sun, 6 Jan 2019 03:38:04 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 04EB1ACAE; Sun, 6 Jan 2019 08:38:03 +0000 (UTC) From: =?utf-8?q?Andreas_F=C3=A4rber?= To: linux-lpwan@lists.infradead.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Andrea?= =?utf-8?b?cyBGw6RyYmVy?= , "David S. Miller" Subject: [PATCH lora-next 02/11] net: lora: sx130x: Fix error codes Date: Sun, 6 Jan 2019 09:37:45 +0100 Message-Id: <20190106083754.6004-3-afaerber@suse.de> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190106083754.6004-1-afaerber@suse.de> References: <20190106083754.6004-1-afaerber@suse.de> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Use of -ENXIO results in a misleading error message from ip command: RTNETLINK answers: No such device or address Switch to -EIO for more accurate description: RTNETLINK answers: Input/output error Signed-off-by: Andreas Färber --- drivers/net/lora/sx130x.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/lora/sx130x.c b/drivers/net/lora/sx130x.c index 88d4ce1aabcf..21db0ddb101f 100644 --- a/drivers/net/lora/sx130x.c +++ b/drivers/net/lora/sx130x.c @@ -353,7 +353,7 @@ static int sx130x_agc_calibrate(struct sx130x_priv *priv) if (val != SX1301_MCU_AGC_CAL_FW_VERSION) { dev_err(priv->dev, "unexpected firmware version, expecting %u\n", SX1301_MCU_AGC_CAL_FW_VERSION); - return -ENXIO; + return -EIO; } ret = sx130x_field_write(priv, F_EMERGENCY_FORCE_HOST_CTRL, 0); @@ -380,7 +380,7 @@ static int sx130x_agc_calibrate(struct sx130x_priv *priv) dev_info(priv->dev, "AGC status: %02x\n", (unsigned)val); if ((val & (BIT(7) | BIT(0))) != (BIT(7) | BIT(0))) { dev_err(priv->dev, "AGC calibration failed\n"); - return -ENXIO; + return -EIO; } return 0; @@ -453,7 +453,7 @@ static int sx130x_load_all_firmware(struct sx130x_priv *priv) if (val != SX1301_MCU_AGC_FW_VERSION) { dev_err(priv->dev, "unexpected firmware version, expecting %u\n", SX1301_MCU_AGC_FW_VERSION); - return -ENXIO; + return -EIO; } ret = sx130x_arb_ram_read(priv, 0x20, &val); @@ -467,7 +467,7 @@ static int sx130x_load_all_firmware(struct sx130x_priv *priv) if (val != SX1301_MCU_ARB_FW_VERSION) { dev_err(priv->dev, "unexpected firmware version, expecting %u\n", SX1301_MCU_ARB_FW_VERSION); - return -ENXIO; + return -EIO; } return 0; @@ -636,7 +636,7 @@ int sx130x_probe(struct device *dev) if (ver != SX1301_CHIP_VERSION) { dev_err(dev, "unexpected version: %u\n", ver); - return -ENXIO; + return -EIO; } ret = regmap_write(priv->regmap, SX1301_PAGE, 0); From patchwork Sun Jan 6 08:37:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andreas_F=C3=A4rber?= X-Patchwork-Id: 1021056 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43XX4M3yY6z9s7h for ; Sun, 6 Jan 2019 19:38:59 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726527AbfAFIiF (ORCPT ); Sun, 6 Jan 2019 03:38:05 -0500 Received: from mx2.suse.de ([195.135.220.15]:57194 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726477AbfAFIiE (ORCPT ); Sun, 6 Jan 2019 03:38:04 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 61094ACBC; Sun, 6 Jan 2019 08:38:03 +0000 (UTC) From: =?utf-8?q?Andreas_F=C3=A4rber?= To: linux-lpwan@lists.infradead.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Andrea?= =?utf-8?b?cyBGw6RyYmVy?= , Ben Whitten , "David S. Miller" Subject: [PATCH lora-next 03/11] net: lora: sx130x: Revert drop of sx1301_soft_reset() Date: Sun, 6 Jan 2019 09:37:46 +0100 Message-Id: <20190106083754.6004-4-afaerber@suse.de> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190106083754.6004-1-afaerber@suse.de> References: <20190106083754.6004-1-afaerber@suse.de> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Ben's regmap field conversion patch silently dropped my sx1301_soft_reset() helper. Soft reset is a special operation, so restore this function as sx130x_soft_reset(). To be squashed. Cc: Ben Whitten Signed-off-by: Andreas Färber --- drivers/net/lora/sx130x.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/lora/sx130x.c b/drivers/net/lora/sx130x.c index 21db0ddb101f..7a387d9a75a0 100644 --- a/drivers/net/lora/sx130x.c +++ b/drivers/net/lora/sx130x.c @@ -180,6 +180,11 @@ static int sx130x_field_write(struct sx130x_priv *priv, return regmap_field_write(priv->regmap_fields[field_id], val); } +static int sx130x_soft_reset(struct sx130x_priv *priv) +{ + return sx130x_field_write(priv, F_SOFT_RESET, 1); +} + static int sx130x_agc_ram_read(struct sx130x_priv *priv, u8 addr, unsigned int *val) { int ret; @@ -645,7 +650,7 @@ int sx130x_probe(struct device *dev) return ret; } - ret = sx130x_field_write(priv, F_SOFT_RESET, 1); + ret = sx130x_soft_reset(priv); if (ret) { dev_err(dev, "soft reset failed (%d)\n", ret); return ret; From patchwork Sun Jan 6 08:37:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andreas_F=C3=A4rber?= X-Patchwork-Id: 1021057 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43XX4Q54f6z9s7h for ; Sun, 6 Jan 2019 19:39:02 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726718AbfAFIjC (ORCPT ); Sun, 6 Jan 2019 03:39:02 -0500 Received: from mx2.suse.de ([195.135.220.15]:57212 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726419AbfAFIiE (ORCPT ); Sun, 6 Jan 2019 03:38:04 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id B7E55ACE3; Sun, 6 Jan 2019 08:38:03 +0000 (UTC) From: =?utf-8?q?Andreas_F=C3=A4rber?= To: linux-lpwan@lists.infradead.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Andrea?= =?utf-8?b?cyBGw6RyYmVy?= , Ben Whitten , "David S. Miller" Subject: [PATCH lora-next 04/11] net: lora: sx130x: Fix soft reset Date: Sun, 6 Jan 2019 09:37:47 +0100 Message-Id: <20190106083754.6004-5-afaerber@suse.de> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190106083754.6004-1-afaerber@suse.de> References: <20190106083754.6004-1-afaerber@suse.de> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The soft reset bit is volatile. As it lives in the frequently accessed page register, refrain from marking the register as volatile and instead bypass the cache for this one write. Mark the cache as dirty afterwards. This does not appear to clear it, so manually drop the whole cache. If we don't have a cache configured, this may return -EINVAL, so guard it appropriately to aid in testing. Cc: Ben Whitten Signed-off-by: Andreas Färber --- drivers/net/lora/sx130x.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/net/lora/sx130x.c b/drivers/net/lora/sx130x.c index 7a387d9a75a0..4ba02836a35d 100644 --- a/drivers/net/lora/sx130x.c +++ b/drivers/net/lora/sx130x.c @@ -182,7 +182,19 @@ static int sx130x_field_write(struct sx130x_priv *priv, static int sx130x_soft_reset(struct sx130x_priv *priv) { - return sx130x_field_write(priv, F_SOFT_RESET, 1); + int ret; + + regcache_cache_bypass(priv->regmap, true); + ret = sx130x_field_write(priv, F_SOFT_RESET, 1); + regcache_cache_bypass(priv->regmap, false); + if (ret) + return ret; + + regcache_mark_dirty(priv->regmap); + if (sx130x_regmap_config.cache_type != REGCACHE_NONE) + return regcache_drop_region(priv->regmap, + 0, sx130x_regmap_config.max_register); + return 0; } static int sx130x_agc_ram_read(struct sx130x_priv *priv, u8 addr, unsigned int *val) From patchwork Sun Jan 6 08:37:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andreas_F=C3=A4rber?= X-Patchwork-Id: 1021053 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43XX400vzPz9sDL for ; Sun, 6 Jan 2019 19:38:40 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726553AbfAFIiG (ORCPT ); Sun, 6 Jan 2019 03:38:06 -0500 Received: from mx2.suse.de ([195.135.220.15]:57222 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726508AbfAFIiF (ORCPT ); Sun, 6 Jan 2019 03:38:05 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 1C747ACFA; Sun, 6 Jan 2019 08:38:04 +0000 (UTC) From: =?utf-8?q?Andreas_F=C3=A4rber?= To: linux-lpwan@lists.infradead.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Andrea?= =?utf-8?b?cyBGw6RyYmVy?= , Ben Whitten , "David S. Miller" Subject: [PATCH lora-next 05/11] net: lora: sx130x: Fix regmap field toggles Date: Sun, 6 Jan 2019 09:37:48 +0100 Message-Id: <20190106083754.6004-6-afaerber@suse.de> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190106083754.6004-1-afaerber@suse.de> References: <20190106083754.6004-1-afaerber@suse.de> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When toggling the value of a regmap field, such as for F_RADIO_RST or F_EMERGENCY_FORCE_HOST_CTRL, we need to ensure it gets written out. Sadly the timing of the writes got lost in the regmap field conversion. Introduce an sx130x_field_force_write() helper for this. While at it, make trivial sx130x_field_write() static inline, too. Cc: Ben Whitten Signed-off-by: Andreas Färber --- drivers/net/lora/sx130x.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/net/lora/sx130x.c b/drivers/net/lora/sx130x.c index 4ba02836a35d..457f2396d9ee 100644 --- a/drivers/net/lora/sx130x.c +++ b/drivers/net/lora/sx130x.c @@ -174,12 +174,18 @@ const struct regmap_config sx130x_regmap_config = { }; EXPORT_SYMBOL_GPL(sx130x_regmap_config); -static int sx130x_field_write(struct sx130x_priv *priv, +static inline int sx130x_field_write(struct sx130x_priv *priv, enum sx130x_fields field_id, u8 val) { return regmap_field_write(priv->regmap_fields[field_id], val); } +static inline int sx130x_field_force_write(struct sx130x_priv *priv, + enum sx130x_fields field_id, u8 val) +{ + return regmap_field_force_write(priv->regmap_fields[field_id], val); +} + static int sx130x_soft_reset(struct sx130x_priv *priv) { int ret; @@ -373,7 +379,7 @@ static int sx130x_agc_calibrate(struct sx130x_priv *priv) return -EIO; } - ret = sx130x_field_write(priv, F_EMERGENCY_FORCE_HOST_CTRL, 0); + ret = sx130x_field_force_write(priv, F_EMERGENCY_FORCE_HOST_CTRL, 0); if (ret) { dev_err(priv->dev, "emergency force failed\n"); return ret; @@ -694,7 +700,7 @@ int sx130x_probe(struct device *dev) msleep(500); - ret = sx130x_field_write(priv, F_RADIO_RST, 1); + ret = sx130x_field_force_write(priv, F_RADIO_RST, 1); if (ret) { dev_err(dev, "radio assert reset failed (%d)\n", ret); return ret; From patchwork Sun Jan 6 08:37:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andreas_F=C3=A4rber?= X-Patchwork-Id: 1021051 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43XX3n3wYgz9sCX for ; Sun, 6 Jan 2019 19:38:29 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726569AbfAFIiG (ORCPT ); Sun, 6 Jan 2019 03:38:06 -0500 Received: from mx2.suse.de ([195.135.220.15]:57230 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726529AbfAFIiF (ORCPT ); Sun, 6 Jan 2019 03:38:05 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 74E53AD17; Sun, 6 Jan 2019 08:38:04 +0000 (UTC) From: =?utf-8?q?Andreas_F=C3=A4rber?= To: linux-lpwan@lists.infradead.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Andrea?= =?utf-8?b?cyBGw6RyYmVy?= , Ben Whitten , "David S. Miller" Subject: [PATCH lora-next 06/11] net: lora: sx130x: Force regmap field write before sleep Date: Sun, 6 Jan 2019 09:37:49 +0100 Message-Id: <20190106083754.6004-7-afaerber@suse.de> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190106083754.6004-1-afaerber@suse.de> References: <20190106083754.6004-1-afaerber@suse.de> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Ensure timing is as expected by forcing a register write before waiting on its outcome. Cc: Ben Whitten Signed-off-by: Andreas Färber --- drivers/net/lora/sx130x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/lora/sx130x.c b/drivers/net/lora/sx130x.c index 457f2396d9ee..bc2d4b1165d8 100644 --- a/drivers/net/lora/sx130x.c +++ b/drivers/net/lora/sx130x.c @@ -692,7 +692,7 @@ int sx130x_probe(struct device *dev) return ret; } - ret = sx130x_field_write(priv, F_RADIO_B_EN, 1); + ret = sx130x_field_force_write(priv, F_RADIO_B_EN, 1); if (ret) { dev_err(dev, "radio B enable failed (%d)\n", ret); return ret; From patchwork Sun Jan 6 08:37:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andreas_F=C3=A4rber?= X-Patchwork-Id: 1021055 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43XX4J2Xm1z9s9h for ; Sun, 6 Jan 2019 19:38:56 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726700AbfAFIiu (ORCPT ); Sun, 6 Jan 2019 03:38:50 -0500 Received: from mx2.suse.de ([195.135.220.15]:57236 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726477AbfAFIiG (ORCPT ); Sun, 6 Jan 2019 03:38:06 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id CA9FAADF2; Sun, 6 Jan 2019 08:38:04 +0000 (UTC) From: =?utf-8?q?Andreas_F=C3=A4rber?= To: linux-lpwan@lists.infradead.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Andrea?= =?utf-8?b?cyBGw6RyYmVy?= , Ben Whitten , "David S. Miller" Subject: [PATCH lora-next 07/11] net: lora: sx130x: Force regmap field writes before function boundaries Date: Sun, 6 Jan 2019 09:37:50 +0100 Message-Id: <20190106083754.6004-8-afaerber@suse.de> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190106083754.6004-1-afaerber@suse.de> References: <20190106083754.6004-1-afaerber@suse.de> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org As a cautionary step, force writing out registers before calling helpers or returning. Cc: Ben Whitten Signed-off-by: Andreas Färber --- drivers/net/lora/sx130x.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/lora/sx130x.c b/drivers/net/lora/sx130x.c index bc2d4b1165d8..a0759e277574 100644 --- a/drivers/net/lora/sx130x.c +++ b/drivers/net/lora/sx130x.c @@ -315,7 +315,7 @@ static int sx130x_load_firmware(struct sx130x_priv *priv, int mcu, const struct kfree(buf); - ret = sx130x_field_write(priv, select_mux, 1); + ret = sx130x_field_force_write(priv, select_mux, 1); if (ret) { dev_err(priv->dev, "MCU RAM release mux failed\n"); return ret; @@ -359,7 +359,7 @@ static int sx130x_agc_calibrate(struct sx130x_priv *priv) return ret; } - ret = sx130x_field_write(priv, F_MCU_RST_1, 0); + ret = sx130x_field_force_write(priv, F_MCU_RST_1, 0); if (ret) { dev_err(priv->dev, "MCU 1 reset failed\n"); return ret; @@ -459,7 +459,7 @@ static int sx130x_load_all_firmware(struct sx130x_priv *priv) return ret; } - ret = sx130x_field_write(priv, F_MCU_RST_1, 0); + ret = sx130x_field_force_write(priv, F_MCU_RST_1, 0); if (ret) { dev_err(priv->dev, "MCU 1 release failed\n"); return ret; @@ -542,7 +542,7 @@ static int sx130x_loradev_open(struct net_device *netdev) goto err_reg; } - ret = sx130x_field_write(priv, F_CLK32M_EN, 1); + ret = sx130x_field_force_write(priv, F_CLK32M_EN, 1); if (ret) { dev_err(priv->dev, "enable 32M clock failed (%d)\n", ret); goto err_reg; @@ -708,7 +708,7 @@ int sx130x_probe(struct device *dev) msleep(5); - ret = sx130x_field_write(priv, F_RADIO_RST, 0); + ret = sx130x_field_force_write(priv, F_RADIO_RST, 0); if (ret) { dev_err(dev, "radio deassert reset failed (%d)\n", ret); return ret; From patchwork Sun Jan 6 08:37:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andreas_F=C3=A4rber?= X-Patchwork-Id: 1021054 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43XX406QHsz9sCX for ; Sun, 6 Jan 2019 19:38:40 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726673AbfAFIij (ORCPT ); Sun, 6 Jan 2019 03:38:39 -0500 Received: from mx2.suse.de ([195.135.220.15]:57244 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726537AbfAFIiG (ORCPT ); Sun, 6 Jan 2019 03:38:06 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 31AF1AE24; Sun, 6 Jan 2019 08:38:05 +0000 (UTC) From: =?utf-8?q?Andreas_F=C3=A4rber?= To: linux-lpwan@lists.infradead.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Andrea?= =?utf-8?b?cyBGw6RyYmVy?= , Ben Whitten , "David S. Miller" Subject: [PATCH lora-next 08/11] net: lora: sx130x: Force regmap field write before reading status Date: Sun, 6 Jan 2019 09:37:51 +0100 Message-Id: <20190106083754.6004-9-afaerber@suse.de> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190106083754.6004-1-afaerber@suse.de> References: <20190106083754.6004-1-afaerber@suse.de> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Ensure that the F_FORCE_HOST_RADIO_CTRL field gets written before we read the AGC status register. Otherwise it returns status 01 instead of 87. Cc: Ben Whitten Signed-off-by: Andreas Färber --- drivers/net/lora/sx130x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/lora/sx130x.c b/drivers/net/lora/sx130x.c index a0759e277574..0a79548a7480 100644 --- a/drivers/net/lora/sx130x.c +++ b/drivers/net/lora/sx130x.c @@ -343,7 +343,7 @@ static int sx130x_agc_calibrate(struct sx130x_priv *priv) return ret; } - ret = sx130x_field_write(priv, F_FORCE_HOST_RADIO_CTRL, 0); + ret = sx130x_field_force_write(priv, F_FORCE_HOST_RADIO_CTRL, 0); if (ret) { dev_err(priv->dev, "force host control failed\n"); return ret; From patchwork Sun Jan 6 08:37:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andreas_F=C3=A4rber?= X-Patchwork-Id: 1021052 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43XX3v3fGjz9sCX for ; Sun, 6 Jan 2019 19:38:35 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726653AbfAFIib (ORCPT ); Sun, 6 Jan 2019 03:38:31 -0500 Received: from mx2.suse.de ([195.135.220.15]:57222 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726538AbfAFIiG (ORCPT ); Sun, 6 Jan 2019 03:38:06 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 8FBE7AE26; Sun, 6 Jan 2019 08:38:05 +0000 (UTC) From: =?utf-8?q?Andreas_F=C3=A4rber?= To: linux-lpwan@lists.infradead.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Andrea?= =?utf-8?b?cyBGw6RyYmVy?= , Ben Whitten , "David S. Miller" Subject: [PATCH lora-next 09/11] net: lora: sx130x: Mark AGCSTS register as volatile Date: Sun, 6 Jan 2019 09:37:52 +0100 Message-Id: <20190106083754.6004-10-afaerber@suse.de> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190106083754.6004-1-afaerber@suse.de> References: <20190106083754.6004-1-afaerber@suse.de> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org AGC status register reads should not be cached. Sort the volatile registers by number while at it. Cc: Ben Whitten Signed-off-by: Andreas Färber --- drivers/net/lora/sx130x.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/lora/sx130x.c b/drivers/net/lora/sx130x.c index 0a79548a7480..8bdd343a273f 100644 --- a/drivers/net/lora/sx130x.c +++ b/drivers/net/lora/sx130x.c @@ -123,11 +123,13 @@ static const struct regmap_range_cfg sx130x_regmap_ranges[] = { static bool sx130x_volatile_reg(struct device *dev, unsigned int reg) { switch (reg) { - case SX1301_DBG_AGC_MCU_RAM_DATA: - case SX1301_DBG_ARB_MCU_RAM_DATA: case SX1301_MPD: + case SX1301_AGCSTS: + case SX1301_RADIO_A_SPI_DATA_RB: case SX1301_RADIO_B_SPI_DATA_RB: + case SX1301_DBG_ARB_MCU_RAM_DATA: + case SX1301_DBG_AGC_MCU_RAM_DATA: return true; default: return false; From patchwork Sun Jan 6 08:37:53 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andreas_F=C3=A4rber?= X-Patchwork-Id: 1021049 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43XX3h0pstz9s7h for ; Sun, 6 Jan 2019 19:38:24 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726620AbfAFIiN (ORCPT ); Sun, 6 Jan 2019 03:38:13 -0500 Received: from mx2.suse.de ([195.135.220.15]:57230 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726548AbfAFIiG (ORCPT ); Sun, 6 Jan 2019 03:38:06 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id E630AAE83; Sun, 6 Jan 2019 08:38:05 +0000 (UTC) From: =?utf-8?q?Andreas_F=C3=A4rber?= To: linux-lpwan@lists.infradead.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Andrea?= =?utf-8?b?cyBGw6RyYmVy?= , Ben Whitten , "David S. Miller" Subject: [PATCH lora-next 10/11] net: lora: sx130x: Mark MCU_CTRL register as volatile Date: Sun, 6 Jan 2019 09:37:53 +0100 Message-Id: <20190106083754.6004-11-afaerber@suse.de> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190106083754.6004-1-afaerber@suse.de> References: <20190106083754.6004-1-afaerber@suse.de> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org For reasons as of yet unknown, this is necessary to unbreak ARB firmware version check. Cc: Ben Whitten Signed-off-by: Andreas Färber --- drivers/net/lora/sx130x.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/lora/sx130x.c b/drivers/net/lora/sx130x.c index 8bdd343a273f..76ce072a540a 100644 --- a/drivers/net/lora/sx130x.c +++ b/drivers/net/lora/sx130x.c @@ -126,6 +126,8 @@ static bool sx130x_volatile_reg(struct device *dev, unsigned int reg) case SX1301_MPD: case SX1301_AGCSTS: + case SX1301_MCU_CTRL: + case SX1301_RADIO_A_SPI_DATA_RB: case SX1301_RADIO_B_SPI_DATA_RB: case SX1301_DBG_ARB_MCU_RAM_DATA: From patchwork Sun Jan 6 08:37:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andreas_F=C3=A4rber?= X-Patchwork-Id: 1021050 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43XX3k3Xfcz9s7h for ; Sun, 6 Jan 2019 19:38:26 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726609AbfAFIiM (ORCPT ); Sun, 6 Jan 2019 03:38:12 -0500 Received: from mx2.suse.de ([195.135.220.15]:57236 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726568AbfAFIiH (ORCPT ); Sun, 6 Jan 2019 03:38:07 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 4C413AEA3; Sun, 6 Jan 2019 08:38:06 +0000 (UTC) From: =?utf-8?q?Andreas_F=C3=A4rber?= To: linux-lpwan@lists.infradead.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, =?utf-8?q?Andrea?= =?utf-8?b?cyBGw6RyYmVy?= , Ben Whitten , "David S. Miller" Subject: [PATCH lora-next 11/11] net: lora: sx130x: Enable regmap caching Date: Sun, 6 Jan 2019 09:37:54 +0100 Message-Id: <20190106083754.6004-12-afaerber@suse.de> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190106083754.6004-1-afaerber@suse.de> References: <20190106083754.6004-1-afaerber@suse.de> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org To fix performance penalties compared to pre-regmap field code, enable caching. Note: This has been tested to not regress on spi-gpio, with no improvement on spi-sun6i for clk_prepare() locking issue. Cc: Ben Whitten Signed-off-by: Andreas Färber --- drivers/net/lora/sx130x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/lora/sx130x.c b/drivers/net/lora/sx130x.c index 76ce072a540a..2fb18d0c9db5 100644 --- a/drivers/net/lora/sx130x.c +++ b/drivers/net/lora/sx130x.c @@ -162,7 +162,7 @@ const struct regmap_config sx130x_regmap_config = { .reg_bits = 8, .val_bits = 8, - .cache_type = REGCACHE_NONE, + .cache_type = REGCACHE_RBTREE, .disable_locking = true, .read_flag_mask = 0,