From patchwork Tue Mar 24 23:08:53 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joakim Tjernlund X-Patchwork-Id: 25031 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 1FE5CDDFCD for ; Wed, 25 Mar 2009 10:09:03 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753476AbZCXXI5 (ORCPT ); Tue, 24 Mar 2009 19:08:57 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753397AbZCXXI5 (ORCPT ); Tue, 24 Mar 2009 19:08:57 -0400 Received: from gw1.transmode.se ([213.115.205.20]:43689 "EHLO gw1.transmode.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752303AbZCXXI4 (ORCPT ); Tue, 24 Mar 2009 19:08:56 -0400 Received: from sesr04.transmode.se (sesr04.transmode.se [192.168.201.15]) by gw1.transmode.se (Postfix) with ESMTP id 6161952328; Wed, 25 Mar 2009 00:08:53 +0100 (CET) In-Reply-To: <20090324.154902.206324978.davem@davemloft.net> References: <20090324.142209.234280606.davem@davemloft.net> <20090324.154902.206324978.davem@davemloft.net> To: David Miller Cc: avorontsov@ru.mvista.com, leoli@freescale.com, linuxppc-dev@ozlabs.org, netdev@vger.kernel.org MIME-Version: 1.0 Subject: Re: [PATCH] ucc_geth: Convert to net_device_ops X-KeepSent: 4B79F4DE:4DC6DEA7-C1257583:007ECBEA; type=4; name=$KeepSent X-Mailer: Lotus Notes Release 8.5 December 05, 2008 Message-ID: From: Joakim Tjernlund Date: Wed, 25 Mar 2009 00:08:53 +0100 X-MIMETrack: Serialize by Router on sesr04/Transmode(Release 8.5|December 05, 2008) at 2009-03-25 00:08:53 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org David Miller wrote on 24/03/2009 23:49:02: > > From: Joakim Tjernlund > Date: Tue, 24 Mar 2009 23:45:13 +0100 > > > I don't follow. Are these mandatory now? They were not in the old > > impl. either. > > See ether_setup() which is called indirectly via alloc_etherdev(). > > Yawn... Same here, getting tiered. Should have seen that. Here goes, attatched as well as explained earlier. Jocke From 651fcd7d1ba494f2e2f20da51196b1b3dccdcd68 Mon Sep 17 00:00:00 2001 From: Joakim Tjernlund Date: Fri, 20 Mar 2009 21:09:14 +0100 Subject: [PATCH] ucc_geth: Convert to net_device_ops --- drivers/net/ucc_geth.c | 24 +++++++++++++++--------- 1 files changed, 15 insertions(+), 9 deletions(-) { struct device *device = &ofdev->dev; @@ -3716,19 +3730,11 @@ static int ucc_geth_probe(struct of_device* ofdev, const struct of_device_id *ma /* Fill in the dev structure */ uec_set_ethtool_ops(dev); - dev->open = ucc_geth_open; - dev->hard_start_xmit = ucc_geth_start_xmit; - dev->tx_timeout = ucc_geth_timeout; + dev->netdev_ops = &ucc_geth_netdev_ops; dev->watchdog_timeo = TX_TIMEOUT; INIT_WORK(&ugeth->timeout_work, ucc_geth_timeout_work); netif_napi_add(dev, &ugeth->napi, ucc_geth_poll, UCC_GETH_DEV_WEIGHT); -#ifdef CONFIG_NET_POLL_CONTROLLER - dev->poll_controller = ucc_netpoll; -#endif - dev->stop = ucc_geth_close; -// dev->change_mtu = ucc_geth_change_mtu; dev->mtu = 1500; - dev->set_multicast_list = ucc_geth_set_multi; ugeth->msg_enable = netif_msg_init(debug.msg_enable, UGETH_MSG_DEFAULT); ugeth->phy_interface = phy_interface; diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c index 7716239..097aed8 100644 --- a/drivers/net/ucc_geth.c +++ b/drivers/net/ucc_geth.c @@ -3501,6 +3501,20 @@ static phy_interface_t to_phy_interface(const char *phy_connection_type) return PHY_INTERFACE_MODE_MII; } +static const struct net_device_ops ucc_geth_netdev_ops = { + .ndo_open = ucc_geth_open, + .ndo_stop = ucc_geth_close, + .ndo_start_xmit = ucc_geth_start_xmit, + .ndo_validate_addr = eth_validate_addr, + .ndo_set_mac_address = eth_mac_addr, + .ndo_change_mtu = eth_change_mtu, + .ndo_set_multicast_list = ucc_geth_set_multi, + .ndo_tx_timeout = ucc_geth_timeout, +#ifdef CONFIG_NET_POLL_CONTROLLER + .ndo_poll_controller = ucc_netpoll, +#endif +}; + static int ucc_geth_probe(struct of_device* ofdev, const struct of_device_id *match)