[U-Boot] [PATCH 0/3] ls1012a: fix tftp failure

This patch series fixes bug which fails tftp sometimes while using the pfe interfaces and also has some code clean up.
Calvin Johnson (3): drivers: net: pfe_eth: add pfe_rx_done to clear bd after packet processing drivers: net: pfe_eth: use writel/readl to access hw bds drivers: net: pfe_eth: cleanup typos and indent
drivers/net/pfe_eth/pfe_driver.c | 126 +++++++++++++++++++++++---------------- drivers/net/pfe_eth/pfe_eth.c | 13 ++-- include/pfe_eth/pfe_driver.h | 1 + 3 files changed, 82 insertions(+), 58 deletions(-)

Create pfe_rx_done function to clear buffer descriptor after the packet is processed by the network stack.
Signed-off-by: Calvin Johnson calvin.johnson@nxp.com Signed-off-by: Anjaneyulu Jagarlmudi anji.jagarlmudi@nxp.com ---
drivers/net/pfe_eth/pfe_driver.c | 35 ++++++++++++++++++++++++++++++----- drivers/net/pfe_eth/pfe_eth.c | 1 + include/pfe_eth/pfe_driver.h | 1 + 3 files changed, 32 insertions(+), 5 deletions(-)
diff --git a/drivers/net/pfe_eth/pfe_driver.c b/drivers/net/pfe_eth/pfe_driver.c index 5336ba7..55fc145 100644 --- a/drivers/net/pfe_eth/pfe_driver.c +++ b/drivers/net/pfe_eth/pfe_driver.c @@ -66,22 +66,47 @@ int pfe_recv(unsigned int *pkt_ptr, int *phy_port) *phy_port = hif_header->port_no; len -= sizeof(struct hif_header_s);
- rx_desc->rx_to_read = (rx_desc->rx_to_read + 1) - & (rx_desc->rx_ring_size - 1); + return len; +} + +/* + * HIF to check the Rx done + * This function will check the rx done indication of the current rx_to_read + * locations + * if success, moves the rx_to_read to next location. + * + */ +void pfe_rx_done(void) +{ + struct rx_desc_s *rx_desc = g_rx_desc; + struct buf_desc *bd;
- /* reset bd control field */ + debug("%s:rx_base: %p, rx_to_read: %d\n", __func__, rx_desc->rx_base, + rx_desc->rx_to_read); + + bd = rx_desc->rx_base + rx_desc->rx_to_read; + + /* reset the control field */ bd->ctrl = (MAX_FRAME_SIZE | BD_CTRL_LIFM | BD_CTRL_DESC_EN | BD_CTRL_DIR); bd->status = 0;
+ debug("Rx Done : status: %08x, ctrl: %08x\n", bd->status, bd->ctrl); + /* Give START_STROBE to BDP to fetch the descriptor __NOW__, * BDP need not to wait for rx_poll_cycle time to fetch the descriptor, * In idle state (ie., no rx pkt), BDP will not fetch - * the descriptor even if strobe is given(I think) + * the descriptor even if strobe is given. */ writel((readl(HIF_RX_CTRL) | HIF_CTRL_BDP_CH_START_WSTB), HIF_RX_CTRL);
- return len; + /* increment the rx_to_read index to next location */ + rx_desc->rx_to_read = (rx_desc->rx_to_read + 1) + & (rx_desc->rx_ring_size - 1); + + debug("Rx next pkt location: %d\n", rx_desc->rx_to_read); + + return 0; }
/* diff --git a/drivers/net/pfe_eth/pfe_eth.c b/drivers/net/pfe_eth/pfe_eth.c index 4db823f..6d2906f 100644 --- a/drivers/net/pfe_eth/pfe_eth.c +++ b/drivers/net/pfe_eth/pfe_eth.c @@ -198,6 +198,7 @@ static int ls1012a_eth_recv(struct eth_device *dev) /* Pass the packet up to the protocol layers. */ net_process_received_packet((void *)(long int)pkt_buf, len);
+ pfe_rx_done(); return 0; }
diff --git a/include/pfe_eth/pfe_driver.h b/include/pfe_eth/pfe_driver.h index 28997b4..2a539e2 100644 --- a/include/pfe_eth/pfe_driver.h +++ b/include/pfe_eth/pfe_driver.h @@ -51,5 +51,6 @@ struct tx_desc_s { int pfe_send(int phy_port, void *data, int length); int pfe_recv(unsigned int *pkt_ptr, int *phy_port); int pfe_tx_done(void); +void pfe_rx_done(void);
#endif

On Wed, Nov 22, 2017 at 12:31 AM, Calvin Johnson calvin.johnson@nxp.com wrote:
Create pfe_rx_done function to clear buffer descriptor after the packet is processed by the network stack.
Signed-off-by: Calvin Johnson calvin.johnson@nxp.com Signed-off-by: Anjaneyulu Jagarlmudi anji.jagarlmudi@nxp.com
Acked-by: Joe Hershberger joe.hershberger@ni.com

writel/readl accessors should be used to access hardware buffer descriptors.
Signed-off-by: Calvin Johnson calvin.johnson@nxp.com Signed-off-by: Anjaneyulu Jagarlmudi anji.jagarlmudi@nxp.com ---
drivers/net/pfe_eth/pfe_driver.c | 70 ++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 35 deletions(-)
diff --git a/drivers/net/pfe_eth/pfe_driver.c b/drivers/net/pfe_eth/pfe_driver.c index 55fc145..730aca2 100644 --- a/drivers/net/pfe_eth/pfe_driver.c +++ b/drivers/net/pfe_eth/pfe_driver.c @@ -35,18 +35,18 @@ int pfe_recv(unsigned int *pkt_ptr, int *phy_port)
bd = rx_desc->rx_base + rx_desc->rx_to_read;
- if (bd->ctrl & BD_CTRL_DESC_EN) + if (readl(&bd->ctrl) & BD_CTRL_DESC_EN) return len; /* No pending Rx packet */
- /* this len include hif_header(8bytes) */ - len = bd->ctrl & 0xFFFF; + /* this len include hif_header(8 bytes) */ + len = readl(&bd->ctrl) & 0xFFFF;
- hif_header = (struct hif_header_s *)DDR_PFE_TO_VIRT(bd->data); + hif_header = (struct hif_header_s *)DDR_PFE_TO_VIRT(readl(&bd->data));
/* Get the recive port info from the packet */ debug( "Pkt recv'd: Pkt ptr(%p), len(%d), gemac_port(%d) status(%08x)\n", - hif_header, len, hif_header->port_no, bd->status); + hif_header, len, hif_header->port_no, readl(&bd->status));
#ifdef DEBUG { @@ -87,11 +87,12 @@ void pfe_rx_done(void) bd = rx_desc->rx_base + rx_desc->rx_to_read;
/* reset the control field */ - bd->ctrl = (MAX_FRAME_SIZE | BD_CTRL_LIFM | BD_CTRL_DESC_EN - | BD_CTRL_DIR); - bd->status = 0; + writel((MAX_FRAME_SIZE | BD_CTRL_LIFM | BD_CTRL_DESC_EN + | BD_CTRL_DIR), &bd->ctrl); + writel(0, &bd->status);
- debug("Rx Done : status: %08x, ctrl: %08x\n", bd->status, bd->ctrl); + debug("Rx Done : status: %08x, ctrl: %08x\n", readl(&bd->status), + readl(&bd->ctrl));
/* Give START_STROBE to BDP to fetch the descriptor __NOW__, * BDP need not to wait for rx_poll_cycle time to fetch the descriptor, @@ -137,18 +138,16 @@ int pfe_send(int phy_port, void *data, int length) bd = tx_desc->tx_base + tx_desc->tx_to_send;
/* check queue-full condition */ - if (bd->ctrl & BD_CTRL_DESC_EN) { - printf("Tx queue full\n"); + if (readl(&bd->ctrl) & BD_CTRL_DESC_EN) return -1; - }
/* PFE checks for min pkt size */ if (length < MIN_PKT_SIZE) length = MIN_PKT_SIZE;
- tx_buf_va = (void *)DDR_PFE_TO_VIRT(bd->data); + tx_buf_va = (void *)DDR_PFE_TO_VIRT(readl(&bd->data)); debug("%s: tx_buf_va: %p, tx_buf_pa: %08x\n", __func__, tx_buf_va, - bd->data); + readl(&bd->data));
/* Fill the gemac/phy port number to send this packet out */ memset(&hif_header, 0, sizeof(struct hif_header_s)); @@ -171,15 +170,13 @@ int pfe_send(int phy_port, void *data, int length) } #endif
- debug("before0: Tx Done, status: %08x, ctrl: %08x\n", bd->status, - bd->ctrl); + debug("Tx Done: status: %08x, ctrl: %08x\n", readl(&bd->status), + readl(&bd->ctrl));
/* fill the tx desc */ - bd->ctrl = (u32)(BD_CTRL_DESC_EN | BD_CTRL_LIFM | (length & 0xFFFF)); - bd->status = 0; - - /* NOTE: This code can be removed after verification */ - bd->status = 0xF0; + writel((u32)(BD_CTRL_DESC_EN | BD_CTRL_LIFM | (length & 0xFFFF)), + &bd->ctrl); + writel(0, &bd->status);
writel((HIF_CTRL_DMA_EN | HIF_CTRL_BDP_CH_START_WSTB), HIF_TX_CTRL);
@@ -208,15 +205,15 @@ int pfe_tx_done(void) bd = tx_desc->tx_base + tx_desc->tx_to_send;
/* check queue-full condition */ - if (bd->ctrl & BD_CTRL_DESC_EN) + if (readl(&bd->ctrl) & BD_CTRL_DESC_EN) return -1;
/* reset the control field */ - bd->ctrl = 0; - /* bd->data = (u32)NULL; */ - bd->status = 0; + writel(0, &bd->ctrl); + writel(0, &bd->status);
- debug("Tx Done : status: %08x, ctrl: %08x\n", bd->status, bd->ctrl); + debug("Tx Done : status: %08x, ctrl: %08x\n", readl(&bd->status), + readl(&bd->ctrl));
/* increment the txtosend index to next location */ tx_desc->tx_to_send = (tx_desc->tx_to_send + 1) @@ -248,7 +245,10 @@ static inline void hif_rx_desc_dump(void) rx_desc->rx_base_pa); for (i = 0; i < rx_desc->rx_ring_size; i++) { debug("status: %08x, ctrl: %08x, data: %08x, next: 0x%08x\n", - bd_va->status, bd_va->ctrl, bd_va->data, bd_va->next); + readl(&bd_va->status), + readl(&bd_va->ctrl), + readl(&bd_va->data), + readl(&bd_va->next)); bd_va++; } } @@ -271,7 +271,7 @@ void hif_rx_desc_disable(void) bd_va = rx_desc->rx_base;
for (i = 0; i < rx_desc->rx_ring_size; i++) { - bd_va->ctrl |= BD_CTRL_LAST_BD; + writel(readl(&bd_va->ctrl) | BD_CTRL_LAST_BD, &bd_va->ctrl); bd_va++; } } @@ -322,14 +322,14 @@ static int hif_rx_desc_init(struct pfe *pfe) ctrl = (MAX_FRAME_SIZE | BD_CTRL_DESC_EN | BD_CTRL_DIR | BD_CTRL_LIFM);
for (i = 0; i < rx_desc->rx_ring_size; i++) { - bd_va->next = (unsigned long)(bd_pa + 1); - bd_va->ctrl = ctrl; - bd_va->data = rx_buf_pa + (i * MAX_FRAME_SIZE); + writel((unsigned long)(bd_pa + 1), &bd_va->next); + writel(ctrl, &bd_va->ctrl); + writel(rx_buf_pa + (i * MAX_FRAME_SIZE), &bd_va->data); bd_va++; bd_pa++; } --bd_va; - bd_va->next = (u32)rx_desc->rx_base_pa; + writel((u32)rx_desc->rx_base_pa, &bd_va->next);
writel(rx_desc->rx_base_pa, HIF_RX_BDP_ADDR); writel((readl(HIF_RX_CTRL) | HIF_CTRL_BDP_CH_START_WSTB), HIF_RX_CTRL); @@ -407,13 +407,13 @@ static int hif_tx_desc_init(struct pfe *pfe) tx_buf_pa = pfe->ddr_phys_baseaddr + HIF_TX_PKT_DDR_BASEADDR;
for (i = 0; i < tx_desc->tx_ring_size; i++) { - bd_va->next = (unsigned long)(bd_pa + 1); - bd_va->data = tx_buf_pa + (i * MAX_FRAME_SIZE); + writel((unsigned long)(bd_pa + 1), &bd_va->next); + writel(tx_buf_pa + (i * MAX_FRAME_SIZE), &bd_va->data); bd_va++; bd_pa++; } --bd_va; - bd_va->next = (u32)tx_desc->tx_base_pa; + writel((u32)tx_desc->tx_base_pa, &bd_va->next);
writel(tx_desc->tx_base_pa, HIF_TX_BDP_ADDR);

