diff --git a/drivers/net/ethernet/baikal/xgbe/xgbe-drv.c b/drivers/net/ethernet/baikal/xgbe/xgbe-drv.c index 263b28254dfa..4902181b4123 100644 --- a/drivers/net/ethernet/baikal/xgbe/xgbe-drv.c +++ b/drivers/net/ethernet/baikal/xgbe/xgbe-drv.c @@ -1651,8 +1651,10 @@ static void xgbe_poll_controller(struct net_device *netdev) if (pdata->per_channel_irq) { channel = pdata->channel; - for (i = 0; i < pdata->channel_count; i++, channel++) - xgbe_dma_isr(channel->dma_irq, channel); + for (i = 0; i < pdata->channel_count; i++, channel++) { + xgbe_dma_tx_isr(channel->tx_dma_irq, channel); + xgbe_dma_rx_isr(channel->rx_dma_irq, channel); + } } else { disable_irq(pdata->dev_irq); xgbe_isr(pdata->dev_irq, pdata); @@ -1663,11 +1665,17 @@ static void xgbe_poll_controller(struct net_device *netdev) } #endif /* End CONFIG_NET_POLL_CONTROLLER */ -static int xgbe_setup_tc(struct net_device *netdev, u8 tc) +static int xgbe_setup_tc(struct net_device *netdev, u32 handle, __be16 proto, + struct tc_to_netdev *tc_to_netdev) { struct xgbe_prv_data *pdata = netdev_priv(netdev); unsigned int offset, queue; - u8 i; + u8 tc, i; + + if (tc_to_netdev->type != TC_SETUP_MQPRIO) + return -EINVAL; + + tc = tc_to_netdev->tc; if (tc && (tc != pdata->hw_feat.tc_cnt)) return -EINVAL; diff --git a/drivers/net/ethernet/baikal/xgbe/xgbe-mdio.c b/drivers/net/ethernet/baikal/xgbe/xgbe-mdio.c index bf68befa5231..7eea8350192b 100644 --- a/drivers/net/ethernet/baikal/xgbe/xgbe-mdio.c +++ b/drivers/net/ethernet/baikal/xgbe/xgbe-mdio.c @@ -542,11 +542,11 @@ static int be_xgbe_xmit_probe(struct xgbe_prv_data *pdata) phydev->speed = SPEED_10000; phydev->duplex = DUPLEX_FULL; - phydev->dev.of_node = xmit_node; + phydev->mdio.dev.of_node = xmit_node; pdata->phydev = phydev; /* refcount is held by phy_attach_direct() on success */ - put_device(&phydev->dev); + put_device(&phydev->mdio.dev); #if 0 /* Add sysfs link to netdevice */