diff options
author | Rafal Ozieblo <rafalo@cadence.com> | 2016-11-16 05:02:34 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-11-16 17:54:55 -0500 |
commit | 1629dd4f763cc15ac3b2711ac65dab153b738c6d (patch) | |
tree | 48fd3c6fda1477e42b904811bf44969b569c9c5c /drivers/net/ethernet/cadence/macb.h | |
parent | 08348995c47ec0e6ad3712c08eb88fb4df2e8180 (diff) |
cadence: Add LSO support.
New Cadence GEM hardware support Large Segment Offload (LSO):
TCP segmentation offload (TSO) as well as UDP fragmentation
offload (UFO). Support for those features was added to the driver.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/cadence/macb.h')
-rw-r--r-- | drivers/net/ethernet/cadence/macb.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cadence/macb.h index 1216950c97d1..d67adad67be1 100644 --- a/drivers/net/ethernet/cadence/macb.h +++ b/drivers/net/ethernet/cadence/macb.h | |||
@@ -382,6 +382,10 @@ | |||
382 | #define GEM_TX_PKT_BUFF_OFFSET 21 | 382 | #define GEM_TX_PKT_BUFF_OFFSET 21 |
383 | #define GEM_TX_PKT_BUFF_SIZE 1 | 383 | #define GEM_TX_PKT_BUFF_SIZE 1 |
384 | 384 | ||
385 | /* Bitfields in DCFG6. */ | ||
386 | #define GEM_PBUF_LSO_OFFSET 27 | ||
387 | #define GEM_PBUF_LSO_SIZE 1 | ||
388 | |||
385 | /* Constants for CLK */ | 389 | /* Constants for CLK */ |
386 | #define MACB_CLK_DIV8 0 | 390 | #define MACB_CLK_DIV8 0 |
387 | #define MACB_CLK_DIV16 1 | 391 | #define MACB_CLK_DIV16 1 |
@@ -414,6 +418,10 @@ | |||
414 | #define MACB_CAPS_SG_DISABLED 0x40000000 | 418 | #define MACB_CAPS_SG_DISABLED 0x40000000 |
415 | #define MACB_CAPS_MACB_IS_GEM 0x80000000 | 419 | #define MACB_CAPS_MACB_IS_GEM 0x80000000 |
416 | 420 | ||
421 | /* LSO settings */ | ||
422 | #define MACB_LSO_UFO_ENABLE 0x01 | ||
423 | #define MACB_LSO_TSO_ENABLE 0x02 | ||
424 | |||
417 | /* Bit manipulation macros */ | 425 | /* Bit manipulation macros */ |
418 | #define MACB_BIT(name) \ | 426 | #define MACB_BIT(name) \ |
419 | (1 << MACB_##name##_OFFSET) | 427 | (1 << MACB_##name##_OFFSET) |
@@ -545,6 +553,12 @@ struct macb_dma_desc { | |||
545 | #define MACB_TX_LAST_SIZE 1 | 553 | #define MACB_TX_LAST_SIZE 1 |
546 | #define MACB_TX_NOCRC_OFFSET 16 | 554 | #define MACB_TX_NOCRC_OFFSET 16 |
547 | #define MACB_TX_NOCRC_SIZE 1 | 555 | #define MACB_TX_NOCRC_SIZE 1 |
556 | #define MACB_MSS_MFS_OFFSET 16 | ||
557 | #define MACB_MSS_MFS_SIZE 14 | ||
558 | #define MACB_TX_LSO_OFFSET 17 | ||
559 | #define MACB_TX_LSO_SIZE 2 | ||
560 | #define MACB_TX_TCP_SEQ_SRC_OFFSET 19 | ||
561 | #define MACB_TX_TCP_SEQ_SRC_SIZE 1 | ||
548 | #define MACB_TX_BUF_EXHAUSTED_OFFSET 27 | 562 | #define MACB_TX_BUF_EXHAUSTED_OFFSET 27 |
549 | #define MACB_TX_BUF_EXHAUSTED_SIZE 1 | 563 | #define MACB_TX_BUF_EXHAUSTED_SIZE 1 |
550 | #define MACB_TX_UNDERRUN_OFFSET 28 | 564 | #define MACB_TX_UNDERRUN_OFFSET 28 |