On Wed, Nov 22, 2017 at 12:31 AM, Calvin Johnson calvin.johnson@nxp.com wrote:
writel/readl accessors should be used to access hardware buffer descriptors.
Signed-off-by: Calvin Johnson calvin.johnson@nxp.com Signed-off-by: Anjaneyulu Jagarlmudi anji.jagarlmudi@nxp.com
Acked-by: Joe Hershberger joe.hershberger@ni.com

Typos are corrected. Some sentences are rephrased. Proper indentation added.
Signed-off-by: Calvin Johnson calvin.johnson@nxp.com ---
drivers/net/pfe_eth/pfe_driver.c | 33 +++++++++++++++------------------ drivers/net/pfe_eth/pfe_eth.c | 12 ++++++------ 2 files changed, 21 insertions(+), 24 deletions(-)
diff --git a/drivers/net/pfe_eth/pfe_driver.c b/drivers/net/pfe_eth/pfe_driver.c index 730aca2..2bb257a 100644 --- a/drivers/net/pfe_eth/pfe_driver.c +++ b/drivers/net/pfe_eth/pfe_driver.c @@ -16,14 +16,14 @@ static struct rx_desc_s *g_rx_desc; * Reads the rx descriptor from the current location (rx_to_read). * - If the descriptor has a valid data/pkt, then get the data pointer * - check for the input rx phy number - * - increments the rx data pointer by pkt_head_room_size - * - decrements the data length by pkt_head_room_size + * - increment the rx data pointer by pkt_head_room_size + * - decrement the data length by pkt_head_room_size * - handover the packet to caller. * - * @param[out] pkt_ptr Pointer to store rx packet pointer - * @param[out] phy_port Pointer to store recv phy port + * @param[out] pkt_ptr - Pointer to store rx packet + * @param[out] phy_port - Pointer to store recv phy port * - * @return -1 if no packet, else returns length of packet. + * @return -1 if no packet, else return length of packet. */ int pfe_recv(unsigned int *pkt_ptr, int *phy_port) { @@ -70,11 +70,10 @@ int pfe_recv(unsigned int *pkt_ptr, int *phy_port) }
/* - * HIF to check the Rx done - * This function will check the rx done indication of the current rx_to_read + * HIF function to check the Rx done + * This function will check the rx done indication of the current rx_to_read * locations - * if success, moves the rx_to_read to next location. - * + * if success, moves the rx_to_read to next location. */ void pfe_rx_done(void) { @@ -95,7 +94,7 @@ void pfe_rx_done(void) readl(&bd->ctrl));
/* Give START_STROBE to BDP to fetch the descriptor __NOW__, - * BDP need not to wait for rx_poll_cycle time to fetch the descriptor, + * BDP need not wait for rx_poll_cycle time to fetch the descriptor, * In idle state (ie., no rx pkt), BDP will not fetch * the descriptor even if strobe is given. */ @@ -107,16 +106,14 @@ void pfe_rx_done(void)
debug("Rx next pkt location: %d\n", rx_desc->rx_to_read);
- return 0; }
/* * HIF Tx interface function * This function sends a single packet to PFE from HIF interface. * - No interrupt indication on tx completion. - * - After tx descriptor is updated and TX DMA is enabled. - * - To support both chipit and read c2k environment, data is copied to - * tx buffers. After verification this copied can be avoided. + * - Data is copied to tx buffers before tx descriptor is updated + * and TX DMA is enabled. * * @param[in] phy_port Phy port number to send out this packet * @param[in] data Pointer to the data @@ -186,13 +183,13 @@ int pfe_send(int phy_port, void *data, int length) }
/* - * HIF to check the Tx done - * This function will chceck the tx done indication of the current tx_to_send - * locations + * HIF function to check the Tx done + * This function will check the tx done indication of the current tx_to_send + * locations * if success, moves the tx_to_send to next location. * * @return -1 if TX ownership bit is not cleared by hw. - * else on success (tx done copletion) returns zero. + * else on success (tx done completion) return zero. */ int pfe_tx_done(void) { diff --git a/drivers/net/pfe_eth/pfe_eth.c b/drivers/net/pfe_eth/pfe_eth.c index 6d2906f..eccc2d6 100644 --- a/drivers/net/pfe_eth/pfe_eth.c +++ b/drivers/net/pfe_eth/pfe_eth.c @@ -157,7 +157,7 @@ static int ls1012a_eth_send(struct eth_device *dev, void *data, int length) rc = pfe_send(priv->gemac_port, data, length);
if (rc < 0) { - printf("Tx Q full\n"); + printf("Tx Queue full\n"); return 0; }
@@ -166,11 +166,11 @@ static int ls1012a_eth_send(struct eth_device *dev, void *data, int length) if (rc == 0) break;
- udelay(100); - i++; - if (i == 30000) - printf("Tx timeout, send failed\n"); - break; + udelay(100); + i++; + if (i == 30000) + printf("Tx timeout, send failed\n"); + break; }
return 0;

