rsi: add version information
PATCH v2 1/1 rsi: add version information
From: Pavani Muthyala <[email protected]>
We will dump information about firmware version, firmware file name and operating mode during initialization.
Signed-off-by Pavani Muthyala <[email protected]>
Signed-off-by Amitkumar Karwar <[email protected]>
---
v2: Removed driver version information.(Kalle Valo)
--- drivers/net/wireless/rsi/rsi_91x_debugfs.c | 19 ++++++------------- drivers/net/wireless/rsi/rsi_91x_hal.c | 13 +++++++++++++ drivers/net/wireless/rsi/rsi_91x_main.c | 25 +++++++++++++++++++++++++ drivers/net/wireless/rsi/rsi_hal.h | 3 +++ drivers/net/wireless/rsi/rsi_main.h | 14 ++++++++++---- 5 files changed, 57 insertions(+), 17 deletions(-)
drivers/net/wireless/rsi/rsi_91x_debugfs.c +6 -13
@@ -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 ; }
drivers/net/wireless/rsi/rsi_91x_hal.c +13 -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,
drivers/net/wireless/rsi/rsi_91x_main.c +25 -0
@@ -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.
drivers/net/wireless/rsi/rsi_hal.h +3 -0
@@ -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;
drivers/net/wireless/rsi/rsi_main.h +10 -4
@@ -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);
Signature · 1 line
2.7.4
Quoted 7 lines · Amitkumar Karwar
From: Pavani Muthyala <[email protected]>
We will dump information about firmware version, firmware file name and operating mode during initialization.
Signed-off-by Pavani Muthyala <[email protected]>Signed-off-by Amitkumar Karwar <[email protected]>
Patch applied to wireless-drivers-next.git, thanks.
192524a4992a rsi: add version information
Signature · 3 lines
https://patchwork.kernel.org/patch/9963891/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches