rsi: add version information
We will dump information about firmware version, firmware file name and operating mode during initialization. Signed-off-by: Pavani Muthyala <pavani.muthyala@redpinesignals.com> Signed-off-by: Amitkumar Karwar <amit.karwar@redpinesignals.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
7dfb0ebd02
commit
192524a499
@ -83,19 +83,12 @@ static int rsi_version_read(struct seq_file *seq, void *data)
|
||||
{
|
||||
struct rsi_common *common = seq->private;
|
||||
|
||||
common->driver_ver.major = 0;
|
||||
common->driver_ver.minor = 1;
|
||||
common->driver_ver.release_num = 0;
|
||||
common->driver_ver.patch_num = 0;
|
||||
seq_printf(seq, "Driver : %x.%d.%d.%d\nLMAC : %d.%d.%d.%d\n",
|
||||
common->driver_ver.major,
|
||||
common->driver_ver.minor,
|
||||
common->driver_ver.release_num,
|
||||
common->driver_ver.patch_num,
|
||||
common->fw_ver.major,
|
||||
common->fw_ver.minor,
|
||||
common->fw_ver.release_num,
|
||||
common->fw_ver.patch_num);
|
||||
seq_printf(seq, "LMAC : %d.%d.%d.%d\n",
|
||||
common->lmac_ver.major,
|
||||
common->lmac_ver.minor,
|
||||
common->lmac_ver.release_num,
|
||||
common->lmac_ver.patch_num);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -769,6 +769,7 @@ static int auto_fw_upgrade(struct rsi_hw *adapter, u8 *flash_content,
|
||||
|
||||
static int rsi_load_firmware(struct rsi_hw *adapter)
|
||||
{
|
||||
struct rsi_common *common = adapter->priv;
|
||||
struct rsi_host_intf_ops *hif_ops = adapter->host_intf_ops;
|
||||
const struct firmware *fw_entry = NULL;
|
||||
u32 regout_val = 0, content_size;
|
||||
@ -844,6 +845,18 @@ static int rsi_load_firmware(struct rsi_hw *adapter)
|
||||
content_size = fw_entry->size;
|
||||
rsi_dbg(INFO_ZONE, "FW Length = %d bytes\n", content_size);
|
||||
|
||||
/* Get the firmware version */
|
||||
common->lmac_ver.ver.info.fw_ver[0] =
|
||||
flash_content[LMAC_VER_OFFSET] & 0xFF;
|
||||
common->lmac_ver.ver.info.fw_ver[1] =
|
||||
flash_content[LMAC_VER_OFFSET + 1] & 0xFF;
|
||||
common->lmac_ver.major = flash_content[LMAC_VER_OFFSET + 2] & 0xFF;
|
||||
common->lmac_ver.release_num =
|
||||
flash_content[LMAC_VER_OFFSET + 3] & 0xFF;
|
||||
common->lmac_ver.minor = flash_content[LMAC_VER_OFFSET + 4] & 0xFF;
|
||||
common->lmac_ver.patch_num = 0;
|
||||
rsi_print_version(common);
|
||||
|
||||
status = bl_write_header(adapter, flash_content, content_size);
|
||||
if (status) {
|
||||
rsi_dbg(ERR_ZONE,
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include <linux/firmware.h>
|
||||
#include "rsi_mgmt.h"
|
||||
#include "rsi_common.h"
|
||||
#include "rsi_hal.h"
|
||||
|
||||
u32 rsi_zone_enabled = /* INFO_ZONE |
|
||||
INIT_ZONE |
|
||||
@ -56,6 +57,30 @@ void rsi_dbg(u32 zone, const char *fmt, ...)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(rsi_dbg);
|
||||
|
||||
static char *opmode_str(int oper_mode)
|
||||
{
|
||||
switch (oper_mode) {
|
||||
case RSI_DEV_OPMODE_WIFI_ALONE:
|
||||
return "Wi-Fi alone";
|
||||
}
|
||||
|
||||
return "Unknown";
|
||||
}
|
||||
|
||||
void rsi_print_version(struct rsi_common *common)
|
||||
{
|
||||
rsi_dbg(ERR_ZONE, "================================================\n");
|
||||
rsi_dbg(ERR_ZONE, "================ RSI Version Info ==============\n");
|
||||
rsi_dbg(ERR_ZONE, "================================================\n");
|
||||
rsi_dbg(ERR_ZONE, "FW Version\t: %d.%d.%d\n",
|
||||
common->lmac_ver.major, common->lmac_ver.minor,
|
||||
common->lmac_ver.release_num);
|
||||
rsi_dbg(ERR_ZONE, "Operating mode\t: %d [%s]",
|
||||
common->oper_mode, opmode_str(common->oper_mode));
|
||||
rsi_dbg(ERR_ZONE, "Firmware file\t: %s", common->priv->fw_file_name);
|
||||
rsi_dbg(ERR_ZONE, "================================================\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* rsi_prepare_skb() - This function prepares the skb.
|
||||
* @common: Pointer to the driver private structure.
|
||||
|
@ -101,6 +101,9 @@
|
||||
|
||||
#define BBP_INFO_40MHZ 0x6
|
||||
|
||||
#define FW_FLASH_OFFSET 0x820
|
||||
#define LMAC_VER_OFFSET (FW_FLASH_OFFSET + 0x200)
|
||||
|
||||
struct bl_header {
|
||||
__le32 flags;
|
||||
__le32 image_no;
|
||||
|
@ -113,8 +113,13 @@ extern __printf(2, 3) void rsi_dbg(u32 zone, const char *fmt, ...);
|
||||
struct version_info {
|
||||
u16 major;
|
||||
u16 minor;
|
||||
u16 release_num;
|
||||
u16 patch_num;
|
||||
u8 release_num;
|
||||
u8 patch_num;
|
||||
union {
|
||||
struct {
|
||||
u8 fw_ver[8];
|
||||
} info;
|
||||
} ver;
|
||||
} __packed;
|
||||
|
||||
struct skb_info {
|
||||
@ -199,8 +204,7 @@ struct rsi_common {
|
||||
struct vif_priv vif_info[RSI_MAX_VIFS];
|
||||
|
||||
bool mgmt_q_block;
|
||||
struct version_info driver_ver;
|
||||
struct version_info fw_ver;
|
||||
struct version_info lmac_ver;
|
||||
|
||||
struct rsi_thread tx_thread;
|
||||
struct sk_buff_head tx_queue[NUM_EDCA_QUEUES + 2];
|
||||
@ -334,6 +338,8 @@ struct rsi_hw {
|
||||
int (*determine_event_timeout)(struct rsi_hw *adapter);
|
||||
};
|
||||
|
||||
void rsi_print_version(struct rsi_common *common);
|
||||
|
||||
struct rsi_host_intf_ops {
|
||||
int (*read_pkt)(struct rsi_hw *adapter, u8 *pkt, u32 len);
|
||||
int (*write_pkt)(struct rsi_hw *adapter, u8 *pkt, u32 len);
|
||||
|
Loading…
Reference in New Issue
Block a user