On Wed, Nov 22, 2017 at 12:31 AM, Calvin Johnson calvin.johnson@nxp.com wrote:
Typos are corrected. Some sentences are rephrased. Proper indentation added.
Signed-off-by: Calvin Johnson calvin.johnson@nxp.com
Typically clean-up patches should be at the beginning of the series.
Acked-by: Joe Hershberger joe.hershberger@ni.com

On 11/21/2017 10:26 PM, Calvin Johnson wrote:
This patch series fixes bug which fails tftp sometimes while using the pfe interfaces and also has some code clean up.
Calvin Johnson (3): drivers: net: pfe_eth: add pfe_rx_done to clear bd after packet processing drivers: net: pfe_eth: use writel/readl to access hw bds drivers: net: pfe_eth: cleanup typos and indent
drivers/net/pfe_eth/pfe_driver.c | 126 +++++++++++++++++++++++---------------- drivers/net/pfe_eth/pfe_eth.c | 13 ++-- include/pfe_eth/pfe_driver.h | 1 + 3 files changed, 82 insertions(+), 58 deletions(-)
Your PFE patch set is not fully reviewed or accepted. If I were you, I would probably send v2 version to include all the changes.
It is up to Joe to decide to take a new version, or patches on top of patches.
York

Hi York,
-----Original Message----- From: York Sun Sent: Thursday, November 23, 2017 12:00 AM To: Calvin Johnson calvin.johnson@nxp.com; u-boot@lists.denx.de Cc: Anji Jagarlmudi anji.jagarlmudi@nxp.com; Joe Hershberger joe.hershberger@ni.com; Prabhakar Kushwaha prabhakar.kushwaha@nxp.com Subject: Re: [PATCH 0/3] ls1012a: fix tftp failure
On 11/21/2017 10:26 PM, Calvin Johnson wrote:
This patch series fixes bug which fails tftp sometimes while using the pfe interfaces and also has some code clean up.
Calvin Johnson (3): drivers: net: pfe_eth: add pfe_rx_done to clear bd after packet processing drivers: net: pfe_eth: use writel/readl to access hw bds drivers: net: pfe_eth: cleanup typos and indent
drivers/net/pfe_eth/pfe_driver.c | 126 +++++++++++++++++++++++-----
drivers/net/pfe_eth/pfe_eth.c | 13 ++-- include/pfe_eth/pfe_driver.h | 1 + 3 files changed, 82 insertions(+), 58 deletions(-)
Your PFE patch set is not fully reviewed or accepted. If I were you, I would probably send v2 version to include all the changes.
It is up to Joe to decide to take a new version, or patches on top of patches.
I can squash all these follow up patches to v2 of the base pfe patch series. Yes, it will be better than having these patches on top of it as the base is not yet merged.
Thanks Calvin

