From: "Liang, Cunming" <cunming.liang@intel.com>
To: Yong Liu <yong.liu@intel.com>, dev@dpdk.org
Subject: Re: [PATCH v1 1/7] e1000: add rx interrupt support
Date: Mon, 26 Oct 2015 15:35:44 +0800 [thread overview]
Message-ID: <562DD7D0.8060808@intel.com> (raw)
In-Reply-To: <1443169692-4709-2-git-send-email-yong.liu@intel.com>
Hi Yong,
On 9/25/2015 4:28 PM, Yong Liu wrote:
> From: Marvin Liu <yong.liu@intel.com>
>
> Enable rx interrupt support on e1000 PF non-IOV mode.
As I know, e1000 hasn't IOV mode. It's not necessary to mention PF
non-IOV mode or not.
In addition, it's necessary to mention the patch series is to support
uio/vfio or both? To allow physical/emulation or both?
>
> Signed-off-by: Marvin Liu <yong.liu@intel.com>
>
> diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
> index 912f5dd..99beb9c 100644
> --- a/drivers/net/e1000/em_ethdev.c
> +++ b/drivers/net/e1000/em_ethdev.c
> @@ -81,6 +81,7 @@ static int eth_em_flow_ctrl_get(struct rte_eth_dev *dev,
> static int eth_em_flow_ctrl_set(struct rte_eth_dev *dev,
> struct rte_eth_fc_conf *fc_conf);
> static int eth_em_interrupt_setup(struct rte_eth_dev *dev);
> +static int eth_em_rxq_interrupt_setup(struct rte_eth_dev *dev);
> static int eth_em_interrupt_get_status(struct rte_eth_dev *dev);
> static int eth_em_interrupt_action(struct rte_eth_dev *dev);
> static void eth_em_interrupt_handler(struct rte_intr_handle *handle,
> @@ -107,6 +108,7 @@ 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 void em_rxq_intr_enable(struct e1000_hw *hw);
> static int eth_em_led_on(struct rte_eth_dev *dev);
> static int eth_em_led_off(struct rte_eth_dev *dev);
>
> @@ -608,6 +610,9 @@ eth_em_start(struct rte_eth_dev *dev)
> return ret;
> }
> }
> + /* check if rxq interrupt is enabled */
> + if (dev->data->dev_conf.intr_conf.rxq != 0)
> + eth_em_rxq_interrupt_setup(dev);
>
> adapter->stopped = 0;
>
> @@ -1276,6 +1281,39 @@ eth_em_interrupt_setup(struct rte_eth_dev *dev)
> return (0);
> }
>
> +/* It clears the interrupt causes and enables the interrupt.
Comments start from next line of '/*' or '/**'?
> + * It will be called once only during nic initialized.
> + *
> + * @param dev
> + * Pointer to struct rte_eth_dev.
> + *
> + * @return
> + * - On success, zero.
> + * - On failure, a negative value.
> + */
> +static int
> +eth_em_rxq_interrupt_setup(struct rte_eth_dev *dev)
> +{
> + struct e1000_hw *hw =
> + E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> +
> + E1000_READ_REG(hw, E1000_ICR);
> + em_rxq_intr_enable(hw);
> + return 0;
> +}
> +
> +/* It enable receive packet interrupt.
The same.
> + * @param hw
> + * Pointer to struct e1000_hw
> + *
> + * @return
> + */
> +static void
> +em_rxq_intr_enable(struct e1000_hw *hw)
> +{
> + E1000_WRITE_REG(hw, E1000_IMS, E1000_IMS_RXT0);
To make sure post-write be finished immediately, E1000_WRITE_FLUSH()
shall add behind.
> +}
> +
> /*
> * It reads ICR and gets interrupt causes, check it and set a bit flag
> * to update link status.
next prev parent reply other threads:[~2015-10-26 7:36 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-25 8:28 [PATCH v1 0/7] interrupt mode for e1000 Yong Liu
2015-09-25 8:28 ` [PATCH v1 1/7] e1000: add rx interrupt support Yong Liu
2015-10-26 7:35 ` Liang, Cunming [this message]
2015-10-27 14:48 ` Liu, Yong
2015-09-25 8:28 ` [PATCH v1 2/7] e1000: separate lsc and rxq interrupt function Yong Liu
2015-09-25 8:28 ` [PATCH v1 3/7] e1000: add ethdev rxq enable and disable function Yong Liu
2015-10-26 7:37 ` Liang, Cunming
2015-09-25 8:28 ` [PATCH v1 4/7] e1000: add rxq interrupt handler Yong Liu
2015-09-25 8:28 ` [PATCH v1 5/7] e1000: check lsc and rxq not enable in the same time Yong Liu
2015-09-25 8:28 ` [PATCH v1 6/7] e1000: lsc interrupt setup only enable itself Yong Liu
2015-09-25 8:28 ` [PATCH v1 7/7] l3fwd-power: disable interrupt when wake up from sleep Yong Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=562DD7D0.8060808@intel.com \
--to=cunming.liang@intel.com \
--cc=dev@dpdk.org \
--cc=yong.liu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.