forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
....@@ -1,9 +1,6 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * Copyright (C) 2015 Cavium, Inc.
3
- *
4
- * This program is free software; you can redistribute it and/or modify it
5
- * under the terms of version 2 of the GNU General Public License
6
- * as published by the Free Software Foundation.
74 */
85
96 #include <linux/acpi.h>
....@@ -971,13 +968,13 @@
971968 lmac->last_duplex = (an_result >> 1) & 0x1;
972969 switch (speed) {
973970 case 0:
974
- lmac->last_speed = 10;
971
+ lmac->last_speed = SPEED_10;
975972 break;
976973 case 1:
977
- lmac->last_speed = 100;
974
+ lmac->last_speed = SPEED_100;
978975 break;
979976 case 2:
980
- lmac->last_speed = 1000;
977
+ lmac->last_speed = SPEED_1000;
981978 break;
982979 default:
983980 lmac->link_up = false;
....@@ -1019,14 +1016,14 @@
10191016
10201017 if ((spu_link & SPU_STATUS1_RCV_LNK) &&
10211018 !(smu_link & SMU_RX_CTL_STATUS)) {
1022
- lmac->link_up = 1;
1019
+ lmac->link_up = true;
10231020 if (lmac->lmac_type == BGX_MODE_XLAUI)
1024
- lmac->last_speed = 40000;
1021
+ lmac->last_speed = SPEED_40000;
10251022 else
1026
- lmac->last_speed = 10000;
1027
- lmac->last_duplex = 1;
1023
+ lmac->last_speed = SPEED_10000;
1024
+ lmac->last_duplex = DUPLEX_FULL;
10281025 } else {
1029
- lmac->link_up = 0;
1026
+ lmac->link_up = false;
10301027 lmac->last_speed = SPEED_UNKNOWN;
10311028 lmac->last_duplex = DUPLEX_UNKNOWN;
10321029 }
....@@ -1035,7 +1032,7 @@
10351032 if (lmac->link_up) {
10361033 if (bgx_xaui_check_link(lmac)) {
10371034 /* Errors, clear link_up state */
1038
- lmac->link_up = 0;
1035
+ lmac->link_up = false;
10391036 lmac->last_speed = SPEED_UNKNOWN;
10401037 lmac->last_duplex = DUPLEX_UNKNOWN;
10411038 }
....@@ -1051,7 +1048,7 @@
10511048 if (lmac_type == BGX_MODE_QSGMII)
10521049 return PHY_INTERFACE_MODE_QSGMII;
10531050 if (lmac_type == BGX_MODE_RGMII)
1054
- return PHY_INTERFACE_MODE_RGMII;
1051
+ return PHY_INTERFACE_MODE_RGMII_RXID;
10551052
10561053 return PHY_INTERFACE_MODE_SGMII;
10571054 }
....@@ -1067,11 +1064,11 @@
10671064 if ((lmac->lmac_type == BGX_MODE_SGMII) ||
10681065 (lmac->lmac_type == BGX_MODE_QSGMII) ||
10691066 (lmac->lmac_type == BGX_MODE_RGMII)) {
1070
- lmac->is_sgmii = 1;
1067
+ lmac->is_sgmii = true;
10711068 if (bgx_lmac_sgmii_init(bgx, lmac))
10721069 return -1;
10731070 } else {
1074
- lmac->is_sgmii = 0;
1071
+ lmac->is_sgmii = false;
10751072 if (bgx_lmac_xaui_init(bgx, lmac))
10761073 return -1;
10771074 }
....@@ -1114,8 +1111,8 @@
11141111 } else {
11151112 /* Default to below link speed and duplex */
11161113 lmac->link_up = true;
1117
- lmac->last_speed = 1000;
1118
- lmac->last_duplex = 1;
1114
+ lmac->last_speed = SPEED_1000;
1115
+ lmac->last_duplex = DUPLEX_FULL;
11191116 bgx_sgmii_change_link_state(lmac);
11201117 return 0;
11211118 }
....@@ -1226,7 +1223,7 @@
12261223
12271224 /* Disable MAC steering (NCSI traffic) */
12281225 for (i = 0; i < RX_TRAFFIC_STEER_RULE_COUNT; i++)
1229
- bgx_reg_write(bgx, 0, BGX_CMR_RX_STREERING + (i * 8), 0x00);
1226
+ bgx_reg_write(bgx, 0, BGX_CMR_RX_STEERING + (i * 8), 0x00);
12301227 }
12311228
12321229 static u8 bgx_get_lane2sds_cfg(struct bgx *bgx, struct lmac *lmac)
....@@ -1316,7 +1313,7 @@
13161313 {
13171314 if ((lmac->lmac_type != BGX_MODE_10G_KR) &&
13181315 (lmac->lmac_type != BGX_MODE_40G_KR)) {
1319
- lmac->use_training = 0;
1316
+ lmac->use_training = false;
13201317 return;
13211318 }
13221319
....@@ -1393,24 +1390,18 @@
13931390 u8 *dst)
13941391 {
13951392 u8 mac[ETH_ALEN];
1396
- int ret;
1393
+ u8 *addr;
13971394
1398
- ret = fwnode_property_read_u8_array(acpi_fwnode_handle(adev),
1399
- "mac-address", mac, ETH_ALEN);
1400
- if (ret)
1401
- goto out;
1402
-
1403
- if (!is_valid_ether_addr(mac)) {
1395
+ addr = fwnode_get_mac_address(acpi_fwnode_handle(adev), mac, ETH_ALEN);
1396
+ if (!addr) {
14041397 dev_err(dev, "MAC address invalid: %pM\n", mac);
1405
- ret = -EINVAL;
1406
- goto out;
1398
+ return -EINVAL;
14071399 }
14081400
14091401 dev_info(dev, "MAC address set to: %pM\n", mac);
14101402
1411
- memcpy(dst, mac, ETH_ALEN);
1412
-out:
1413
- return ret;
1403
+ ether_addr_copy(dst, mac);
1404
+ return 0;
14141405 }
14151406
14161407 /* Currently only sets the MAC address. */
....@@ -1447,8 +1438,10 @@
14471438 return AE_OK;
14481439 }
14491440
1450
- if (strncmp(string.pointer, bgx_sel, 4))
1441
+ if (strncmp(string.pointer, bgx_sel, 4)) {
1442
+ kfree(string.pointer);
14511443 return AE_OK;
1444
+ }
14521445
14531446 acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, 1,
14541447 bgx_acpi_register_phy, NULL, bgx, NULL);
....@@ -1493,7 +1486,7 @@
14931486 break;
14941487
14951488 mac = of_get_mac_address(node);
1496
- if (mac)
1489
+ if (!IS_ERR(mac))
14971490 ether_addr_copy(bgx->lmac[lmac].mac, mac);
14981491
14991492 SET_NETDEV_DEV(&bgx->lmac[lmac].netdev, &bgx->pdev->dev);