qtnfmac: get more hardware info from card
Various bits of hardware and firmware versions are useful for debug and troubleshooting. Get more information from the wireless card. Signed-off-by: Vasily Ulyanov <vulyanov@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
04b01affb8
commit
5ec5b532da
|
@ -949,6 +949,16 @@ qtnf_cmd_resp_proc_hw_info(struct qtnf_bus *bus,
|
||||||
struct qtnf_hw_info *hwinfo = &bus->hw_info;
|
struct qtnf_hw_info *hwinfo = &bus->hw_info;
|
||||||
const struct qlink_tlv_hdr *tlv;
|
const struct qlink_tlv_hdr *tlv;
|
||||||
const struct qlink_tlv_reg_rule *tlv_rule;
|
const struct qlink_tlv_reg_rule *tlv_rule;
|
||||||
|
const char *bld_name = NULL;
|
||||||
|
const char *bld_rev = NULL;
|
||||||
|
const char *bld_type = NULL;
|
||||||
|
const char *bld_label = NULL;
|
||||||
|
u32 bld_tmstamp = 0;
|
||||||
|
u32 plat_id = 0;
|
||||||
|
const char *hw_id = NULL;
|
||||||
|
const char *calibration_ver = NULL;
|
||||||
|
const char *uboot_ver = NULL;
|
||||||
|
u32 hw_ver = 0;
|
||||||
struct ieee80211_reg_rule *rule;
|
struct ieee80211_reg_rule *rule;
|
||||||
u16 tlv_type;
|
u16 tlv_type;
|
||||||
u16 tlv_value_len;
|
u16 tlv_value_len;
|
||||||
|
@ -975,6 +985,10 @@ qtnf_cmd_resp_proc_hw_info(struct qtnf_bus *bus,
|
||||||
hwinfo->rd->alpha2[0] = resp->alpha2[0];
|
hwinfo->rd->alpha2[0] = resp->alpha2[0];
|
||||||
hwinfo->rd->alpha2[1] = resp->alpha2[1];
|
hwinfo->rd->alpha2[1] = resp->alpha2[1];
|
||||||
|
|
||||||
|
bld_tmstamp = le32_to_cpu(resp->bld_tmstamp);
|
||||||
|
plat_id = le32_to_cpu(resp->plat_id);
|
||||||
|
hw_ver = le32_to_cpu(resp->hw_ver);
|
||||||
|
|
||||||
switch (resp->dfs_region) {
|
switch (resp->dfs_region) {
|
||||||
case QLINK_DFS_FCC:
|
case QLINK_DFS_FCC:
|
||||||
hwinfo->rd->dfs_region = NL80211_DFS_FCC;
|
hwinfo->rd->dfs_region = NL80211_DFS_FCC;
|
||||||
|
@ -1035,6 +1049,27 @@ qtnf_cmd_resp_proc_hw_info(struct qtnf_bus *bus,
|
||||||
rule->flags = qtnf_cmd_resp_reg_rule_flags_parse(
|
rule->flags = qtnf_cmd_resp_reg_rule_flags_parse(
|
||||||
le32_to_cpu(tlv_rule->flags));
|
le32_to_cpu(tlv_rule->flags));
|
||||||
break;
|
break;
|
||||||
|
case QTN_TLV_ID_BUILD_NAME:
|
||||||
|
bld_name = (const void *)tlv->val;
|
||||||
|
break;
|
||||||
|
case QTN_TLV_ID_BUILD_REV:
|
||||||
|
bld_rev = (const void *)tlv->val;
|
||||||
|
break;
|
||||||
|
case QTN_TLV_ID_BUILD_TYPE:
|
||||||
|
bld_type = (const void *)tlv->val;
|
||||||
|
break;
|
||||||
|
case QTN_TLV_ID_BUILD_LABEL:
|
||||||
|
bld_label = (const void *)tlv->val;
|
||||||
|
break;
|
||||||
|
case QTN_TLV_ID_HW_ID:
|
||||||
|
hw_id = (const void *)tlv->val;
|
||||||
|
break;
|
||||||
|
case QTN_TLV_ID_CALIBRATION_VER:
|
||||||
|
calibration_ver = (const void *)tlv->val;
|
||||||
|
break;
|
||||||
|
case QTN_TLV_ID_UBOOT_VER:
|
||||||
|
uboot_ver = (const void *)tlv->val;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1057,6 +1092,21 @@ qtnf_cmd_resp_proc_hw_info(struct qtnf_bus *bus,
|
||||||
hwinfo->total_tx_chain, hwinfo->total_rx_chain,
|
hwinfo->total_tx_chain, hwinfo->total_rx_chain,
|
||||||
hwinfo->hw_capab);
|
hwinfo->hw_capab);
|
||||||
|
|
||||||
|
pr_info("\nBuild name: %s" \
|
||||||
|
"\nBuild revision: %s" \
|
||||||
|
"\nBuild type: %s" \
|
||||||
|
"\nBuild label: %s" \
|
||||||
|
"\nBuild timestamp: %lu" \
|
||||||
|
"\nPlatform ID: %lu" \
|
||||||
|
"\nHardware ID: %s" \
|
||||||
|
"\nCalibration version: %s" \
|
||||||
|
"\nU-Boot version: %s" \
|
||||||
|
"\nHardware version: 0x%08x",
|
||||||
|
bld_name, bld_rev, bld_type, bld_label,
|
||||||
|
(unsigned long)bld_tmstamp,
|
||||||
|
(unsigned long)plat_id,
|
||||||
|
hw_id, calibration_ver, uboot_ver, hw_ver);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
#include <linux/ieee80211.h>
|
#include <linux/ieee80211.h>
|
||||||
|
|
||||||
#define QLINK_PROTO_VER 10
|
#define QLINK_PROTO_VER 11
|
||||||
|
|
||||||
#define QLINK_MACID_RSVD 0xFF
|
#define QLINK_MACID_RSVD 0xFF
|
||||||
#define QLINK_VIFID_RSVD 0xFF
|
#define QLINK_VIFID_RSVD 0xFF
|
||||||
|
@ -764,6 +764,9 @@ struct qlink_resp_get_hw_info {
|
||||||
struct qlink_resp rhdr;
|
struct qlink_resp rhdr;
|
||||||
__le32 fw_ver;
|
__le32 fw_ver;
|
||||||
__le32 hw_capab;
|
__le32 hw_capab;
|
||||||
|
__le32 bld_tmstamp;
|
||||||
|
__le32 plat_id;
|
||||||
|
__le32 hw_ver;
|
||||||
__le16 ql_proto_ver;
|
__le16 ql_proto_ver;
|
||||||
u8 num_mac;
|
u8 num_mac;
|
||||||
u8 mac_bitmap;
|
u8 mac_bitmap;
|
||||||
|
@ -1074,6 +1077,13 @@ enum qlink_tlv_id {
|
||||||
QTN_TLV_ID_IE_SET = 0x0305,
|
QTN_TLV_ID_IE_SET = 0x0305,
|
||||||
QTN_TLV_ID_EXT_CAPABILITY_MASK = 0x0306,
|
QTN_TLV_ID_EXT_CAPABILITY_MASK = 0x0306,
|
||||||
QTN_TLV_ID_ACL_DATA = 0x0307,
|
QTN_TLV_ID_ACL_DATA = 0x0307,
|
||||||
|
QTN_TLV_ID_BUILD_NAME = 0x0401,
|
||||||
|
QTN_TLV_ID_BUILD_REV = 0x0402,
|
||||||
|
QTN_TLV_ID_BUILD_TYPE = 0x0403,
|
||||||
|
QTN_TLV_ID_BUILD_LABEL = 0x0404,
|
||||||
|
QTN_TLV_ID_HW_ID = 0x0405,
|
||||||
|
QTN_TLV_ID_CALIBRATION_VER = 0x0406,
|
||||||
|
QTN_TLV_ID_UBOOT_VER = 0x0407,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct qlink_tlv_hdr {
|
struct qlink_tlv_hdr {
|
||||||
|
|
Loading…
Reference in New Issue