Re: [PATCH v2 08/15] net/avp: device initialization
From: Jerin Jacob <hidden>
Date: 2017-02-28 11:57:29
On Sun, Feb 26, 2017 at 02:08:56PM -0500, Allain Legacy wrote:
quoted hunk ↗ jump to hunk
Adds support for initialization newly probed AVP PCI devices. Initial queue translations are setup in preparation for device configuration. Signed-off-by: Allain Legacy <redacted> Signed-off-by: Matt Peters <redacted> --- drivers/net/avp/avp_ethdev.c | 757 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 757 insertions(+)diff --git a/drivers/net/avp/avp_ethdev.c b/drivers/net/avp/avp_ethdev.c index 6522555..3bbff33 100644 --- a/drivers/net/avp/avp_ethdev.c +++ b/drivers/net/avp/avp_ethdev.c@@ -60,6 +60,8 @@ #include "avp_logs.h" +static int avp_dev_create(struct rte_pci_device *pci_dev, + struct rte_eth_dev *eth_dev); static int eth_avp_dev_init(struct rte_eth_dev *eth_dev); static int eth_avp_dev_uninit(struct rte_eth_dev *eth_dev);@@ -103,6 +105,16 @@ }; +/**@{ AVP device flags */ +#define RTE_AVP_F_PROMISC (1 << 1) +#define RTE_AVP_F_CONFIGURED (1 << 2) +#define RTE_AVP_F_LINKUP (1 << 3) +#define RTE_AVP_F_DETACHED (1 << 4) +/**@} */ + +/* Ethernet device validation marker */ +#define RTE_AVP_ETHDEV_MAGIC 0x92972862
I think, we don't need to add RTE_ for internal flags and PMD APIs etc.
quoted hunk ↗ jump to hunk
+ /* * Defines the AVP device attributes which are attached to an RTE ethernet * device@@ -150,11 +162,726 @@ struct avp_adapter { struct avp_dev avp; } __rte_cache_aligned; + +/* 32-bit MMIO register write */ +#define RTE_AVP_WRITE32(_value, _addr) ((*(uint32_t *)_addr) = (_value)) + +/* 32-bit MMIO register read */ +#define RTE_AVP_READ32(_addr) (*(uint32_t *)(_addr))
Use rte_write32 and rte_read32 API instead.
+ /* Macro to cast the ethernet device private data to a AVP object */ #define RTE_AVP_DEV_PRIVATE_TO_HW(adapter) \ (&((struct avp_adapter *)adapter)->avp) /* + * Defines the structure of a AVP device queue for the purpose of handling the + * receive and transmit burst callback functions + */