mirror of
https://github.com/torvalds/linux.git
synced 2024-12-06 19:11:31 +00:00
wifi: rtl8xxxu: Deduplicate the efuse dumping code
Every chip family except RTL8723AU has a copy of the efuse dumping code. Remove this and dump the efuse from a single place using a new function rtl8xxxu_dump_efuse(). Also, use print_hex_dump() to print the efuse instead of a loop and dev_info(). It shows the ASCII interpretation of the bytes, which is nice. Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com> Reviewed-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/2aa5200a-ee42-e064-16a1-672bed5708c6@gmail.com
This commit is contained in:
parent
ba1a6905c7
commit
4f198e720e
@ -716,7 +716,6 @@ static void rtl8188fu_init_statistics(struct rtl8xxxu_priv *priv)
|
||||
static int rtl8188fu_parse_efuse(struct rtl8xxxu_priv *priv)
|
||||
{
|
||||
struct rtl8188fu_efuse *efuse = &priv->efuse_wifi.efuse8188fu;
|
||||
int i;
|
||||
|
||||
if (efuse->rtl_id != cpu_to_le16(0x8129))
|
||||
return -EINVAL;
|
||||
@ -738,16 +737,6 @@ static int rtl8188fu_parse_efuse(struct rtl8xxxu_priv *priv)
|
||||
dev_info(&priv->udev->dev, "Vendor: %.7s\n", efuse->vendor_name);
|
||||
dev_info(&priv->udev->dev, "Product: %.7s\n", efuse->device_name);
|
||||
|
||||
if (rtl8xxxu_debug & RTL8XXXU_DEBUG_EFUSE) {
|
||||
unsigned char *raw = priv->efuse_wifi.raw;
|
||||
|
||||
dev_info(&priv->udev->dev,
|
||||
"%s: dumping efuse (0x%02zx bytes):\n",
|
||||
__func__, sizeof(struct rtl8188fu_efuse));
|
||||
for (i = 0; i < sizeof(struct rtl8188fu_efuse); i += 8)
|
||||
dev_info(&priv->udev->dev, "%02x: %8ph\n", i, &raw[i]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -404,7 +404,6 @@ static int rtl8192cu_load_firmware(struct rtl8xxxu_priv *priv)
|
||||
static int rtl8192cu_parse_efuse(struct rtl8xxxu_priv *priv)
|
||||
{
|
||||
struct rtl8192cu_efuse *efuse = &priv->efuse_wifi.efuse8192;
|
||||
int i;
|
||||
|
||||
if (efuse->rtl_id != cpu_to_le16(0x8129))
|
||||
return -EINVAL;
|
||||
@ -457,15 +456,6 @@ static int rtl8192cu_parse_efuse(struct rtl8xxxu_priv *priv)
|
||||
priv->power_base = &rtl8188r_power_base;
|
||||
}
|
||||
|
||||
if (rtl8xxxu_debug & RTL8XXXU_DEBUG_EFUSE) {
|
||||
unsigned char *raw = priv->efuse_wifi.raw;
|
||||
|
||||
dev_info(&priv->udev->dev,
|
||||
"%s: dumping efuse (0x%02zx bytes):\n",
|
||||
__func__, sizeof(struct rtl8192cu_efuse));
|
||||
for (i = 0; i < sizeof(struct rtl8192cu_efuse); i += 8)
|
||||
dev_info(&priv->udev->dev, "%02x: %8ph\n", i, &raw[i]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -704,15 +704,6 @@ static int rtl8192eu_parse_efuse(struct rtl8xxxu_priv *priv)
|
||||
rtl8192eu_log_next_device_info(priv, "Product", efuse->device_info, &record_offset);
|
||||
rtl8192eu_log_next_device_info(priv, "Serial", efuse->device_info, &record_offset);
|
||||
|
||||
if (rtl8xxxu_debug & RTL8XXXU_DEBUG_EFUSE) {
|
||||
unsigned char *raw = priv->efuse_wifi.raw;
|
||||
|
||||
dev_info(&priv->udev->dev,
|
||||
"%s: dumping efuse (0x%02zx bytes):\n",
|
||||
__func__, sizeof(struct rtl8192eu_efuse));
|
||||
for (i = 0; i < sizeof(struct rtl8192eu_efuse); i += 8)
|
||||
dev_info(&priv->udev->dev, "%02x: %8ph\n", i, &raw[i]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -497,17 +497,6 @@ static int rtl8723bu_parse_efuse(struct rtl8xxxu_priv *priv)
|
||||
dev_info(&priv->udev->dev, "Vendor: %.7s\n", efuse->vendor_name);
|
||||
dev_info(&priv->udev->dev, "Product: %.41s\n", efuse->device_name);
|
||||
|
||||
if (rtl8xxxu_debug & RTL8XXXU_DEBUG_EFUSE) {
|
||||
int i;
|
||||
unsigned char *raw = priv->efuse_wifi.raw;
|
||||
|
||||
dev_info(&priv->udev->dev,
|
||||
"%s: dumping efuse (0x%02zx bytes):\n",
|
||||
__func__, sizeof(struct rtl8723bu_efuse));
|
||||
for (i = 0; i < sizeof(struct rtl8723bu_efuse); i += 8)
|
||||
dev_info(&priv->udev->dev, "%02x: %8ph\n", i, &raw[i]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1813,6 +1813,16 @@ exit:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void rtl8xxxu_dump_efuse(struct rtl8xxxu_priv *priv)
|
||||
{
|
||||
dev_info(&priv->udev->dev,
|
||||
"Dumping efuse for RTL%s (0x%02x bytes):\n",
|
||||
priv->chip_name, EFUSE_MAP_LEN);
|
||||
|
||||
print_hex_dump(KERN_INFO, "", DUMP_PREFIX_OFFSET, 16, 1,
|
||||
priv->efuse_wifi.raw, EFUSE_MAP_LEN, true);
|
||||
}
|
||||
|
||||
void rtl8xxxu_reset_8051(struct rtl8xxxu_priv *priv)
|
||||
{
|
||||
u8 val8;
|
||||
@ -6841,6 +6851,9 @@ static int rtl8xxxu_probe(struct usb_interface *interface,
|
||||
goto err_set_intfdata;
|
||||
}
|
||||
|
||||
if (rtl8xxxu_debug & RTL8XXXU_DEBUG_EFUSE)
|
||||
rtl8xxxu_dump_efuse(priv);
|
||||
|
||||
rtl8xxxu_print_chipinfo(priv);
|
||||
|
||||
ret = priv->fops->load_firmware(priv);
|
||||
|
Loading…
Reference in New Issue
Block a user