ACK/cmnt: [PATCH][X/Z] UBUNTU: SAUCE: igb: add support for using Broadcom 54616 as PHY
Stefan Bader
stefan.bader at canonical.com
Mon Aug 21 10:29:53 UTC 2017
On 21.08.2017 11:11, Wen-chien Jesse Sung wrote:
> BugLink: https://launchpad.net/bugs/1712024
>
> Ported from packages/base/any/kernels/3.18.25/patches/driver-support-intel-igb-bcm54616-phy.patch
> in OpenNetworkLinux https://github.com/opencomputeproject/OpenNetworkLinux/
>
> Signed-off-by: Wen-chien Jesse Sung <jesse.sung at canonical.com>
Acked-by: Stefan Bader <stefan.bader at canonical.com>
> ---
For X/Z this needs some SRU justification in the bug report. Generally SRU would
be better after that went into upstream, but looks to be isolated enough that it
is testable and has a low chance to cause regressions.
-Stefan
> drivers/net/ethernet/intel/igb/e1000_82575.c | 6 ++++++
> drivers/net/ethernet/intel/igb/e1000_defines.h | 1 +
> drivers/net/ethernet/intel/igb/e1000_hw.h | 1 +
> drivers/net/ethernet/intel/igb/igb_main.c | 1 +
> 4 files changed, 9 insertions(+)
>
> diff --git a/drivers/net/ethernet/intel/igb/e1000_82575.c b/drivers/net/ethernet/intel/igb/e1000_82575.c
> index 9a1a9c7..337c8e2 100644
> --- a/drivers/net/ethernet/intel/igb/e1000_82575.c
> +++ b/drivers/net/ethernet/intel/igb/e1000_82575.c
> @@ -328,6 +328,9 @@ static s32 igb_init_phy_params_82575(struct e1000_hw *hw)
> phy->ops.set_d3_lplu_state = igb_set_d3_lplu_state_82580;
> phy->ops.force_speed_duplex = igb_phy_force_speed_duplex_m88;
> break;
> + case BCM54616_E_PHY_ID:
> + phy->type = e1000_phy_bcm54616;
> + break;
> default:
> ret_val = -E1000_ERR_PHY;
> goto out;
> @@ -1603,6 +1606,7 @@ static s32 igb_setup_copper_link_82575(struct e1000_hw *hw)
> case e1000_i350:
> case e1000_i210:
> case e1000_i211:
> + case e1000_i354:
> phpm_reg = rd32(E1000_82580_PHY_POWER_MGMT);
> phpm_reg &= ~E1000_82580_PM_GO_LINKD;
> wr32(E1000_82580_PHY_POWER_MGMT, phpm_reg);
> @@ -1647,6 +1651,8 @@ static s32 igb_setup_copper_link_82575(struct e1000_hw *hw)
> case e1000_phy_82580:
> ret_val = igb_copper_link_setup_82580(hw);
> break;
> + case e1000_phy_bcm54616:
> + break;
> default:
> ret_val = -E1000_ERR_PHY;
> break;
> diff --git a/drivers/net/ethernet/intel/igb/e1000_defines.h b/drivers/net/ethernet/intel/igb/e1000_defines.h
> index e9f23ee..143bcf0 100644
> --- a/drivers/net/ethernet/intel/igb/e1000_defines.h
> +++ b/drivers/net/ethernet/intel/igb/e1000_defines.h
> @@ -867,6 +867,7 @@
> #define I210_I_PHY_ID 0x01410C00
> #define M88E1543_E_PHY_ID 0x01410EA0
> #define M88E1512_E_PHY_ID 0x01410DD0
> +#define BCM54616_E_PHY_ID 0x03625D10
>
> /* M88E1000 Specific Registers */
> #define M88E1000_PHY_SPEC_CTRL 0x10 /* PHY Specific Control Register */
> diff --git a/drivers/net/ethernet/intel/igb/e1000_hw.h b/drivers/net/ethernet/intel/igb/e1000_hw.h
> index f0c416e..783914e 100644
> --- a/drivers/net/ethernet/intel/igb/e1000_hw.h
> +++ b/drivers/net/ethernet/intel/igb/e1000_hw.h
> @@ -128,6 +128,7 @@ enum e1000_phy_type {
> e1000_phy_ife,
> e1000_phy_82580,
> e1000_phy_i210,
> + e1000_phy_bcm54616,
> };
>
> enum e1000_bus_type {
> diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
> index b01382f..3325dab 100644
> --- a/drivers/net/ethernet/intel/igb/igb_main.c
> +++ b/drivers/net/ethernet/intel/igb/igb_main.c
> @@ -108,6 +108,7 @@ static const struct pci_device_id igb_pci_tbl[] = {
> { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_COPPER), board_82575 },
> { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_FIBER_SERDES), board_82575 },
> { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575GB_QUAD_COPPER), board_82575 },
> + { PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_SGMII), board_82575 },
> /* required last entry */
> {0, }
> };
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20170821/f84b6cfb/attachment.sig>
More information about the kernel-team
mailing list