diff options
Diffstat (limited to 'drivers/net/ucc_geth.c')
| -rw-r--r-- | drivers/net/ucc_geth.c | 16 | 
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c index 807470e156a..8d532f9b50d 100644 --- a/drivers/net/ucc_geth.c +++ b/drivers/net/ucc_geth.c @@ -594,7 +594,7 @@ static void dump_regs(struct ucc_geth_private *ugeth)  {  	int i; -	ugeth_info("UCC%d Geth registers:", ugeth->ug_info->uf_info.ucc_num); +	ugeth_info("UCC%d Geth registers:", ugeth->ug_info->uf_info.ucc_num + 1);  	ugeth_info("Base address: 0x%08x", (u32) ugeth->ug_regs);  	ugeth_info("maccfg1    : addr - 0x%08x, val - 0x%08x", @@ -3704,6 +3704,19 @@ static phy_interface_t to_phy_interface(const char *phy_connection_type)  	return PHY_INTERFACE_MODE_MII;  } +static int ucc_geth_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) +{ +	struct ucc_geth_private *ugeth = netdev_priv(dev); + +	if (!netif_running(dev)) +		return -EINVAL; + +	if (!ugeth->phydev) +		return -ENODEV; + +	return phy_mii_ioctl(ugeth->phydev, rq, cmd); +} +  static const struct net_device_ops ucc_geth_netdev_ops = {  	.ndo_open		= ucc_geth_open,  	.ndo_stop		= ucc_geth_close, @@ -3713,6 +3726,7 @@ static const struct net_device_ops ucc_geth_netdev_ops = {  	.ndo_change_mtu		= eth_change_mtu,  	.ndo_set_multicast_list	= ucc_geth_set_multi,  	.ndo_tx_timeout		= ucc_geth_timeout, +	.ndo_do_ioctl		= ucc_geth_ioctl,  #ifdef CONFIG_NET_POLL_CONTROLLER  	.ndo_poll_controller	= ucc_netpoll,  #endif  |