.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0+ |
---|
1 | 2 | /* |
---|
2 | 3 | * Copyright (C) 2015 Microchip Technology |
---|
3 | | - * |
---|
4 | | - * This program is free software; you can redistribute it and/or |
---|
5 | | - * modify it under the terms of the GNU General Public License |
---|
6 | | - * as published by the Free Software Foundation; either version 2 |
---|
7 | | - * of the License, or (at your option) any later version. |
---|
8 | | - * |
---|
9 | | - * This program is distributed in the hope that it will be useful, |
---|
10 | | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
11 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
12 | | - * GNU General Public License for more details. |
---|
13 | | - * |
---|
14 | | - * You should have received a copy of the GNU General Public License |
---|
15 | | - * along with this program; if not, see <http://www.gnu.org/licenses/>. |
---|
16 | 4 | */ |
---|
17 | 5 | #include <linux/version.h> |
---|
18 | 6 | #include <linux/module.h> |
---|
.. | .. |
---|
25 | 13 | #include <linux/slab.h> |
---|
26 | 14 | #include <linux/if_vlan.h> |
---|
27 | 15 | #include <linux/uaccess.h> |
---|
| 16 | +#include <linux/linkmode.h> |
---|
28 | 17 | #include <linux/list.h> |
---|
29 | 18 | #include <linux/ip.h> |
---|
30 | 19 | #include <linux/ipv6.h> |
---|
.. | .. |
---|
835 | 824 | u32 length, u8 *data) |
---|
836 | 825 | { |
---|
837 | 826 | int i; |
---|
838 | | - int ret; |
---|
839 | 827 | u32 buf; |
---|
840 | 828 | unsigned long timeout; |
---|
841 | 829 | |
---|
842 | | - ret = lan78xx_read_reg(dev, OTP_PWR_DN, &buf); |
---|
| 830 | + lan78xx_read_reg(dev, OTP_PWR_DN, &buf); |
---|
843 | 831 | |
---|
844 | 832 | if (buf & OTP_PWR_DN_PWRDN_N_) { |
---|
845 | 833 | /* clear it and wait to be cleared */ |
---|
846 | | - ret = lan78xx_write_reg(dev, OTP_PWR_DN, 0); |
---|
| 834 | + lan78xx_write_reg(dev, OTP_PWR_DN, 0); |
---|
847 | 835 | |
---|
848 | 836 | timeout = jiffies + HZ; |
---|
849 | 837 | do { |
---|
850 | 838 | usleep_range(1, 10); |
---|
851 | | - ret = lan78xx_read_reg(dev, OTP_PWR_DN, &buf); |
---|
| 839 | + lan78xx_read_reg(dev, OTP_PWR_DN, &buf); |
---|
852 | 840 | if (time_after(jiffies, timeout)) { |
---|
853 | 841 | netdev_warn(dev->net, |
---|
854 | 842 | "timeout on OTP_PWR_DN"); |
---|
.. | .. |
---|
858 | 846 | } |
---|
859 | 847 | |
---|
860 | 848 | for (i = 0; i < length; i++) { |
---|
861 | | - ret = lan78xx_write_reg(dev, OTP_ADDR1, |
---|
| 849 | + lan78xx_write_reg(dev, OTP_ADDR1, |
---|
862 | 850 | ((offset + i) >> 8) & OTP_ADDR1_15_11); |
---|
863 | | - ret = lan78xx_write_reg(dev, OTP_ADDR2, |
---|
| 851 | + lan78xx_write_reg(dev, OTP_ADDR2, |
---|
864 | 852 | ((offset + i) & OTP_ADDR2_10_3)); |
---|
865 | 853 | |
---|
866 | | - ret = lan78xx_write_reg(dev, OTP_FUNC_CMD, OTP_FUNC_CMD_READ_); |
---|
867 | | - ret = lan78xx_write_reg(dev, OTP_CMD_GO, OTP_CMD_GO_GO_); |
---|
| 854 | + lan78xx_write_reg(dev, OTP_FUNC_CMD, OTP_FUNC_CMD_READ_); |
---|
| 855 | + lan78xx_write_reg(dev, OTP_CMD_GO, OTP_CMD_GO_GO_); |
---|
868 | 856 | |
---|
869 | 857 | timeout = jiffies + HZ; |
---|
870 | 858 | do { |
---|
871 | 859 | udelay(1); |
---|
872 | | - ret = lan78xx_read_reg(dev, OTP_STATUS, &buf); |
---|
| 860 | + lan78xx_read_reg(dev, OTP_STATUS, &buf); |
---|
873 | 861 | if (time_after(jiffies, timeout)) { |
---|
874 | 862 | netdev_warn(dev->net, |
---|
875 | 863 | "timeout on OTP_STATUS"); |
---|
.. | .. |
---|
877 | 865 | } |
---|
878 | 866 | } while (buf & OTP_STATUS_BUSY_); |
---|
879 | 867 | |
---|
880 | | - ret = lan78xx_read_reg(dev, OTP_RD_DATA, &buf); |
---|
| 868 | + lan78xx_read_reg(dev, OTP_RD_DATA, &buf); |
---|
881 | 869 | |
---|
882 | 870 | data[i] = (u8)(buf & 0xFF); |
---|
883 | 871 | } |
---|
.. | .. |
---|
889 | 877 | u32 length, u8 *data) |
---|
890 | 878 | { |
---|
891 | 879 | int i; |
---|
892 | | - int ret; |
---|
893 | 880 | u32 buf; |
---|
894 | 881 | unsigned long timeout; |
---|
895 | 882 | |
---|
896 | | - ret = lan78xx_read_reg(dev, OTP_PWR_DN, &buf); |
---|
| 883 | + lan78xx_read_reg(dev, OTP_PWR_DN, &buf); |
---|
897 | 884 | |
---|
898 | 885 | if (buf & OTP_PWR_DN_PWRDN_N_) { |
---|
899 | 886 | /* clear it and wait to be cleared */ |
---|
900 | | - ret = lan78xx_write_reg(dev, OTP_PWR_DN, 0); |
---|
| 887 | + lan78xx_write_reg(dev, OTP_PWR_DN, 0); |
---|
901 | 888 | |
---|
902 | 889 | timeout = jiffies + HZ; |
---|
903 | 890 | do { |
---|
904 | 891 | udelay(1); |
---|
905 | | - ret = lan78xx_read_reg(dev, OTP_PWR_DN, &buf); |
---|
| 892 | + lan78xx_read_reg(dev, OTP_PWR_DN, &buf); |
---|
906 | 893 | if (time_after(jiffies, timeout)) { |
---|
907 | 894 | netdev_warn(dev->net, |
---|
908 | 895 | "timeout on OTP_PWR_DN completion"); |
---|
.. | .. |
---|
912 | 899 | } |
---|
913 | 900 | |
---|
914 | 901 | /* set to BYTE program mode */ |
---|
915 | | - ret = lan78xx_write_reg(dev, OTP_PRGM_MODE, OTP_PRGM_MODE_BYTE_); |
---|
| 902 | + lan78xx_write_reg(dev, OTP_PRGM_MODE, OTP_PRGM_MODE_BYTE_); |
---|
916 | 903 | |
---|
917 | 904 | for (i = 0; i < length; i++) { |
---|
918 | | - ret = lan78xx_write_reg(dev, OTP_ADDR1, |
---|
| 905 | + lan78xx_write_reg(dev, OTP_ADDR1, |
---|
919 | 906 | ((offset + i) >> 8) & OTP_ADDR1_15_11); |
---|
920 | | - ret = lan78xx_write_reg(dev, OTP_ADDR2, |
---|
| 907 | + lan78xx_write_reg(dev, OTP_ADDR2, |
---|
921 | 908 | ((offset + i) & OTP_ADDR2_10_3)); |
---|
922 | | - ret = lan78xx_write_reg(dev, OTP_PRGM_DATA, data[i]); |
---|
923 | | - ret = lan78xx_write_reg(dev, OTP_TST_CMD, OTP_TST_CMD_PRGVRFY_); |
---|
924 | | - ret = lan78xx_write_reg(dev, OTP_CMD_GO, OTP_CMD_GO_GO_); |
---|
| 909 | + lan78xx_write_reg(dev, OTP_PRGM_DATA, data[i]); |
---|
| 910 | + lan78xx_write_reg(dev, OTP_TST_CMD, OTP_TST_CMD_PRGVRFY_); |
---|
| 911 | + lan78xx_write_reg(dev, OTP_CMD_GO, OTP_CMD_GO_GO_); |
---|
925 | 912 | |
---|
926 | 913 | timeout = jiffies + HZ; |
---|
927 | 914 | do { |
---|
928 | 915 | udelay(1); |
---|
929 | | - ret = lan78xx_read_reg(dev, OTP_STATUS, &buf); |
---|
| 916 | + lan78xx_read_reg(dev, OTP_STATUS, &buf); |
---|
930 | 917 | if (time_after(jiffies, timeout)) { |
---|
931 | 918 | netdev_warn(dev->net, |
---|
932 | 919 | "Timeout on OTP_STATUS completion"); |
---|
.. | .. |
---|
1024 | 1011 | static void lan78xx_set_addr_filter(struct lan78xx_priv *pdata, |
---|
1025 | 1012 | int index, u8 addr[ETH_ALEN]) |
---|
1026 | 1013 | { |
---|
1027 | | - u32 temp; |
---|
| 1014 | + u32 temp; |
---|
1028 | 1015 | |
---|
1029 | 1016 | if ((pdata) && (index > 0) && (index < NUM_OF_MAF)) { |
---|
1030 | 1017 | temp = addr[3]; |
---|
.. | .. |
---|
1051 | 1038 | container_of(param, struct lan78xx_priv, set_multicast); |
---|
1052 | 1039 | struct lan78xx_net *dev = pdata->dev; |
---|
1053 | 1040 | int i; |
---|
1054 | | - int ret; |
---|
1055 | 1041 | |
---|
1056 | 1042 | netif_dbg(dev, drv, dev->net, "deferred multicast write 0x%08x\n", |
---|
1057 | 1043 | pdata->rfe_ctl); |
---|
.. | .. |
---|
1060 | 1046 | DP_SEL_VHF_HASH_LEN, pdata->mchash_table); |
---|
1061 | 1047 | |
---|
1062 | 1048 | for (i = 1; i < NUM_OF_MAF; i++) { |
---|
1063 | | - ret = lan78xx_write_reg(dev, MAF_HI(i), 0); |
---|
1064 | | - ret = lan78xx_write_reg(dev, MAF_LO(i), |
---|
| 1049 | + lan78xx_write_reg(dev, MAF_HI(i), 0); |
---|
| 1050 | + lan78xx_write_reg(dev, MAF_LO(i), |
---|
1065 | 1051 | pdata->pfilter_table[i][1]); |
---|
1066 | | - ret = lan78xx_write_reg(dev, MAF_HI(i), |
---|
| 1052 | + lan78xx_write_reg(dev, MAF_HI(i), |
---|
1067 | 1053 | pdata->pfilter_table[i][0]); |
---|
1068 | 1054 | } |
---|
1069 | 1055 | |
---|
1070 | | - ret = lan78xx_write_reg(dev, RFE_CTL, pdata->rfe_ctl); |
---|
| 1056 | + lan78xx_write_reg(dev, RFE_CTL, pdata->rfe_ctl); |
---|
1071 | 1057 | } |
---|
1072 | 1058 | |
---|
1073 | 1059 | static void lan78xx_set_multicast(struct net_device *netdev) |
---|
.. | .. |
---|
1137 | 1123 | u16 lcladv, u16 rmtadv) |
---|
1138 | 1124 | { |
---|
1139 | 1125 | u32 flow = 0, fct_flow = 0; |
---|
1140 | | - int ret; |
---|
1141 | 1126 | u8 cap; |
---|
1142 | 1127 | |
---|
1143 | 1128 | if (dev->fc_autoneg) |
---|
.. | .. |
---|
1160 | 1145 | (cap & FLOW_CTRL_RX ? "enabled" : "disabled"), |
---|
1161 | 1146 | (cap & FLOW_CTRL_TX ? "enabled" : "disabled")); |
---|
1162 | 1147 | |
---|
1163 | | - ret = lan78xx_write_reg(dev, FCT_FLOW, fct_flow); |
---|
| 1148 | + lan78xx_write_reg(dev, FCT_FLOW, fct_flow); |
---|
1164 | 1149 | |
---|
1165 | 1150 | /* threshold value should be set before enabling flow */ |
---|
1166 | | - ret = lan78xx_write_reg(dev, FLOW, flow); |
---|
| 1151 | + lan78xx_write_reg(dev, FLOW, flow); |
---|
1167 | 1152 | |
---|
1168 | 1153 | return 0; |
---|
1169 | 1154 | } |
---|
.. | .. |
---|
1271 | 1256 | return; |
---|
1272 | 1257 | } |
---|
1273 | 1258 | |
---|
1274 | | - memcpy(&intdata, urb->transfer_buffer, 4); |
---|
1275 | | - le32_to_cpus(&intdata); |
---|
| 1259 | + intdata = get_unaligned_le32(urb->transfer_buffer); |
---|
1276 | 1260 | |
---|
1277 | 1261 | if (intdata & INT_ENP_PHY_INT) { |
---|
1278 | 1262 | netif_dbg(dev, link, dev->net, "PHY INTR: 0x%08x\n", intdata); |
---|
.. | .. |
---|
1608 | 1592 | dev->fc_request_control |= FLOW_CTRL_TX; |
---|
1609 | 1593 | |
---|
1610 | 1594 | if (ecmd.base.autoneg) { |
---|
| 1595 | + __ETHTOOL_DECLARE_LINK_MODE_MASK(fc) = { 0, }; |
---|
1611 | 1596 | u32 mii_adv; |
---|
1612 | | - u32 advertising; |
---|
1613 | 1597 | |
---|
1614 | | - ethtool_convert_link_mode_to_legacy_u32( |
---|
1615 | | - &advertising, ecmd.link_modes.advertising); |
---|
1616 | | - |
---|
1617 | | - advertising &= ~(ADVERTISED_Pause | ADVERTISED_Asym_Pause); |
---|
| 1598 | + linkmode_clear_bit(ETHTOOL_LINK_MODE_Pause_BIT, |
---|
| 1599 | + ecmd.link_modes.advertising); |
---|
| 1600 | + linkmode_clear_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT, |
---|
| 1601 | + ecmd.link_modes.advertising); |
---|
1618 | 1602 | mii_adv = (u32)mii_advertise_flowctrl(dev->fc_request_control); |
---|
1619 | | - advertising |= mii_adv_to_ethtool_adv_t(mii_adv); |
---|
1620 | | - |
---|
1621 | | - ethtool_convert_legacy_u32_to_link_mode( |
---|
1622 | | - ecmd.link_modes.advertising, advertising); |
---|
| 1603 | + mii_adv_to_linkmode_adv_t(fc, mii_adv); |
---|
| 1604 | + linkmode_or(ecmd.link_modes.advertising, fc, |
---|
| 1605 | + ecmd.link_modes.advertising); |
---|
1623 | 1606 | |
---|
1624 | 1607 | phy_ethtool_ksettings_set(phydev, &ecmd); |
---|
1625 | 1608 | } |
---|
.. | .. |
---|
1683 | 1666 | .get_regs = lan78xx_get_regs, |
---|
1684 | 1667 | }; |
---|
1685 | 1668 | |
---|
1686 | | -static int lan78xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) |
---|
1687 | | -{ |
---|
1688 | | - if (!netif_running(netdev)) |
---|
1689 | | - return -EINVAL; |
---|
1690 | | - |
---|
1691 | | - return phy_mii_ioctl(netdev->phydev, rq, cmd); |
---|
1692 | | -} |
---|
1693 | | - |
---|
1694 | 1669 | static void lan78xx_init_mac_address(struct lan78xx_net *dev) |
---|
1695 | 1670 | { |
---|
1696 | 1671 | u32 addr_lo, addr_hi; |
---|
1697 | | - int ret; |
---|
1698 | 1672 | u8 addr[6]; |
---|
1699 | 1673 | |
---|
1700 | | - ret = lan78xx_read_reg(dev, RX_ADDRL, &addr_lo); |
---|
1701 | | - ret = lan78xx_read_reg(dev, RX_ADDRH, &addr_hi); |
---|
| 1674 | + lan78xx_read_reg(dev, RX_ADDRL, &addr_lo); |
---|
| 1675 | + lan78xx_read_reg(dev, RX_ADDRH, &addr_hi); |
---|
1702 | 1676 | |
---|
1703 | 1677 | addr[0] = addr_lo & 0xFF; |
---|
1704 | 1678 | addr[1] = (addr_lo >> 8) & 0xFF; |
---|
.. | .. |
---|
1731 | 1705 | (addr[2] << 16) | (addr[3] << 24); |
---|
1732 | 1706 | addr_hi = addr[4] | (addr[5] << 8); |
---|
1733 | 1707 | |
---|
1734 | | - ret = lan78xx_write_reg(dev, RX_ADDRL, addr_lo); |
---|
1735 | | - ret = lan78xx_write_reg(dev, RX_ADDRH, addr_hi); |
---|
| 1708 | + lan78xx_write_reg(dev, RX_ADDRL, addr_lo); |
---|
| 1709 | + lan78xx_write_reg(dev, RX_ADDRH, addr_hi); |
---|
1736 | 1710 | } |
---|
1737 | 1711 | |
---|
1738 | | - ret = lan78xx_write_reg(dev, MAF_LO(0), addr_lo); |
---|
1739 | | - ret = lan78xx_write_reg(dev, MAF_HI(0), addr_hi | MAF_HI_VALID_); |
---|
| 1712 | + lan78xx_write_reg(dev, MAF_LO(0), addr_lo); |
---|
| 1713 | + lan78xx_write_reg(dev, MAF_HI(0), addr_hi | MAF_HI_VALID_); |
---|
1740 | 1714 | |
---|
1741 | 1715 | ether_addr_copy(dev->net->dev_addr, addr); |
---|
1742 | 1716 | } |
---|
.. | .. |
---|
1847 | 1821 | |
---|
1848 | 1822 | node = of_get_child_by_name(dev->udev->dev.of_node, "mdio"); |
---|
1849 | 1823 | ret = of_mdiobus_register(dev->mdiobus, node); |
---|
1850 | | - if (node) |
---|
1851 | | - of_node_put(node); |
---|
| 1824 | + of_node_put(node); |
---|
1852 | 1825 | if (ret) { |
---|
1853 | 1826 | netdev_err(dev->net, "can't register MDIO bus\n"); |
---|
1854 | 1827 | goto exit1; |
---|
.. | .. |
---|
1870 | 1843 | static void lan78xx_link_status_change(struct net_device *net) |
---|
1871 | 1844 | { |
---|
1872 | 1845 | struct phy_device *phydev = net->phydev; |
---|
1873 | | - int ret, temp; |
---|
1874 | 1846 | |
---|
1875 | | - /* At forced 100 F/H mode, chip may fail to set mode correctly |
---|
1876 | | - * when cable is switched between long(~50+m) and short one. |
---|
1877 | | - * As workaround, set to 10 before setting to 100 |
---|
1878 | | - * at forced 100 F/H mode. |
---|
1879 | | - */ |
---|
1880 | | - if (!phydev->autoneg && (phydev->speed == 100)) { |
---|
1881 | | - /* disable phy interrupt */ |
---|
1882 | | - temp = phy_read(phydev, LAN88XX_INT_MASK); |
---|
1883 | | - temp &= ~LAN88XX_INT_MASK_MDINTPIN_EN_; |
---|
1884 | | - ret = phy_write(phydev, LAN88XX_INT_MASK, temp); |
---|
1885 | | - |
---|
1886 | | - temp = phy_read(phydev, MII_BMCR); |
---|
1887 | | - temp &= ~(BMCR_SPEED100 | BMCR_SPEED1000); |
---|
1888 | | - phy_write(phydev, MII_BMCR, temp); /* set to 10 first */ |
---|
1889 | | - temp |= BMCR_SPEED100; |
---|
1890 | | - phy_write(phydev, MII_BMCR, temp); /* set to 100 later */ |
---|
1891 | | - |
---|
1892 | | - /* clear pending interrupt generated while workaround */ |
---|
1893 | | - temp = phy_read(phydev, LAN88XX_INT_STS); |
---|
1894 | | - |
---|
1895 | | - /* enable phy interrupt back */ |
---|
1896 | | - temp = phy_read(phydev, LAN88XX_INT_MASK); |
---|
1897 | | - temp |= LAN88XX_INT_MASK_MDINTPIN_EN_; |
---|
1898 | | - ret = phy_write(phydev, LAN88XX_INT_MASK, temp); |
---|
1899 | | - } |
---|
| 1847 | + phy_print_status(phydev); |
---|
1900 | 1848 | } |
---|
1901 | 1849 | |
---|
1902 | 1850 | static int irq_map(struct irq_domain *d, unsigned int irq, |
---|
.. | .. |
---|
1949 | 1897 | struct lan78xx_net *dev = |
---|
1950 | 1898 | container_of(data, struct lan78xx_net, domain_data); |
---|
1951 | 1899 | u32 buf; |
---|
1952 | | - int ret; |
---|
1953 | 1900 | |
---|
1954 | 1901 | /* call register access here because irq_bus_lock & irq_bus_sync_unlock |
---|
1955 | 1902 | * are only two callbacks executed in non-atomic contex. |
---|
1956 | 1903 | */ |
---|
1957 | | - ret = lan78xx_read_reg(dev, INT_EP_CTL, &buf); |
---|
| 1904 | + lan78xx_read_reg(dev, INT_EP_CTL, &buf); |
---|
1958 | 1905 | if (buf != data->irqenable) |
---|
1959 | | - ret = lan78xx_write_reg(dev, INT_EP_CTL, data->irqenable); |
---|
| 1906 | + lan78xx_write_reg(dev, INT_EP_CTL, data->irqenable); |
---|
1960 | 1907 | |
---|
1961 | 1908 | mutex_unlock(&data->irq_lock); |
---|
1962 | 1909 | } |
---|
.. | .. |
---|
2023 | 1970 | static int lan8835_fixup(struct phy_device *phydev) |
---|
2024 | 1971 | { |
---|
2025 | 1972 | int buf; |
---|
2026 | | - int ret; |
---|
2027 | 1973 | struct lan78xx_net *dev = netdev_priv(phydev->attached_dev); |
---|
2028 | 1974 | |
---|
2029 | 1975 | /* LED2/PME_N/IRQ_N/RGMII_ID pin to IRQ_N mode */ |
---|
.. | .. |
---|
2033 | 1979 | phy_write_mmd(phydev, MDIO_MMD_PCS, 0x8010, buf); |
---|
2034 | 1980 | |
---|
2035 | 1981 | /* RGMII MAC TXC Delay Enable */ |
---|
2036 | | - ret = lan78xx_write_reg(dev, MAC_RGMII_ID, |
---|
| 1982 | + lan78xx_write_reg(dev, MAC_RGMII_ID, |
---|
2037 | 1983 | MAC_RGMII_ID_TXC_DELAY_EN_); |
---|
2038 | 1984 | |
---|
2039 | 1985 | /* RGMII TX DLL Tune Adjust */ |
---|
2040 | | - ret = lan78xx_write_reg(dev, RGMII_TX_BYP_DLL, 0x3D00); |
---|
| 1986 | + lan78xx_write_reg(dev, RGMII_TX_BYP_DLL, 0x3D00); |
---|
2041 | 1987 | |
---|
2042 | 1988 | dev->interface = PHY_INTERFACE_MODE_RGMII_TXID; |
---|
2043 | 1989 | |
---|
.. | .. |
---|
2075 | 2021 | phydev = phy_find_first(dev->mdiobus); |
---|
2076 | 2022 | if (!phydev) { |
---|
2077 | 2023 | netdev_dbg(dev->net, "PHY Not Found!! Registering Fixed PHY\n"); |
---|
2078 | | - phydev = fixed_phy_register(PHY_POLL, &fphy_status, -1, |
---|
2079 | | - NULL); |
---|
| 2024 | + phydev = fixed_phy_register(PHY_POLL, &fphy_status, NULL); |
---|
2080 | 2025 | if (IS_ERR(phydev)) { |
---|
2081 | 2026 | netdev_err(dev->net, "No PHY/fixed_PHY found\n"); |
---|
2082 | 2027 | return NULL; |
---|
.. | .. |
---|
2119 | 2064 | |
---|
2120 | 2065 | static int lan78xx_phy_init(struct lan78xx_net *dev) |
---|
2121 | 2066 | { |
---|
| 2067 | + __ETHTOOL_DECLARE_LINK_MODE_MASK(fc) = { 0, }; |
---|
2122 | 2068 | int ret; |
---|
2123 | 2069 | u32 mii_adv; |
---|
2124 | 2070 | struct phy_device *phydev; |
---|
.. | .. |
---|
2178 | 2124 | } |
---|
2179 | 2125 | |
---|
2180 | 2126 | /* MAC doesn't support 1000T Half */ |
---|
2181 | | - phydev->supported &= ~SUPPORTED_1000baseT_Half; |
---|
| 2127 | + phy_remove_link_mode(phydev, ETHTOOL_LINK_MODE_1000baseT_Half_BIT); |
---|
2182 | 2128 | |
---|
2183 | 2129 | /* support both flow controls */ |
---|
2184 | 2130 | dev->fc_request_control = (FLOW_CTRL_RX | FLOW_CTRL_TX); |
---|
2185 | | - phydev->advertising &= ~(ADVERTISED_Pause | ADVERTISED_Asym_Pause); |
---|
| 2131 | + linkmode_clear_bit(ETHTOOL_LINK_MODE_Pause_BIT, |
---|
| 2132 | + phydev->advertising); |
---|
| 2133 | + linkmode_clear_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT, |
---|
| 2134 | + phydev->advertising); |
---|
2186 | 2135 | mii_adv = (u32)mii_advertise_flowctrl(dev->fc_request_control); |
---|
2187 | | - phydev->advertising |= mii_adv_to_ethtool_adv_t(mii_adv); |
---|
| 2136 | + mii_adv_to_linkmode_adv_t(fc, mii_adv); |
---|
| 2137 | + linkmode_or(phydev->advertising, fc, phydev->advertising); |
---|
2188 | 2138 | |
---|
2189 | 2139 | if (phydev->mdio.dev.of_node) { |
---|
2190 | 2140 | u32 reg; |
---|
.. | .. |
---|
2217 | 2167 | |
---|
2218 | 2168 | static int lan78xx_set_rx_max_frame_length(struct lan78xx_net *dev, int size) |
---|
2219 | 2169 | { |
---|
2220 | | - int ret = 0; |
---|
2221 | 2170 | u32 buf; |
---|
2222 | 2171 | bool rxenabled; |
---|
2223 | 2172 | |
---|
2224 | | - ret = lan78xx_read_reg(dev, MAC_RX, &buf); |
---|
| 2173 | + lan78xx_read_reg(dev, MAC_RX, &buf); |
---|
2225 | 2174 | |
---|
2226 | 2175 | rxenabled = ((buf & MAC_RX_RXEN_) != 0); |
---|
2227 | 2176 | |
---|
2228 | 2177 | if (rxenabled) { |
---|
2229 | 2178 | buf &= ~MAC_RX_RXEN_; |
---|
2230 | | - ret = lan78xx_write_reg(dev, MAC_RX, buf); |
---|
| 2179 | + lan78xx_write_reg(dev, MAC_RX, buf); |
---|
2231 | 2180 | } |
---|
2232 | 2181 | |
---|
2233 | 2182 | /* add 4 to size for FCS */ |
---|
2234 | 2183 | buf &= ~MAC_RX_MAX_SIZE_MASK_; |
---|
2235 | 2184 | buf |= (((size + 4) << MAC_RX_MAX_SIZE_SHIFT_) & MAC_RX_MAX_SIZE_MASK_); |
---|
2236 | 2185 | |
---|
2237 | | - ret = lan78xx_write_reg(dev, MAC_RX, buf); |
---|
| 2186 | + lan78xx_write_reg(dev, MAC_RX, buf); |
---|
2238 | 2187 | |
---|
2239 | 2188 | if (rxenabled) { |
---|
2240 | 2189 | buf |= MAC_RX_RXEN_; |
---|
2241 | | - ret = lan78xx_write_reg(dev, MAC_RX, buf); |
---|
| 2190 | + lan78xx_write_reg(dev, MAC_RX, buf); |
---|
2242 | 2191 | } |
---|
2243 | 2192 | |
---|
2244 | 2193 | return 0; |
---|
.. | .. |
---|
2295 | 2244 | int ll_mtu = new_mtu + netdev->hard_header_len; |
---|
2296 | 2245 | int old_hard_mtu = dev->hard_mtu; |
---|
2297 | 2246 | int old_rx_urb_size = dev->rx_urb_size; |
---|
2298 | | - int ret; |
---|
2299 | 2247 | |
---|
2300 | 2248 | /* no second zero-length packet read wanted after mtu-sized packets */ |
---|
2301 | 2249 | if ((ll_mtu % dev->maxpacket) == 0) |
---|
2302 | 2250 | return -EDOM; |
---|
2303 | 2251 | |
---|
2304 | | - ret = lan78xx_set_rx_max_frame_length(dev, new_mtu + VLAN_ETH_HLEN); |
---|
| 2252 | + lan78xx_set_rx_max_frame_length(dev, new_mtu + VLAN_ETH_HLEN); |
---|
2305 | 2253 | |
---|
2306 | 2254 | netdev->mtu = new_mtu; |
---|
2307 | 2255 | |
---|
.. | .. |
---|
2324 | 2272 | struct lan78xx_net *dev = netdev_priv(netdev); |
---|
2325 | 2273 | struct sockaddr *addr = p; |
---|
2326 | 2274 | u32 addr_lo, addr_hi; |
---|
2327 | | - int ret; |
---|
2328 | 2275 | |
---|
2329 | 2276 | if (netif_running(netdev)) |
---|
2330 | 2277 | return -EBUSY; |
---|
.. | .. |
---|
2341 | 2288 | addr_hi = netdev->dev_addr[4] | |
---|
2342 | 2289 | netdev->dev_addr[5] << 8; |
---|
2343 | 2290 | |
---|
2344 | | - ret = lan78xx_write_reg(dev, RX_ADDRL, addr_lo); |
---|
2345 | | - ret = lan78xx_write_reg(dev, RX_ADDRH, addr_hi); |
---|
| 2291 | + lan78xx_write_reg(dev, RX_ADDRL, addr_lo); |
---|
| 2292 | + lan78xx_write_reg(dev, RX_ADDRH, addr_hi); |
---|
2346 | 2293 | |
---|
2347 | 2294 | /* Added to support MAC address changes */ |
---|
2348 | | - ret = lan78xx_write_reg(dev, MAF_LO(0), addr_lo); |
---|
2349 | | - ret = lan78xx_write_reg(dev, MAF_HI(0), addr_hi | MAF_HI_VALID_); |
---|
| 2295 | + lan78xx_write_reg(dev, MAF_LO(0), addr_lo); |
---|
| 2296 | + lan78xx_write_reg(dev, MAF_HI(0), addr_hi | MAF_HI_VALID_); |
---|
2350 | 2297 | |
---|
2351 | 2298 | return 0; |
---|
2352 | 2299 | } |
---|
.. | .. |
---|
2358 | 2305 | struct lan78xx_net *dev = netdev_priv(netdev); |
---|
2359 | 2306 | struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); |
---|
2360 | 2307 | unsigned long flags; |
---|
2361 | | - int ret; |
---|
2362 | 2308 | |
---|
2363 | 2309 | spin_lock_irqsave(&pdata->rfe_ctl_lock, flags); |
---|
2364 | 2310 | |
---|
.. | .. |
---|
2382 | 2328 | |
---|
2383 | 2329 | spin_unlock_irqrestore(&pdata->rfe_ctl_lock, flags); |
---|
2384 | 2330 | |
---|
2385 | | - ret = lan78xx_write_reg(dev, RFE_CTL, pdata->rfe_ctl); |
---|
| 2331 | + lan78xx_write_reg(dev, RFE_CTL, pdata->rfe_ctl); |
---|
2386 | 2332 | |
---|
2387 | 2333 | return 0; |
---|
2388 | 2334 | } |
---|
.. | .. |
---|
2706 | 2652 | |
---|
2707 | 2653 | static int lan78xx_stop(struct net_device *net) |
---|
2708 | 2654 | { |
---|
2709 | | - struct lan78xx_net *dev = netdev_priv(net); |
---|
| 2655 | + struct lan78xx_net *dev = netdev_priv(net); |
---|
2710 | 2656 | |
---|
2711 | 2657 | if (timer_pending(&dev->stat_monitor)) |
---|
2712 | 2658 | del_timer_sync(&dev->stat_monitor); |
---|
.. | .. |
---|
2745 | 2691 | struct sk_buff *skb, gfp_t flags) |
---|
2746 | 2692 | { |
---|
2747 | 2693 | u32 tx_cmd_a, tx_cmd_b; |
---|
| 2694 | + void *ptr; |
---|
2748 | 2695 | |
---|
2749 | 2696 | if (skb_cow_head(skb, TX_OVERHEAD)) { |
---|
2750 | 2697 | dev_kfree_skb_any(skb); |
---|
.. | .. |
---|
2775 | 2722 | tx_cmd_b |= skb_vlan_tag_get(skb) & TX_CMD_B_VTAG_MASK_; |
---|
2776 | 2723 | } |
---|
2777 | 2724 | |
---|
2778 | | - skb_push(skb, 4); |
---|
2779 | | - cpu_to_le32s(&tx_cmd_b); |
---|
2780 | | - memcpy(skb->data, &tx_cmd_b, 4); |
---|
2781 | | - |
---|
2782 | | - skb_push(skb, 4); |
---|
2783 | | - cpu_to_le32s(&tx_cmd_a); |
---|
2784 | | - memcpy(skb->data, &tx_cmd_a, 4); |
---|
| 2725 | + ptr = skb_push(skb, 8); |
---|
| 2726 | + put_unaligned_le32(tx_cmd_a, ptr); |
---|
| 2727 | + put_unaligned_le32(tx_cmd_b, ptr + 4); |
---|
2785 | 2728 | |
---|
2786 | 2729 | return skb; |
---|
2787 | 2730 | } |
---|
.. | .. |
---|
3020 | 2963 | |
---|
3021 | 2964 | static void lan78xx_skb_return(struct lan78xx_net *dev, struct sk_buff *skb) |
---|
3022 | 2965 | { |
---|
3023 | | - int status; |
---|
| 2966 | + int status; |
---|
3024 | 2967 | |
---|
3025 | 2968 | if (test_bit(EVENT_RX_PAUSED, &dev->flags)) { |
---|
3026 | 2969 | skb_queue_tail(&dev->rxq_pause, skb); |
---|
.. | .. |
---|
3056 | 2999 | struct sk_buff *skb2; |
---|
3057 | 3000 | unsigned char *packet; |
---|
3058 | 3001 | |
---|
3059 | | - memcpy(&rx_cmd_a, skb->data, sizeof(rx_cmd_a)); |
---|
3060 | | - le32_to_cpus(&rx_cmd_a); |
---|
| 3002 | + rx_cmd_a = get_unaligned_le32(skb->data); |
---|
3061 | 3003 | skb_pull(skb, sizeof(rx_cmd_a)); |
---|
3062 | 3004 | |
---|
3063 | | - memcpy(&rx_cmd_b, skb->data, sizeof(rx_cmd_b)); |
---|
3064 | | - le32_to_cpus(&rx_cmd_b); |
---|
| 3005 | + rx_cmd_b = get_unaligned_le32(skb->data); |
---|
3065 | 3006 | skb_pull(skb, sizeof(rx_cmd_b)); |
---|
3066 | 3007 | |
---|
3067 | | - memcpy(&rx_cmd_c, skb->data, sizeof(rx_cmd_c)); |
---|
3068 | | - le16_to_cpus(&rx_cmd_c); |
---|
| 3008 | + rx_cmd_c = get_unaligned_le16(skb->data); |
---|
3069 | 3009 | skb_pull(skb, sizeof(rx_cmd_c)); |
---|
3070 | 3010 | |
---|
3071 | 3011 | packet = skb->data; |
---|
.. | .. |
---|
3226 | 3166 | case -EPIPE: |
---|
3227 | 3167 | dev->net->stats.rx_errors++; |
---|
3228 | 3168 | lan78xx_defer_kevent(dev, EVENT_RX_HALT); |
---|
3229 | | - /* FALLTHROUGH */ |
---|
| 3169 | + fallthrough; |
---|
3230 | 3170 | case -ECONNRESET: /* async unlink */ |
---|
3231 | 3171 | case -ESHUTDOWN: /* hardware gone */ |
---|
3232 | 3172 | netif_dbg(dev, ifdown, dev->net, |
---|
.. | .. |
---|
3247 | 3187 | /* data overrun ... flush fifo? */ |
---|
3248 | 3188 | case -EOVERFLOW: |
---|
3249 | 3189 | dev->net->stats.rx_over_errors++; |
---|
3250 | | - /* FALLTHROUGH */ |
---|
| 3190 | + fallthrough; |
---|
3251 | 3191 | |
---|
3252 | 3192 | default: |
---|
3253 | 3193 | state = rx_cleanup; |
---|
.. | .. |
---|
3287 | 3227 | count = 0; |
---|
3288 | 3228 | length = 0; |
---|
3289 | 3229 | spin_lock_irqsave(&tqp->lock, flags); |
---|
3290 | | - for (skb = tqp->next; pkt_cnt < tqp->qlen; skb = skb->next) { |
---|
| 3230 | + skb_queue_walk(tqp, skb) { |
---|
3291 | 3231 | if (skb_is_gso(skb)) { |
---|
3292 | | - if (pkt_cnt) { |
---|
| 3232 | + if (!skb_queue_is_first(tqp, skb)) { |
---|
3293 | 3233 | /* handle previous packets first */ |
---|
3294 | 3234 | break; |
---|
3295 | 3235 | } |
---|
.. | .. |
---|
3580 | 3520 | |
---|
3581 | 3521 | static void lan78xx_disconnect(struct usb_interface *intf) |
---|
3582 | 3522 | { |
---|
3583 | | - struct lan78xx_net *dev; |
---|
3584 | | - struct usb_device *udev; |
---|
3585 | | - struct net_device *net; |
---|
3586 | | - struct phy_device *phydev; |
---|
| 3523 | + struct lan78xx_net *dev; |
---|
| 3524 | + struct usb_device *udev; |
---|
| 3525 | + struct net_device *net; |
---|
| 3526 | + struct phy_device *phydev; |
---|
3587 | 3527 | |
---|
3588 | 3528 | dev = usb_get_intfdata(intf); |
---|
3589 | 3529 | usb_set_intfdata(intf, NULL); |
---|
.. | .. |
---|
3617 | 3557 | usb_put_dev(udev); |
---|
3618 | 3558 | } |
---|
3619 | 3559 | |
---|
3620 | | -static void lan78xx_tx_timeout(struct net_device *net) |
---|
| 3560 | +static void lan78xx_tx_timeout(struct net_device *net, unsigned int txqueue) |
---|
3621 | 3561 | { |
---|
3622 | 3562 | struct lan78xx_net *dev = netdev_priv(net); |
---|
3623 | 3563 | |
---|
.. | .. |
---|
3646 | 3586 | .ndo_change_mtu = lan78xx_change_mtu, |
---|
3647 | 3587 | .ndo_set_mac_address = lan78xx_set_mac_addr, |
---|
3648 | 3588 | .ndo_validate_addr = eth_validate_addr, |
---|
3649 | | - .ndo_do_ioctl = lan78xx_ioctl, |
---|
| 3589 | + .ndo_do_ioctl = phy_do_ioctl_running, |
---|
3650 | 3590 | .ndo_set_rx_mode = lan78xx_set_multicast, |
---|
3651 | 3591 | .ndo_set_features = lan78xx_set_features, |
---|
3652 | 3592 | .ndo_vlan_rx_add_vid = lan78xx_vlan_rx_add_vid, |
---|
.. | .. |
---|
3744 | 3684 | ret = lan78xx_bind(dev, intf); |
---|
3745 | 3685 | if (ret < 0) |
---|
3746 | 3686 | goto out2; |
---|
3747 | | - strcpy(netdev->name, "eth%d"); |
---|
3748 | 3687 | |
---|
3749 | 3688 | if (netdev->mtu > (dev->hard_mtu - netdev->hard_header_len)) |
---|
3750 | 3689 | netdev->mtu = dev->hard_mtu - netdev->hard_header_len; |
---|
.. | .. |
---|
3845 | 3784 | static int lan78xx_set_suspend(struct lan78xx_net *dev, u32 wol) |
---|
3846 | 3785 | { |
---|
3847 | 3786 | u32 buf; |
---|
3848 | | - int ret; |
---|
3849 | 3787 | int mask_index; |
---|
3850 | 3788 | u16 crc; |
---|
3851 | 3789 | u32 temp_wucsr; |
---|
.. | .. |
---|
3854 | 3792 | const u8 ipv6_multicast[3] = { 0x33, 0x33 }; |
---|
3855 | 3793 | const u8 arp_type[2] = { 0x08, 0x06 }; |
---|
3856 | 3794 | |
---|
3857 | | - ret = lan78xx_read_reg(dev, MAC_TX, &buf); |
---|
| 3795 | + lan78xx_read_reg(dev, MAC_TX, &buf); |
---|
3858 | 3796 | buf &= ~MAC_TX_TXEN_; |
---|
3859 | | - ret = lan78xx_write_reg(dev, MAC_TX, buf); |
---|
3860 | | - ret = lan78xx_read_reg(dev, MAC_RX, &buf); |
---|
| 3797 | + lan78xx_write_reg(dev, MAC_TX, buf); |
---|
| 3798 | + lan78xx_read_reg(dev, MAC_RX, &buf); |
---|
3861 | 3799 | buf &= ~MAC_RX_RXEN_; |
---|
3862 | | - ret = lan78xx_write_reg(dev, MAC_RX, buf); |
---|
| 3800 | + lan78xx_write_reg(dev, MAC_RX, buf); |
---|
3863 | 3801 | |
---|
3864 | | - ret = lan78xx_write_reg(dev, WUCSR, 0); |
---|
3865 | | - ret = lan78xx_write_reg(dev, WUCSR2, 0); |
---|
3866 | | - ret = lan78xx_write_reg(dev, WK_SRC, 0xFFF1FF1FUL); |
---|
| 3802 | + lan78xx_write_reg(dev, WUCSR, 0); |
---|
| 3803 | + lan78xx_write_reg(dev, WUCSR2, 0); |
---|
| 3804 | + lan78xx_write_reg(dev, WK_SRC, 0xFFF1FF1FUL); |
---|
3867 | 3805 | |
---|
3868 | 3806 | temp_wucsr = 0; |
---|
3869 | 3807 | |
---|
3870 | 3808 | temp_pmt_ctl = 0; |
---|
3871 | | - ret = lan78xx_read_reg(dev, PMT_CTL, &temp_pmt_ctl); |
---|
| 3809 | + lan78xx_read_reg(dev, PMT_CTL, &temp_pmt_ctl); |
---|
3872 | 3810 | temp_pmt_ctl &= ~PMT_CTL_RES_CLR_WKP_EN_; |
---|
3873 | 3811 | temp_pmt_ctl |= PMT_CTL_RES_CLR_WKP_STS_; |
---|
3874 | 3812 | |
---|
3875 | 3813 | for (mask_index = 0; mask_index < NUM_OF_WUF_CFG; mask_index++) |
---|
3876 | | - ret = lan78xx_write_reg(dev, WUF_CFG(mask_index), 0); |
---|
| 3814 | + lan78xx_write_reg(dev, WUF_CFG(mask_index), 0); |
---|
3877 | 3815 | |
---|
3878 | 3816 | mask_index = 0; |
---|
3879 | 3817 | if (wol & WAKE_PHY) { |
---|
.. | .. |
---|
3902 | 3840 | |
---|
3903 | 3841 | /* set WUF_CFG & WUF_MASK for IPv4 Multicast */ |
---|
3904 | 3842 | crc = lan78xx_wakeframe_crc16(ipv4_multicast, 3); |
---|
3905 | | - ret = lan78xx_write_reg(dev, WUF_CFG(mask_index), |
---|
| 3843 | + lan78xx_write_reg(dev, WUF_CFG(mask_index), |
---|
3906 | 3844 | WUF_CFGX_EN_ | |
---|
3907 | 3845 | WUF_CFGX_TYPE_MCAST_ | |
---|
3908 | 3846 | (0 << WUF_CFGX_OFFSET_SHIFT_) | |
---|
3909 | 3847 | (crc & WUF_CFGX_CRC16_MASK_)); |
---|
3910 | 3848 | |
---|
3911 | | - ret = lan78xx_write_reg(dev, WUF_MASK0(mask_index), 7); |
---|
3912 | | - ret = lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); |
---|
3913 | | - ret = lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); |
---|
3914 | | - ret = lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); |
---|
| 3849 | + lan78xx_write_reg(dev, WUF_MASK0(mask_index), 7); |
---|
| 3850 | + lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); |
---|
| 3851 | + lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); |
---|
| 3852 | + lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); |
---|
3915 | 3853 | mask_index++; |
---|
3916 | 3854 | |
---|
3917 | 3855 | /* for IPv6 Multicast */ |
---|
3918 | 3856 | crc = lan78xx_wakeframe_crc16(ipv6_multicast, 2); |
---|
3919 | | - ret = lan78xx_write_reg(dev, WUF_CFG(mask_index), |
---|
| 3857 | + lan78xx_write_reg(dev, WUF_CFG(mask_index), |
---|
3920 | 3858 | WUF_CFGX_EN_ | |
---|
3921 | 3859 | WUF_CFGX_TYPE_MCAST_ | |
---|
3922 | 3860 | (0 << WUF_CFGX_OFFSET_SHIFT_) | |
---|
3923 | 3861 | (crc & WUF_CFGX_CRC16_MASK_)); |
---|
3924 | 3862 | |
---|
3925 | | - ret = lan78xx_write_reg(dev, WUF_MASK0(mask_index), 3); |
---|
3926 | | - ret = lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); |
---|
3927 | | - ret = lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); |
---|
3928 | | - ret = lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); |
---|
| 3863 | + lan78xx_write_reg(dev, WUF_MASK0(mask_index), 3); |
---|
| 3864 | + lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); |
---|
| 3865 | + lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); |
---|
| 3866 | + lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); |
---|
3929 | 3867 | mask_index++; |
---|
3930 | 3868 | |
---|
3931 | 3869 | temp_pmt_ctl |= PMT_CTL_WOL_EN_; |
---|
.. | .. |
---|
3946 | 3884 | * for packettype (offset 12,13) = ARP (0x0806) |
---|
3947 | 3885 | */ |
---|
3948 | 3886 | crc = lan78xx_wakeframe_crc16(arp_type, 2); |
---|
3949 | | - ret = lan78xx_write_reg(dev, WUF_CFG(mask_index), |
---|
| 3887 | + lan78xx_write_reg(dev, WUF_CFG(mask_index), |
---|
3950 | 3888 | WUF_CFGX_EN_ | |
---|
3951 | 3889 | WUF_CFGX_TYPE_ALL_ | |
---|
3952 | 3890 | (0 << WUF_CFGX_OFFSET_SHIFT_) | |
---|
3953 | 3891 | (crc & WUF_CFGX_CRC16_MASK_)); |
---|
3954 | 3892 | |
---|
3955 | | - ret = lan78xx_write_reg(dev, WUF_MASK0(mask_index), 0x3000); |
---|
3956 | | - ret = lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); |
---|
3957 | | - ret = lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); |
---|
3958 | | - ret = lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); |
---|
| 3893 | + lan78xx_write_reg(dev, WUF_MASK0(mask_index), 0x3000); |
---|
| 3894 | + lan78xx_write_reg(dev, WUF_MASK1(mask_index), 0); |
---|
| 3895 | + lan78xx_write_reg(dev, WUF_MASK2(mask_index), 0); |
---|
| 3896 | + lan78xx_write_reg(dev, WUF_MASK3(mask_index), 0); |
---|
3959 | 3897 | mask_index++; |
---|
3960 | 3898 | |
---|
3961 | 3899 | temp_pmt_ctl |= PMT_CTL_WOL_EN_; |
---|
.. | .. |
---|
3963 | 3901 | temp_pmt_ctl |= PMT_CTL_SUS_MODE_0_; |
---|
3964 | 3902 | } |
---|
3965 | 3903 | |
---|
3966 | | - ret = lan78xx_write_reg(dev, WUCSR, temp_wucsr); |
---|
| 3904 | + lan78xx_write_reg(dev, WUCSR, temp_wucsr); |
---|
3967 | 3905 | |
---|
3968 | 3906 | /* when multiple WOL bits are set */ |
---|
3969 | 3907 | if (hweight_long((unsigned long)wol) > 1) { |
---|
.. | .. |
---|
3971 | 3909 | temp_pmt_ctl &= ~PMT_CTL_SUS_MODE_MASK_; |
---|
3972 | 3910 | temp_pmt_ctl |= PMT_CTL_SUS_MODE_0_; |
---|
3973 | 3911 | } |
---|
3974 | | - ret = lan78xx_write_reg(dev, PMT_CTL, temp_pmt_ctl); |
---|
| 3912 | + lan78xx_write_reg(dev, PMT_CTL, temp_pmt_ctl); |
---|
3975 | 3913 | |
---|
3976 | 3914 | /* clear WUPS */ |
---|
3977 | | - ret = lan78xx_read_reg(dev, PMT_CTL, &buf); |
---|
| 3915 | + lan78xx_read_reg(dev, PMT_CTL, &buf); |
---|
3978 | 3916 | buf |= PMT_CTL_WUPS_MASK_; |
---|
3979 | | - ret = lan78xx_write_reg(dev, PMT_CTL, buf); |
---|
| 3917 | + lan78xx_write_reg(dev, PMT_CTL, buf); |
---|
3980 | 3918 | |
---|
3981 | | - ret = lan78xx_read_reg(dev, MAC_RX, &buf); |
---|
| 3919 | + lan78xx_read_reg(dev, MAC_RX, &buf); |
---|
3982 | 3920 | buf |= MAC_RX_RXEN_; |
---|
3983 | | - ret = lan78xx_write_reg(dev, MAC_RX, buf); |
---|
| 3921 | + lan78xx_write_reg(dev, MAC_RX, buf); |
---|
3984 | 3922 | |
---|
3985 | 3923 | return 0; |
---|
3986 | 3924 | } |
---|
.. | .. |
---|
3991 | 3929 | struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); |
---|
3992 | 3930 | u32 buf; |
---|
3993 | 3931 | int ret; |
---|
3994 | | - int event; |
---|
3995 | | - |
---|
3996 | | - event = message.event; |
---|
3997 | 3932 | |
---|
3998 | 3933 | if (!dev->suspend_count++) { |
---|
3999 | 3934 | spin_lock_irq(&dev->txq.lock); |
---|