From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Whitten Subject: [PATCH lora-next v2 4/8] net: lora: sx1301: convert load_firmware to take firmware directly Date: Thu, 9 Aug 2018 13:33:34 +0100 Message-ID: <1533818018-29005-4-git-send-email-ben.whitten@lairdtech.com> References: <1533818018-29005-1-git-send-email-ben.whitten@lairdtech.com> Cc: starnight@g.ncu.edu.tw, hasnain.virk@arm.com, netdev@vger.kernel.org, liuxuenetmail@gmail.com, shess@hessware.de, Ben Whitten To: afaerber@suse.de Return-path: Received: from mail-wr1-f68.google.com ([209.85.221.68]:34067 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727786AbeHIO7S (ORCPT ); Thu, 9 Aug 2018 10:59:18 -0400 Received: by mail-wr1-f68.google.com with SMTP id c13-v6so5034437wrt.1 for ; Thu, 09 Aug 2018 05:34:36 -0700 (PDT) In-Reply-To: <1533818018-29005-1-git-send-email-ben.whitten@lairdtech.com> Sender: netdev-owner@vger.kernel.org List-ID: We just pass the pointer to firmware down to the function that loads it. Signed-off-by: Ben Whitten --- drivers/net/lora/sx1301.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/net/lora/sx1301.c b/drivers/net/lora/sx1301.c index 7324001..3f2a532 100644 --- a/drivers/net/lora/sx1301.c +++ b/drivers/net/lora/sx1301.c @@ -287,13 +287,13 @@ static int sx1301_arb_ram_read(struct sx1301_priv *priv, u8 addr, u8 *val) return 0; } -static int sx1301_load_firmware(struct sx1301_priv *priv, int mcu, const u8 *data, size_t len) +static int sx1301_load_firmware(struct sx1301_priv *priv, int mcu, const struct firmware *fw) { u8 *buf; u8 val, rst, select_mux; int ret; - if (len > 8192) + if (fw->size > 8192) return -EINVAL; switch (mcu) { @@ -330,7 +330,7 @@ static int sx1301_load_firmware(struct sx1301_priv *priv, int mcu, const u8 *dat return ret; } - ret = sx1301_write_burst(priv, REG_MCU_PROM_DATA, data, len); + ret = sx1301_write_burst(priv, REG_MCU_PROM_DATA, fw->data, fw->size); if (ret) { dev_err(priv->dev, "MCU prom data write failed\n"); return ret; @@ -342,18 +342,18 @@ static int sx1301_load_firmware(struct sx1301_priv *priv, int mcu, const u8 *dat return ret; } - buf = kzalloc(len, GFP_KERNEL); + buf = kzalloc(fw->size, GFP_KERNEL); if (!buf) return -ENOMEM; - ret = sx1301_read_burst(priv, REG_MCU_PROM_DATA, buf, len); + ret = sx1301_read_burst(priv, REG_MCU_PROM_DATA, buf, fw->size); if (ret) { dev_err(priv->dev, "MCU prom data read failed\n"); kfree(buf); return ret; } - if (memcmp(data, buf, len)) { + if (memcmp(fw->data, buf, fw->size)) { dev_err(priv->dev, "MCU prom data read does not match data written\n"); kfree(buf); return -ENXIO; @@ -395,7 +395,7 @@ static int sx1301_agc_calibrate(struct sx1301_priv *priv) return -EINVAL; } - ret = sx1301_load_firmware(priv, 1, fw->data, fw->size); + ret = sx1301_load_firmware(priv, 1, fw); release_firmware(fw); if (ret) { dev_err(priv->dev, "agc cal firmware load failed\n"); @@ -523,7 +523,7 @@ static int sx1301_load_all_firmware(struct sx1301_priv *priv) return -EINVAL; } - ret = sx1301_load_firmware(priv, 0, fw->data, fw->size); + ret = sx1301_load_firmware(priv, 0, fw); release_firmware(fw); if (ret) return ret; @@ -540,7 +540,7 @@ static int sx1301_load_all_firmware(struct sx1301_priv *priv) return -EINVAL; } - ret = sx1301_load_firmware(priv, 1, fw->data, fw->size); + ret = sx1301_load_firmware(priv, 1, fw); release_firmware(fw); if (ret) return ret; -- 2.7.4