From patchwork Tue Aug 7 17:32:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Whitten X-Patchwork-Id: 954600 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=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="djoc9E4X"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41lM6D3681z9rvt for ; Wed, 8 Aug 2018 03:32:36 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389715AbeHGTr5 (ORCPT ); Tue, 7 Aug 2018 15:47:57 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:41093 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389712AbeHGTr4 (ORCPT ); Tue, 7 Aug 2018 15:47:56 -0400 Received: by mail-wr1-f67.google.com with SMTP id j5-v6so16517978wrr.8 for ; Tue, 07 Aug 2018 10:32:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=ku+YNsPkDcmm8KGrIQIicGRM797KBrbjb3eeHeTbovo=; b=djoc9E4XOEh6Q2tAiCbOZVhAo8zBAr6kG/7/RpZDOzF9GK7xhNl2aKETai9hH14W+x TzZ0vwwH099terCWdTX2E1Ursk4Q+xG6C9SJ5NjHYsGG9Qi3V6cKBDpYu5VE2yAgoWR7 mXObMrlK9xgxd7odsvz5aQp6sa5ZNkFS4elnD6SAETVauhU2SWeTRHKYTf/vRi+5HKCf 4k9lksh6bRonvGyzpwvMqHPL1qD8r9jYzorslmkK2Grwn707TSWtxIrjyL74RKOc0c7v 2IJA2js+WigvLxv9RJgndGPLLr2fUsWwdiq1ZAJ9HJoOSehHHWqp4rzK1fd2C1pQ8GW8 qFbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=ku+YNsPkDcmm8KGrIQIicGRM797KBrbjb3eeHeTbovo=; b=LRx1nmoBQliQtI0qrepPmx11pTOmsbv7DR2ES2IprckKA2PmZffVgYBxzdrmhfbTPg U998G4r2pVjLxQz684XQOIv/Ygd7ucV9d8gjEDmZLtOS18zPkZ2EzlJUDQ6FB0MW7Gyf lBvltUrxEdvVfKEwCoweXp0x93AvtT85LdHtWbW14OCvbcTNcGXjsfr9kMhwdkOizXdZ 4H+5Av50qpgAkBymArUkSi2RbuYavORy3gZqGuHzyeaoeVPvr1mBUhJtI3Uz7Kp0ersc mp/lUGULS5begtnrKOAoSmLWyR2XNGwLPwx2eEREqq3xRQy67EA6ZnQXEiRfRWPByz+u 7Umw== X-Gm-Message-State: AOUpUlFfft4LV6zYVNcfSW7yet3C+wYjhceVhc7QSkZz61upM0L6F4yw /Ft8X9potxINNwXe7akyOA9V2qPWTGCy4A== X-Google-Smtp-Source: AAOMgpdFUxO0gHh3y5cdjgTGHv3hDQuQJmpkA0Px6rvUMgQmFO/oPNi4CcPpFmvtBYXcDLrFNferlw== X-Received: by 2002:adf:8103:: with SMTP id 3-v6mr13222822wrm.213.1533663153217; Tue, 07 Aug 2018 10:32:33 -0700 (PDT) Received: from Lappy.lan (196.98.125.91.dyn.plus.net. [91.125.98.196]) by smtp.gmail.com with ESMTPSA id m207-v6sm3234263wma.31.2018.08.07.10.32.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 07 Aug 2018 10:32:32 -0700 (PDT) From: Ben Whitten To: afaerber@suse.de, starnight@g.ncu.edu.tw, hasnain.virk@arm.com Cc: netdev@vger.kernel.org, Ben Whitten Subject: [PATCH lora-next 05/10] net: lora: sx1301: add device to private data and convert ram reads Date: Tue, 7 Aug 2018 18:32:06 +0100 Message-Id: <1533663131-16313-7-git-send-email-ben.whitten@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1533663131-16313-1-git-send-email-ben.whitten@gmail.com> References: <1533663131-16313-1-git-send-email-ben.whitten@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Ben Whitten It's easier to simply add a pointer to our device to our private data, this way we can avoid passing around our spi_device and instead just pass private data which is more flexible. As its a two line change its coupled with converting AGC and ARB ram reads to regmap functions. Signed-off-by: Ben Whitten --- drivers/net/lora/sx1301.c | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/drivers/net/lora/sx1301.c b/drivers/net/lora/sx1301.c index 118e8d8..249551b 100644 --- a/drivers/net/lora/sx1301.c +++ b/drivers/net/lora/sx1301.c @@ -283,6 +283,7 @@ struct spi_sx1301 { }; struct sx1301_priv { + struct device *dev; struct lora_priv lora; struct gpio_desc *rst_gpio; u8 cur_page; @@ -472,40 +473,44 @@ static int sx1301_radio_spi_transfer_one(struct spi_controller *ctrl, return 0; } -static int sx1301_agc_ram_read(struct spi_device *spi, u8 addr, u8 *val) +static int sx1301_agc_ram_read(struct sx1301_priv *priv, u8 addr, u8 *val) { int ret; + unsigned int read; - ret = sx1301_page_write(spi, 2, REG_2_DBG_AGC_MCU_RAM_ADDR, addr); + ret = regmap_write(priv->regmap, SX1301_DBG_AGC_MCU_RAM_ADDR, addr); if (ret) { - dev_err(&spi->dev, "AGC RAM addr write failed\n"); + dev_err(priv->dev, "AGC RAM addr write failed\n"); return ret; } - ret = sx1301_page_read(spi, 2, REG_2_DBG_AGC_MCU_RAM_DATA, val); + ret = regmap_read(priv->regmap, SX1301_DBG_AGC_MCU_RAM_DATA, &read); if (ret) { - dev_err(&spi->dev, "AGC RAM data read failed\n"); + dev_err(priv->dev, "AGC RAM data read failed\n"); return ret; } + *val = read; return 0; } -static int sx1301_arb_ram_read(struct spi_device *spi, u8 addr, u8 *val) +static int sx1301_arb_ram_read(struct sx1301_priv *priv, u8 addr, u8 *val) { int ret; + unsigned int read; - ret = sx1301_page_write(spi, 2, REG_2_DBG_ARB_MCU_RAM_ADDR, addr); + ret = regmap_write(priv->regmap, SX1301_DBG_ARB_MCU_RAM_ADDR, addr); if (ret) { - dev_err(&spi->dev, "ARB RAM addr write failed\n"); + dev_err(priv->dev, "ARB RAM addr write failed\n"); return ret; } - ret = sx1301_page_read(spi, 2, REG_2_DBG_ARB_MCU_RAM_DATA, val); + ret = regmap_read(priv->regmap, SX1301_DBG_ARB_MCU_RAM_DATA, &read); if (ret) { - dev_err(&spi->dev, "ARB RAM data read failed\n"); + dev_err(priv->dev, "ARB RAM data read failed\n"); return ret; } + *val = read; return 0; } @@ -604,6 +609,7 @@ static int sx1301_load_firmware(struct spi_device *spi, int mcu, const u8 *data, static int sx1301_agc_calibrate(struct spi_device *spi) { const struct firmware *fw; + struct sx1301_priv *priv = spi_get_drvdata(spi); u8 val; int ret; @@ -663,7 +669,7 @@ static int sx1301_agc_calibrate(struct spi_device *spi) return ret; } - ret = sx1301_agc_ram_read(spi, 0x20, &val); + ret = sx1301_agc_ram_read(priv, 0x20, &val); if (ret) { dev_err(&spi->dev, "AGC RAM data read failed\n"); return ret; @@ -730,6 +736,7 @@ static int sx1301_agc_calibrate(struct spi_device *spi) static int sx1301_load_all_firmware(struct spi_device *spi) { + struct sx1301_priv *priv = spi_get_drvdata(spi); const struct firmware *fw; u8 val; int ret; @@ -802,7 +809,7 @@ static int sx1301_load_all_firmware(struct spi_device *spi) return ret; } - ret = sx1301_agc_ram_read(spi, 0x20, &val); + ret = sx1301_agc_ram_read(priv, 0x20, &val); if (ret) { dev_err(&spi->dev, "AGC RAM data read failed\n"); return ret; @@ -815,7 +822,7 @@ static int sx1301_load_all_firmware(struct spi_device *spi) return -ENXIO; } - ret = sx1301_arb_ram_read(spi, 0x20, &val); + ret = sx1301_arb_ram_read(priv, 0x20, &val); if (ret) { dev_err(&spi->dev, "ARB RAM data read failed\n"); return ret; @@ -878,6 +885,7 @@ static int sx1301_probe(struct spi_device *spi) spi_set_drvdata(spi, netdev); SET_NETDEV_DEV(netdev, &spi->dev); + priv->dev = &spi->dev; priv->regmap = devm_regmap_init_spi(spi, &sx1301_regmap_config); if (IS_ERR(priv->regmap)) {