On Wed, Nov 22, 2017 at 7:17 PM, Calvin Johnson calvin.johnson@nxp.com wrote:
Hi York,
-----Original Message----- From: York Sun Sent: Thursday, November 23, 2017 12:00 AM To: Calvin Johnson calvin.johnson@nxp.com; u-boot@lists.denx.de Cc: Anji Jagarlmudi anji.jagarlmudi@nxp.com; Joe Hershberger joe.hershberger@ni.com; Prabhakar Kushwaha prabhakar.kushwaha@nxp.com Subject: Re: [PATCH 0/3] ls1012a: fix tftp failure
On 11/21/2017 10:26 PM, Calvin Johnson wrote:
This patch series fixes bug which fails tftp sometimes while using the pfe interfaces and also has some code clean up.
Calvin Johnson (3): drivers: net: pfe_eth: add pfe_rx_done to clear bd after packet processing drivers: net: pfe_eth: use writel/readl to access hw bds drivers: net: pfe_eth: cleanup typos and indent
drivers/net/pfe_eth/pfe_driver.c | 126 +++++++++++++++++++++++-----
drivers/net/pfe_eth/pfe_eth.c | 13 ++-- include/pfe_eth/pfe_driver.h | 1 + 3 files changed, 82 insertions(+), 58 deletions(-)
Your PFE patch set is not fully reviewed or accepted. If I were you, I would probably send v2 version to include all the changes.
It is up to Joe to decide to take a new version, or patches on top of patches.
It's assigned to York in patchwork. would you prefer I take them?
I can squash all these follow up patches to v2 of the base pfe patch series. Yes, it will be better than having these patches on top of it as the base is not yet merged.
Thanks Calvin

