Commit 283e8c42 authored by Luciano Coelho's avatar Luciano Coelho

wl18xx: print the PHY firmware version from the private static data

The wl18xx firmware writes the PHY firmware version in the static
data.  Add an operation to parse the static data and print the PHY
firmware version when booting.
Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
Signed-off-by: default avatarArik Nemtsov <arik@wizery.com>
parent 7140df6e
...@@ -1016,6 +1016,17 @@ static int wl18xx_debugfs_init(struct wl1271 *wl, struct dentry *rootdir) ...@@ -1016,6 +1016,17 @@ static int wl18xx_debugfs_init(struct wl1271 *wl, struct dentry *rootdir)
return wl18xx_debugfs_add_files(wl, rootdir); return wl18xx_debugfs_add_files(wl, rootdir);
} }
static int wl18xx_handle_static_data(struct wl1271 *wl,
struct wl1271_static_data *static_data)
{
struct wl18xx_static_data_priv *static_data_priv =
(struct wl18xx_static_data_priv *) static_data->priv;
wl1271_info("PHY firmware version: %s", static_data_priv->phy_version);
return 0;
}
static struct wlcore_ops wl18xx_ops = { static struct wlcore_ops wl18xx_ops = {
.identify_chip = wl18xx_identify_chip, .identify_chip = wl18xx_identify_chip,
.boot = wl18xx_boot, .boot = wl18xx_boot,
...@@ -1037,6 +1048,7 @@ static struct wlcore_ops wl18xx_ops = { ...@@ -1037,6 +1048,7 @@ static struct wlcore_ops wl18xx_ops = {
.ap_get_mimo_wide_rate_mask = wl18xx_ap_get_mimo_wide_rate_mask, .ap_get_mimo_wide_rate_mask = wl18xx_ap_get_mimo_wide_rate_mask,
.get_mac = wl18xx_get_mac, .get_mac = wl18xx_get_mac,
.debugfs_init = wl18xx_debugfs_init, .debugfs_init = wl18xx_debugfs_init,
.handle_static_data = wl18xx_handle_static_data,
}; };
/* HT cap appropriate for wide channels */ /* HT cap appropriate for wide channels */
...@@ -1092,6 +1104,7 @@ int __devinit wl18xx_probe(struct platform_device *pdev) ...@@ -1092,6 +1104,7 @@ int __devinit wl18xx_probe(struct platform_device *pdev)
wl->hw_min_ht_rate = WL18XX_CONF_HW_RXTX_RATE_MCS0; wl->hw_min_ht_rate = WL18XX_CONF_HW_RXTX_RATE_MCS0;
wl->fw_status_priv_len = sizeof(struct wl18xx_fw_status_priv); wl->fw_status_priv_len = sizeof(struct wl18xx_fw_status_priv);
wl->stats.fw_stats_len = sizeof(struct wl18xx_acx_statistics); wl->stats.fw_stats_len = sizeof(struct wl18xx_acx_statistics);
wl->static_data_priv_len = sizeof(struct wl18xx_static_data_priv);
memcpy(&wl->ht_cap, &wl18xx_ht_cap, sizeof(wl18xx_ht_cap)); memcpy(&wl->ht_cap, &wl18xx_ht_cap, sizeof(wl18xx_ht_cap));
if (ht_mode_param && !strcmp(ht_mode_param, "mimo")) if (ht_mode_param && !strcmp(ht_mode_param, "mimo"))
memcpy(&wl->ht_cap, &wl18xx_mimo_ht_cap, memcpy(&wl->ht_cap, &wl18xx_mimo_ht_cap,
......
...@@ -56,6 +56,12 @@ struct wl18xx_fw_status_priv { ...@@ -56,6 +56,12 @@ struct wl18xx_fw_status_priv {
u8 padding[2]; u8 padding[2];
}; };
#define WL18XX_PHY_VERSION_MAX_LEN 20
struct wl18xx_static_data_priv {
char phy_version[WL18XX_PHY_VERSION_MAX_LEN];
};
struct wl18xx_clk_cfg { struct wl18xx_clk_cfg {
u32 n; u32 n;
u32 m; u32 m;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment