From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Liang, Cunming" Subject: Re: [PATCH v1 3/7] e1000: add ethdev rxq enable and disable function Date: Mon, 26 Oct 2015 15:37:35 +0800 Message-ID: <562DD83F.8090806@intel.com> References: <1443169692-4709-1-git-send-email-yong.liu@intel.com> <1443169692-4709-4-git-send-email-yong.liu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit To: Yong Liu , dev@dpdk.org 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) In-Reply-To: <1443169692-4709-4-git-send-email-yong.liu@intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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) > {