};
enum rtl_version {
-@@ -4002,6 +4063,162 @@ static int rtl_post_ram_code(struct r815
+@@ -4005,6 +4066,162 @@ static int rtl_post_ram_code(struct r815
return 0;
}
static bool rtl8152_is_fw_phy_nc_ok(struct r8152 *tp, struct fw_phy_nc *phy)
{
u32 length;
-@@ -4322,6 +4539,10 @@ static long rtl8152_check_firmware(struc
+@@ -4325,6 +4542,10 @@ static long rtl8152_check_firmware(struc
case RTL_FW_PHY_START:
if (test_bit(FW_FLAGS_START, &fw_flags) ||
test_bit(FW_FLAGS_NC, &fw_flags) ||
test_bit(FW_FLAGS_STOP, &fw_flags)) {
dev_err(&tp->intf->dev,
"check PHY_START fail\n");
-@@ -4370,7 +4591,153 @@ static long rtl8152_check_firmware(struc
+@@ -4373,7 +4594,153 @@ static long rtl8152_check_firmware(struc
goto fail;
}
__set_bit(FW_FLAGS_NC, &fw_flags);
break;
default:
dev_warn(&tp->intf->dev, "Unknown type %u is found\n",
-@@ -4393,6 +4760,143 @@ fail:
+@@ -4396,6 +4763,143 @@ fail:
return ret;
}
static void rtl8152_fw_phy_nc_apply(struct r8152 *tp, struct fw_phy_nc *phy)
{
u16 mode_reg, bp_index;
-@@ -4446,6 +4950,12 @@ static void rtl8152_fw_mac_apply(struct
+@@ -4449,6 +4953,12 @@ static void rtl8152_fw_mac_apply(struct
return;
}
rtl_clear_bp(tp, type);
/* Enable backup/restore of MACDBG. This is required after clearing PLA
-@@ -4481,7 +4991,6 @@ static void rtl8152_fw_mac_apply(struct
+@@ -4484,7 +4994,6 @@ static void rtl8152_fw_mac_apply(struct
ocp_write_word(tp, type, bp_en_addr,
__le16_to_cpu(mac->bp_en_value));
if (fw_ver_reg)
ocp_write_byte(tp, MCU_TYPE_USB, fw_ver_reg,
mac->fw_ver_data);
-@@ -4496,7 +5005,7 @@ static void rtl8152_apply_firmware(struc
+@@ -4499,7 +5008,7 @@ static void rtl8152_apply_firmware(struc
struct fw_header *fw_hdr;
struct fw_phy_patch_key *key;
u16 key_addr = 0;
if (IS_ERR_OR_NULL(rtl_fw->fw))
return;
-@@ -4518,17 +5027,40 @@ static void rtl8152_apply_firmware(struc
+@@ -4521,17 +5030,40 @@ static void rtl8152_apply_firmware(struc
rtl8152_fw_mac_apply(tp, (struct fw_mac *)block);
break;
case RTL_FW_PHY_START:
default:
break;
}
-@@ -5036,6 +5568,21 @@ static int r8153c_post_firmware_1(struct
+@@ -5039,6 +5571,21 @@ static int r8153c_post_firmware_1(struct
return 0;
}
static void r8153_aldps_en(struct r8152 *tp, bool enable)
{
u16 data;
-@@ -8676,12 +9223,16 @@ static int rtl_ops_init(struct r8152 *tp
+@@ -8679,12 +9226,16 @@ static int rtl_ops_init(struct r8152 *tp
#define FIRMWARE_8153A_4 "rtl_nic/rtl8153a-4.fw"
#define FIRMWARE_8153B_2 "rtl_nic/rtl8153b-2.fw"
#define FIRMWARE_8153C_1 "rtl_nic/rtl8153c-1.fw"
static int rtl_fw_init(struct r8152 *tp)
{
-@@ -8707,6 +9258,14 @@ static int rtl_fw_init(struct r8152 *tp)
+@@ -8710,6 +9261,14 @@ static int rtl_fw_init(struct r8152 *tp)
rtl_fw->pre_fw = r8153b_pre_firmware_1;
rtl_fw->post_fw = r8153b_post_firmware_1;
break;