On 12/05/2017 12:50 PM, Joe Hershberger wrote:
On Wed, Nov 22, 2017 at 7:17 PM, Calvin Johnson calvin.johnson@nxp.com wrote:
Hi York,
-----Original Message----- From: York Sun Sent: Thursday, November 23, 2017 12:00 AM To: Calvin Johnson calvin.johnson@nxp.com; u-boot@lists.denx.de Cc: Anji Jagarlmudi anji.jagarlmudi@nxp.com; Joe Hershberger joe.hershberger@ni.com; Prabhakar Kushwaha prabhakar.kushwaha@nxp.com Subject: Re: [PATCH 0/3] ls1012a: fix tftp failure
On 11/21/2017 10:26 PM, Calvin Johnson wrote:
This patch series fixes bug which fails tftp sometimes while using the pfe interfaces and also has some code clean up.
Calvin Johnson (3): drivers: net: pfe_eth: add pfe_rx_done to clear bd after packet processing drivers: net: pfe_eth: use writel/readl to access hw bds drivers: net: pfe_eth: cleanup typos and indent
drivers/net/pfe_eth/pfe_driver.c | 126 +++++++++++++++++++++++-----
drivers/net/pfe_eth/pfe_eth.c | 13 ++-- include/pfe_eth/pfe_driver.h | 1 + 3 files changed, 82 insertions(+), 58 deletions(-)
Your PFE patch set is not fully reviewed or accepted. If I were you, I would probably send v2 version to include all the changes.
It is up to Joe to decide to take a new version, or patches on top of patches.
It's assigned to York in patchwork. would you prefer I take them?
Yes, please. I also advised Calvin to squash his patches into one set, instead of patching the patches.
York

