wifi: rtl8xxxu: Deduplicate the efuse dumping code
authorBitterblue Smith <rtl8821cerfe2@gmail.com>
Sat, 17 Dec 2022 14:12:23 +0000 (16:12 +0200)
committerKalle Valo <kvalo@kernel.org>
Wed, 21 Dec 2022 18:51:39 +0000 (20:51 +0200)
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
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188f.c
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c

index 97e7ff7289fabf28ce206a0d7daee7ccbde6f4e9..a67b8c64b1e3e58fe5a156d27c1c92466a8dfd53 100644 (file)
@@ -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;
 }
 
index 3bef9ffc8b02da7c1e084f149dd1bd907bbe126f..d43f8afeb87648f4e90fe5b3167366eca22998d2 100644 (file)
@@ -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;
 }
 
index a7d76693c02db725607b873e0c0a75c4e9772498..cd173ca6039b5715664114a85e8cc9e930c575d5 100644 (file)
@@ -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;
 }
 
index a0ec895b61a4f92b50c7a4ed48f168a3eff3556b..b267374470358660bb81b0f07ad1d04436657081 100644 (file)
@@ -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;
 }
 
index c8b82c581011168c96ed1eae2b9c93f2ef905af9..23a7f89f24219db6f81669e51dc2f92fdef4b81a 100644 (file)
@@ -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);