Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Overlapping header include additions in macsec.c A bug fix in 'net' overlapping with the removal of 'version' string in ena_netdev.c Overlapping test additions in selftests Makefile Overlapping PCI ID table adjustments in iwlwifi driver. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -30,7 +30,8 @@
|
||||
#define DP83867_CTRL 0x1f
|
||||
|
||||
/* Extended Registers */
|
||||
#define DP83867_CFG4 0x0031
|
||||
#define DP83867_FLD_THR_CFG 0x002e
|
||||
#define DP83867_CFG4 0x0031
|
||||
#define DP83867_CFG4_SGMII_ANEG_MASK (BIT(5) | BIT(6))
|
||||
#define DP83867_CFG4_SGMII_ANEG_TIMER_11MS (3 << 5)
|
||||
#define DP83867_CFG4_SGMII_ANEG_TIMER_800US (2 << 5)
|
||||
@@ -93,6 +94,7 @@
|
||||
#define DP83867_STRAP_STS2_CLK_SKEW_RX_MASK GENMASK(2, 0)
|
||||
#define DP83867_STRAP_STS2_CLK_SKEW_RX_SHIFT 0
|
||||
#define DP83867_STRAP_STS2_CLK_SKEW_NONE BIT(2)
|
||||
#define DP83867_STRAP_STS2_STRAP_FLD BIT(10)
|
||||
|
||||
/* PHY CTRL bits */
|
||||
#define DP83867_PHYCR_TX_FIFO_DEPTH_SHIFT 14
|
||||
@@ -145,6 +147,9 @@
|
||||
/* CFG4 bits */
|
||||
#define DP83867_CFG4_PORT_MIRROR_EN BIT(0)
|
||||
|
||||
/* FLD_THR_CFG */
|
||||
#define DP83867_FLD_THR_CFG_ENERGY_LOST_THR_MASK 0x7
|
||||
|
||||
enum {
|
||||
DP83867_PORT_MIRROING_KEEP,
|
||||
DP83867_PORT_MIRROING_EN,
|
||||
@@ -622,6 +627,20 @@ static int dp83867_config_init(struct phy_device *phydev)
|
||||
phy_clear_bits_mmd(phydev, DP83867_DEVADDR, DP83867_CFG4,
|
||||
BIT(7));
|
||||
|
||||
bs = phy_read_mmd(phydev, DP83867_DEVADDR, DP83867_STRAP_STS2);
|
||||
if (bs & DP83867_STRAP_STS2_STRAP_FLD) {
|
||||
/* When using strap to enable FLD, the ENERGY_LOST_FLD_THR will
|
||||
* be set to 0x2. This may causes the PHY link to be unstable -
|
||||
* the default value 0x1 need to be restored.
|
||||
*/
|
||||
ret = phy_modify_mmd(phydev, DP83867_DEVADDR,
|
||||
DP83867_FLD_THR_CFG,
|
||||
DP83867_FLD_THR_CFG_ENERGY_LOST_THR_MASK,
|
||||
0x1);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (phy_interface_is_rgmii(phydev) ||
|
||||
phydev->interface == PHY_INTERFACE_MODE_SGMII) {
|
||||
val = phy_read(phydev, MII_DP83867_PHYCTRL);
|
||||
|
@@ -242,11 +242,9 @@ static int unimac_mdio_probe(struct platform_device *pdev)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
priv->clk = devm_clk_get(&pdev->dev, NULL);
|
||||
if (PTR_ERR(priv->clk) == -EPROBE_DEFER)
|
||||
priv->clk = devm_clk_get_optional(&pdev->dev, NULL);
|
||||
if (IS_ERR(priv->clk))
|
||||
return PTR_ERR(priv->clk);
|
||||
else
|
||||
priv->clk = NULL;
|
||||
|
||||
ret = clk_prepare_enable(priv->clk);
|
||||
if (ret)
|
||||
|
@@ -282,8 +282,13 @@ static int mdio_mux_iproc_suspend(struct device *dev)
|
||||
static int mdio_mux_iproc_resume(struct device *dev)
|
||||
{
|
||||
struct iproc_mdiomux_desc *md = dev_get_drvdata(dev);
|
||||
int rc;
|
||||
|
||||
clk_prepare_enable(md->core_clk);
|
||||
rc = clk_prepare_enable(md->core_clk);
|
||||
if (rc) {
|
||||
dev_err(md->dev, "failed to enable core clk\n");
|
||||
return rc;
|
||||
}
|
||||
mdio_mux_iproc_config(md);
|
||||
|
||||
return 0;
|
||||
|
@@ -572,13 +572,15 @@ static void sfp_upstream_clear(struct sfp_bus *bus)
|
||||
* the sfp_bus structure, incrementing its reference count. This must
|
||||
* be put via sfp_bus_put() when done.
|
||||
*
|
||||
* Returns: on success, a pointer to the sfp_bus structure,
|
||||
* %NULL if no SFP is specified,
|
||||
* on failure, an error pointer value:
|
||||
* corresponding to the errors detailed for
|
||||
* fwnode_property_get_reference_args().
|
||||
* %-ENOMEM if we failed to allocate the bus.
|
||||
* an error from the upstream's connect_phy() method.
|
||||
* Returns:
|
||||
* - on success, a pointer to the sfp_bus structure,
|
||||
* - %NULL if no SFP is specified,
|
||||
* - on failure, an error pointer value:
|
||||
*
|
||||
* - corresponding to the errors detailed for
|
||||
* fwnode_property_get_reference_args().
|
||||
* - %-ENOMEM if we failed to allocate the bus.
|
||||
* - an error from the upstream's connect_phy() method.
|
||||
*/
|
||||
struct sfp_bus *sfp_bus_find_fwnode(struct fwnode_handle *fwnode)
|
||||
{
|
||||
@@ -612,13 +614,15 @@ EXPORT_SYMBOL_GPL(sfp_bus_find_fwnode);
|
||||
* the SFP bus using sfp_register_upstream(). This takes a reference on the
|
||||
* bus, so it is safe to put the bus after this call.
|
||||
*
|
||||
* Returns: on success, a pointer to the sfp_bus structure,
|
||||
* %NULL if no SFP is specified,
|
||||
* on failure, an error pointer value:
|
||||
* corresponding to the errors detailed for
|
||||
* fwnode_property_get_reference_args().
|
||||
* %-ENOMEM if we failed to allocate the bus.
|
||||
* an error from the upstream's connect_phy() method.
|
||||
* Returns:
|
||||
* - on success, a pointer to the sfp_bus structure,
|
||||
* - %NULL if no SFP is specified,
|
||||
* - on failure, an error pointer value:
|
||||
*
|
||||
* - corresponding to the errors detailed for
|
||||
* fwnode_property_get_reference_args().
|
||||
* - %-ENOMEM if we failed to allocate the bus.
|
||||
* - an error from the upstream's connect_phy() method.
|
||||
*/
|
||||
int sfp_bus_add_upstream(struct sfp_bus *bus, void *upstream,
|
||||
const struct sfp_upstream_ops *ops)
|
||||
|
Reference in New Issue
Block a user