From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 5D67F378E for ; Mon, 26 Oct 2015 08:37:42 +0100 (CET) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP; 26 Oct 2015 00:37:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,200,1444719600"; d="scan'208";a="802966356" Received: from shwdeisgchi017.ccr.corp.intel.com (HELO [10.239.66.70]) ([10.239.66.70]) by orsmga001.jf.intel.com with ESMTP; 26 Oct 2015 00:37:34 -0700 Message-ID: <562DD83F.8090806@intel.com> Date: Mon, 26 Oct 2015 15:37:35 +0800 From: "Liang, Cunming" User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Yong Liu , dev@dpdk.org References: <1443169692-4709-1-git-send-email-yong.liu@intel.com> <1443169692-4709-4-git-send-email-yong.liu@intel.com> In-Reply-To: <1443169692-4709-4-git-send-email-yong.liu@intel.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v1 3/7] e1000: add ethdev rxq enable and disable function X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Oct 2015 07:37:42 -0000 On 9/25/2015 4:28 PM, Yong Liu wrote: > From: Marvin Liu > > Implement rxq interrupt related functions in eth_dev_ops structure. > > Signed-off-by: Marvin Liu > > diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c > index e86c039..2b67b62 100644 > --- a/drivers/net/e1000/em_ethdev.c > +++ b/drivers/net/e1000/em_ethdev.c > @@ -108,6 +108,9 @@ static void em_vlan_hw_strip_disable(struct rte_eth_dev *dev); > static void eth_em_vlan_filter_set(struct rte_eth_dev *dev, > uint16_t vlan_id, int on); > */ > + > +static int eth_em_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id); > +static int eth_em_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id); > static void em_lsc_intr_disable(struct e1000_hw *hw); > static void em_rxq_intr_enable(struct e1000_hw *hw); > static void em_rxq_intr_disable(struct e1000_hw *hw); > @@ -163,6 +166,8 @@ static const struct eth_dev_ops eth_em_ops = { > .rx_descriptor_done = eth_em_rx_descriptor_done, > .tx_queue_setup = eth_em_tx_queue_setup, > .tx_queue_release = eth_em_tx_queue_release, > + .rx_queue_intr_enable = eth_em_rx_queue_intr_enable, > + .rx_queue_intr_disable = eth_em_rx_queue_intr_disable, > .dev_led_on = eth_em_led_on, > .dev_led_off = eth_em_led_off, > .flow_ctrl_get = eth_em_flow_ctrl_get, > @@ -891,6 +896,27 @@ eth_em_stats_reset(struct rte_eth_dev *dev) > memset(hw_stats, 0, sizeof(*hw_stats)); > } > > +static int > +eth_em_rx_queue_intr_enable(struct rte_eth_dev *dev, __attribute__((__unused__))uint16_t queue_id) Suggest to use __rte_unused instead of __attribute__((__unused__)). > +{ > + struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private); > + > + em_rxq_intr_enable(hw); > + rte_intr_enable(&(dev->pci_dev->intr_handle)); > + > + return 0; > +} > + > +static int > +eth_em_rx_queue_intr_disable(struct rte_eth_dev *dev, __attribute__((__unused__))uint16_t queue_id) The same. > +{ > + struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private); > + > + em_rxq_intr_disable(hw); > + > + return 0; > +} > + > static uint32_t > em_get_max_pktlen(const struct e1000_hw *hw) > {