On Tue, Dec 5, 2017 at 2:57 PM, York Sun york.sun@nxp.com wrote:
On 12/05/2017 12:50 PM, Joe Hershberger wrote:
On Wed, Nov 22, 2017 at 7:17 PM, Calvin Johnson calvin.johnson@nxp.com wrote:
Hi York,
-----Original Message----- From: York Sun Sent: Thursday, November 23, 2017 12:00 AM To: Calvin Johnson calvin.johnson@nxp.com; u-boot@lists.denx.de Cc: Anji Jagarlmudi anji.jagarlmudi@nxp.com; Joe Hershberger joe.hershberger@ni.com; Prabhakar Kushwaha prabhakar.kushwaha@nxp.com Subject: Re: [PATCH 0/3] ls1012a: fix tftp failure
On 11/21/2017 10:26 PM, Calvin Johnson wrote:
This patch series fixes bug which fails tftp sometimes while using the pfe interfaces and also has some code clean up.
Calvin Johnson (3): drivers: net: pfe_eth: add pfe_rx_done to clear bd after packet processing drivers: net: pfe_eth: use writel/readl to access hw bds drivers: net: pfe_eth: cleanup typos and indent
drivers/net/pfe_eth/pfe_driver.c | 126 +++++++++++++++++++++++-----
drivers/net/pfe_eth/pfe_eth.c | 13 ++-- include/pfe_eth/pfe_driver.h | 1 + 3 files changed, 82 insertions(+), 58 deletions(-)
Your PFE patch set is not fully reviewed or accepted. If I were you, I would probably send v2 version to include all the changes.
It is up to Joe to decide to take a new version, or patches on top of patches.
It's assigned to York in patchwork. would you prefer I take them?
Yes, please. I also advised Calvin to squash his patches into one set, instead of patching the patches.
Ah - I didn't realize this wasn't already in. I see that now.
Yes, I'll review those patches and they should be squashed and resent.
Thank, -Joe

Hi Joe,
-----Original Message----- From: Joe Hershberger [mailto:joe.hershberger@gmail.com] Sent: Wednesday, December 06, 2017 2:35 AM
Your PFE patch set is not fully reviewed or accepted. If I were you, I would probably send v2 version to include all the changes.
It is up to Joe to decide to take a new version, or patches on top of patches.
It's assigned to York in patchwork. would you prefer I take them?
Yes, please. I also advised Calvin to squash his patches into one set, instead of patching the patches.
Ah - I didn't realize this wasn't already in. I see that now.
Yes, I'll review those patches and they should be squashed and resent.
Thanks for reviewing the pfe patches. I'll work on all the comments and also squash the follow up patches into the pfe-series v2.
Regards Calvin
participants (4)
-
Calvin Johnson
-
Joe Hershberger
-
Joe Hershberger
-
York Sun