| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0+ |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Driver for Broadcom 63xx SOCs integrated PHYs |
|---|
| 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 |
|---|
| 7 | | - * 2 of the License, or (at your option) any later version. |
|---|
| 8 | 4 | */ |
|---|
| 9 | 5 | #include "bcm-phy-lib.h" |
|---|
| 10 | 6 | #include <linux/module.h> |
|---|
| .. | .. |
|---|
| 42 | 38 | { |
|---|
| 43 | 39 | int reg, err; |
|---|
| 44 | 40 | |
|---|
| 41 | + /* ASYM_PAUSE bit is marked RO in datasheet, so don't cheat */ |
|---|
| 42 | + linkmode_set_bit(ETHTOOL_LINK_MODE_Pause_BIT, phydev->supported); |
|---|
| 43 | + |
|---|
| 45 | 44 | reg = phy_read(phydev, MII_BCM63XX_IR); |
|---|
| 46 | 45 | if (reg < 0) |
|---|
| 47 | 46 | return reg; |
|---|
| .. | .. |
|---|
| 65 | 64 | .phy_id = 0x00406000, |
|---|
| 66 | 65 | .phy_id_mask = 0xfffffc00, |
|---|
| 67 | 66 | .name = "Broadcom BCM63XX (1)", |
|---|
| 68 | | - /* ASYM_PAUSE bit is marked RO in datasheet, so don't cheat */ |
|---|
| 69 | | - .features = (PHY_BASIC_FEATURES | SUPPORTED_Pause), |
|---|
| 70 | | - .flags = PHY_HAS_INTERRUPT | PHY_IS_INTERNAL, |
|---|
| 67 | + /* PHY_BASIC_FEATURES */ |
|---|
| 68 | + .flags = PHY_IS_INTERNAL, |
|---|
| 71 | 69 | .config_init = bcm63xx_config_init, |
|---|
| 72 | 70 | .ack_interrupt = bcm_phy_ack_intr, |
|---|
| 73 | 71 | .config_intr = bcm63xx_config_intr, |
|---|
| .. | .. |
|---|
| 76 | 74 | .phy_id = 0x002bdc00, |
|---|
| 77 | 75 | .phy_id_mask = 0xfffffc00, |
|---|
| 78 | 76 | .name = "Broadcom BCM63XX (2)", |
|---|
| 79 | | - .features = (PHY_BASIC_FEATURES | SUPPORTED_Pause), |
|---|
| 80 | | - .flags = PHY_HAS_INTERRUPT | PHY_IS_INTERNAL, |
|---|
| 77 | + /* PHY_BASIC_FEATURES */ |
|---|
| 78 | + .flags = PHY_IS_INTERNAL, |
|---|
| 81 | 79 | .config_init = bcm63xx_config_init, |
|---|
| 82 | 80 | .ack_interrupt = bcm_phy_ack_intr, |
|---|
| 83 | 81 | .config_intr = bcm63xx_config_intr, |
|---|