diff options
author | Victor Goldenshtein <victorg@ti.com> | 2013-03-12 11:19:42 -0400 |
---|---|---|
committer | Luciano Coelho <coelho@ti.com> | 2013-03-25 06:33:12 -0400 |
commit | f9ae0852655b219095f45e26871c2e00805e6344 (patch) | |
tree | 17729f7a8cb29168569414ca5046b34a15df420a /drivers/net/wireless/ti/wl18xx/main.c | |
parent | c0ad2f2e66ffc46eb474d0060db9af254ed69177 (diff) |
wl18xx: print chip info during boot
Print board type, PG with metal and ROM versions.
This might help debugging HW related issues.
Signed-off-by: Victor Goldenshtein <victorg@ti.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/ti/wl18xx/main.c')
-rw-r--r-- | drivers/net/wireless/ti/wl18xx/main.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/drivers/net/wireless/ti/wl18xx/main.c b/drivers/net/wireless/ti/wl18xx/main.c index b670776f9bb2..9fa692d11025 100644 --- a/drivers/net/wireless/ti/wl18xx/main.c +++ b/drivers/net/wireless/ti/wl18xx/main.c | |||
@@ -1145,6 +1145,7 @@ static u32 wl18xx_ap_get_mimo_wide_rate_mask(struct wl1271 *wl, | |||
1145 | static int wl18xx_get_pg_ver(struct wl1271 *wl, s8 *ver) | 1145 | static int wl18xx_get_pg_ver(struct wl1271 *wl, s8 *ver) |
1146 | { | 1146 | { |
1147 | u32 fuse; | 1147 | u32 fuse; |
1148 | s8 rom = 0, metal = 0, pg_ver = 0, rdl_ver = 0; | ||
1148 | int ret; | 1149 | int ret; |
1149 | 1150 | ||
1150 | ret = wlcore_set_partition(wl, &wl->ptable[PART_TOP_PRCM_ELP_SOC]); | 1151 | ret = wlcore_set_partition(wl, &wl->ptable[PART_TOP_PRCM_ELP_SOC]); |
@@ -1155,8 +1156,29 @@ static int wl18xx_get_pg_ver(struct wl1271 *wl, s8 *ver) | |||
1155 | if (ret < 0) | 1156 | if (ret < 0) |
1156 | goto out; | 1157 | goto out; |
1157 | 1158 | ||
1159 | pg_ver = (fuse & WL18XX_PG_VER_MASK) >> WL18XX_PG_VER_OFFSET; | ||
1160 | rom = (fuse & WL18XX_ROM_VER_MASK) >> WL18XX_ROM_VER_OFFSET; | ||
1161 | |||
1162 | if (rom <= 0xE) | ||
1163 | metal = (fuse & WL18XX_METAL_VER_MASK) >> | ||
1164 | WL18XX_METAL_VER_OFFSET; | ||
1165 | else | ||
1166 | metal = (fuse & WL18XX_NEW_METAL_VER_MASK) >> | ||
1167 | WL18XX_NEW_METAL_VER_OFFSET; | ||
1168 | |||
1169 | ret = wlcore_read32(wl, WL18XX_REG_FUSE_DATA_2_3, &fuse); | ||
1170 | if (ret < 0) | ||
1171 | goto out; | ||
1172 | |||
1173 | rdl_ver = (fuse & WL18XX_RDL_VER_MASK) >> WL18XX_RDL_VER_OFFSET; | ||
1174 | if (rdl_ver > RDL_MAX) | ||
1175 | rdl_ver = RDL_NONE; | ||
1176 | |||
1177 | wl1271_info("wl18xx HW: RDL %d, %s, PG %x.%x (ROM %x)", | ||
1178 | rdl_ver, rdl_names[rdl_ver], pg_ver, metal, rom); | ||
1179 | |||
1158 | if (ver) | 1180 | if (ver) |
1159 | *ver = (fuse & WL18XX_PG_VER_MASK) >> WL18XX_PG_VER_OFFSET; | 1181 | *ver = pg_ver; |
1160 | 1182 | ||
1161 | ret = wlcore_set_partition(wl, &wl->ptable[PART_BOOT]); | 1183 | ret = wlcore_set_partition(wl, &wl->ptable[PART_BOOT]); |
1162 | 1184 | ||