We just pass the pointer to firmware down to the function that loads
it.

Signed-off-by: Ben Whitten <ben.whit...@lairdtech.com>
---
 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

Reply via email to