[][mt7981: drivers: net: phy: update control logic for all calibration items]
[Description]
Change control logic for all calibration item.
[Release-log]
N/A
Change-Id: Ia5d574bb7248e629e35244bea38cc8a0f5e9dfe8
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/5357795
diff --git a/target/linux/mediatek/files-5.4/drivers/net/phy/mediatek-ge.c b/target/linux/mediatek/files-5.4/drivers/net/phy/mediatek-ge.c
index c243a0a..be7a1e1 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/phy/mediatek-ge.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/phy/mediatek-ge.c
@@ -224,36 +224,39 @@
if(cal_ret) break; \
}
-#define SW_CAL(cal_item, cal_mode_get, pair_mode) \
- CAL_##pair_mode(cal_item, sw) \
+#define SW_CAL(cal_item, cal_mode_get, pair_mode) \
+ if(ret || (!ret && strcmp("sw", cal_mode_get) == 0)) { \
+ CAL_##pair_mode(cal_item, sw) \
+ }
#define SW_EFUSE_CAL(cal_item, cal_mode_get, pair_mode,...) \
- if (ret || (!ret && strcmp("efuse", cal_mode_get) == 0)) { \
+ if ((efs_valid && ret) || \
+ (!ret && strcmp("efuse", cal_mode_get) == 0)) { \
CAL_##pair_mode(cal_item, efuse, ##__VA_ARGS__) \
- } else if (!ret && strcmp("sw", cal_mode_get) == 0) { \
+ } else if ((!efs_valid && ret) || \
+ (!ret && strcmp("sw", cal_mode_get) == 0)) { \
CAL_##pair_mode(cal_item, sw) \
- } else { \
- dev_info(&phydev->mdio.dev, "%s cal mode %s not supported\n", \
- #cal_item, \
- cal_mode_get); \
}
#define EFUSE_CAL(cal_item, cal_mode_get, pair_mode, ...) \
if ((efs_valid && ret) || \
- (efs_valid && !ret && strcmp("efuse", cal_mode_get) == 0)) {\
+ (!ret && strcmp("efuse", cal_mode_get) == 0)) {\
CAL_##pair_mode(cal_item, efuse, ##__VA_ARGS__) \
- } else { \
- dev_info(&phydev->mdio.dev, "%s uses default value, " \
- "efs-valid: %s, dts: %s\n", \
- #cal_item, \
- efs_valid? "yes" : "no", \
- ret? "empty" : cal_mode_get); \
}
#define CAL_FLOW(cal_item, cal_mode, cal_mode_get, pair_mode,...) \
ret = of_property_read_string(phydev->mdio.dev.of_node, \
#cal_item, &cal_mode_get); \
cal_mode##_CAL(cal_item, cal_mode_get, pair_mode, ##__VA_ARGS__)\
+ else { \
+ dev_info(&phydev->mdio.dev, "%s cal mode %s%s," \
+ " use default value," \
+ " efs-valid: %s", \
+ #cal_item, \
+ ret? "" : cal_mode_get, \
+ ret? "not specified" : " not supported", \
+ efs_valid? "yes" : "no"); \
+ } \
if(cal_ret) { \
dev_err(&phydev->mdio.dev, "cal_item cal failed\n"); \
ret = -EIO; \