arch/mips/include/asm/octeon/cvmx-pip.h | 4 ++-- arch/mips/include/asm/octeon/cvmx-pko.h | 6 +++--- drivers/staging/octeon/ethernet.c | 4 ++-- drivers/staging/octeon/octeon-stubs.h | 12 ++++++------ 4 files changed, 13 insertions(+), 13 deletions(-)
Remove cvmx_pip_port_status_t and cvmx_pko_port_status_t typedefs and
replace them with struct cvmx_pip_port_status and struct
cvmx_pko_port_status to match Linux kernel coding style.
This also updates the MIPS architecture headers to name the structs so
they can be referenced by the staging driver. The anonymous struct
definitions in the headers caused compilation errors when referenced
directly, so they are now named structs.
Signed-off-by: Karthikey Kadati <karthikey3608@gmail.com>
---
Changes in v6:
- Actually removed the 'typedef' keyword from cvmx-pip.h (Greg KH).
- Moved changelog history below the --- line (Greg KH).
- Removed misleading Reported-by tag.
Changes in v5:
- Removed misleading Reported-by tag.
Changes in v4:
- Completely removed typedefs (Greg KH). Now uses struct directly.
- Clarified commit message.
Changes in v3:
- Fix build error caused by anonymous structs.
Changes in v2:
- Fix invalid Signed-off-by name.
v1:
- Initial submission.
arch/mips/include/asm/octeon/cvmx-pip.h | 4 ++--
arch/mips/include/asm/octeon/cvmx-pko.h | 6 +++---
drivers/staging/octeon/ethernet.c | 4 ++--
drivers/staging/octeon/octeon-stubs.h | 12 ++++++------
4 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/arch/mips/include/asm/octeon/cvmx-pip.h b/arch/mips/include/asm/octeon/cvmx-pip.h
index 01ca7267a2ba..1e107a9aa650 100644
--- a/arch/mips/include/asm/octeon/cvmx-pip.h
+++ b/arch/mips/include/asm/octeon/cvmx-pip.h
@@ -236,7 +236,7 @@ typedef struct {
uint64_t inb_octets;
/* Number of packets with GMX/SPX/PCI errors received by PIP */
uint16_t inb_errors;
-} cvmx_pip_port_status_t;
+};
/**
* Definition of the PIP custom header that can be prepended
@@ -365,7 +365,7 @@ static inline void cvmx_pip_config_diffserv_qos(uint64_t diffserv, uint64_t qos)
* @status: Where to put the results.
*/
static inline void cvmx_pip_get_port_status(uint64_t port_num, uint64_t clear,
- cvmx_pip_port_status_t *status)
+ struct cvmx_pip_port_status *status)
{
union cvmx_pip_stat_ctl pip_stat_ctl;
union cvmx_pip_stat0_prtx stat0;
diff --git a/arch/mips/include/asm/octeon/cvmx-pko.h b/arch/mips/include/asm/octeon/cvmx-pko.h
index f18a7f24daf8..4b83b2171c12 100644
--- a/arch/mips/include/asm/octeon/cvmx-pko.h
+++ b/arch/mips/include/asm/octeon/cvmx-pko.h
@@ -114,11 +114,11 @@ typedef enum {
CVMX_PKO_LOCK_CMD_QUEUE = 2,
} cvmx_pko_lock_t;
-typedef struct {
+struct cvmx_pko_port_status {
uint32_t packets;
uint64_t octets;
uint64_t doorbell;
-} cvmx_pko_port_status_t;
+};
/**
* This structure defines the address to use on a packet enqueue
@@ -574,7 +574,7 @@ static inline int cvmx_pko_get_num_queues(int port)
* @status: Where to put the results.
*/
static inline void cvmx_pko_get_port_status(uint64_t port_num, uint64_t clear,
- cvmx_pko_port_status_t *status)
+ struct cvmx_pko_port_status *status)
{
union cvmx_pko_reg_read_idx pko_reg_read_idx;
union cvmx_pko_mem_count0 pko_mem_count0;
diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c
index eadb74fc14c8..6d03d23461e4 100644
--- a/drivers/staging/octeon/ethernet.c
+++ b/drivers/staging/octeon/ethernet.c
@@ -201,8 +201,8 @@ EXPORT_SYMBOL(cvm_oct_free_work);
*/
static struct net_device_stats *cvm_oct_common_get_stats(struct net_device *dev)
{
- cvmx_pip_port_status_t rx_status;
- cvmx_pko_port_status_t tx_status;
+ struct cvmx_pip_port_status rx_status;
+ struct cvmx_pko_port_status tx_status;
struct octeon_ethernet *priv = netdev_priv(dev);
if (priv->port < CVMX_PIP_NUM_INPUT_PORTS) {
diff --git a/drivers/staging/octeon/octeon-stubs.h b/drivers/staging/octeon/octeon-stubs.h
index 35b5078ba51e..f6d502193789 100644
--- a/drivers/staging/octeon/octeon-stubs.h
+++ b/drivers/staging/octeon/octeon-stubs.h
@@ -386,7 +386,7 @@ union cvmx_ipd_sub_port_qos_cnt {
} s;
};
-typedef struct {
+struct cvmx_pip_port_status {
uint32_t dropped_octets;
uint32_t dropped_packets;
uint32_t pci_raw_packets;
@@ -409,13 +409,13 @@ typedef struct {
uint32_t inb_packets;
uint64_t inb_octets;
uint16_t inb_errors;
-} cvmx_pip_port_status_t;
+};
-typedef struct {
+struct cvmx_pko_port_status {
uint32_t packets;
uint64_t octets;
uint64_t doorbell;
-} cvmx_pko_port_status_t;
+};
union cvmx_pip_frm_len_chkx {
uint64_t u64;
@@ -1260,11 +1260,11 @@ static inline int octeon_is_simulation(void)
}
static inline void cvmx_pip_get_port_status(uint64_t port_num, uint64_t clear,
- cvmx_pip_port_status_t *status)
+ struct cvmx_pip_port_status *status)
{ }
static inline void cvmx_pko_get_port_status(uint64_t port_num, uint64_t clear,
- cvmx_pko_port_status_t *status)
+ struct cvmx_pko_port_status *status)
{ }
static inline cvmx_helper_interface_mode_t cvmx_helper_interface_get_mode(int
--
2.43.0
On Sun, Jan 18, 2026 at 10:43:48PM +0530, Karthikey Kadati wrote: > Remove cvmx_pip_port_status_t and cvmx_pko_port_status_t typedefs and > replace them with struct cvmx_pip_port_status and struct > cvmx_pko_port_status to match Linux kernel coding style. > > This also updates the MIPS architecture headers to name the structs so > they can be referenced by the staging driver. The anonymous struct > definitions in the headers caused compilation errors when referenced > directly, so they are now named structs. > > Signed-off-by: Karthikey Kadati <karthikey3608@gmail.com> > --- > Changes in v6: > - Actually removed the 'typedef' keyword from cvmx-pip.h (Greg KH). > - Moved changelog history below the --- line (Greg KH). > - Removed misleading Reported-by tag. As the kernel test bot shows, this wasn't tested, which is what I asked for you to do the last time this was submitted :( I suggest working on something else please. thanks, greg k-h
Hi Karthikey,
kernel test robot noticed the following build errors:
[auto build test ERROR on staging/staging-testing]
url: https://github.com/intel-lab-lkp/linux/commits/Karthikey-Kadati/staging-octeon-Remove-port-status-typedefs/20260119-011605
base: staging/staging-testing
patch link: https://lore.kernel.org/r/20260118171348.54963-1-karthikey3608%40gmail.com
patch subject: [PATCH v6] staging: octeon: Remove port status typedefs
config: mips-randconfig-r063-20260119 (https://download.01.org/0day-ci/archive/20260119/202601191419.5dXVi1FL-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260119/202601191419.5dXVi1FL-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202601191419.5dXVi1FL-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from arch/mips/cavium-octeon/executive/cvmx-helper.c:39:
arch/mips/include/asm/octeon/cvmx-pip.h:183:1: warning: typedef requires a name [-Wmissing-declarations]
183 | typedef struct {
| ^~~~~~~
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: warning: declaration of 'struct cvmx_pip_port_status' will not be visible outside of this function [-Wvisibility]
368 | struct cvmx_pip_port_status *status)
| ^
>> arch/mips/include/asm/octeon/cvmx-pip.h:406:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
406 | status->dropped_octets = stat0.s.drp_octs;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:407:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
407 | status->dropped_packets = stat0.s.drp_pkts;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:408:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
408 | status->octets = stat1.s.octs;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:409:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
409 | status->pci_raw_packets = stat2.s.raw;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:410:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
410 | status->packets = stat2.s.pkts;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:411:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
411 | status->multicast_packets = stat3.s.mcst;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:412:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
412 | status->broadcast_packets = stat3.s.bcst;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:413:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
413 | status->len_64_packets = stat4.s.h64;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:414:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
414 | status->len_65_127_packets = stat4.s.h65to127;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:415:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
415 | status->len_128_255_packets = stat5.s.h128to255;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:416:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
416 | status->len_256_511_packets = stat5.s.h256to511;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:417:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
417 | status->len_512_1023_packets = stat6.s.h512to1023;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:418:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
418 | status->len_1024_1518_packets = stat6.s.h1024to1518;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:419:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
419 | status->len_1519_max_packets = stat7.s.h1519;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:420:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
420 | status->fcs_align_err_packets = stat7.s.fcs;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:421:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
421 | status->runt_packets = stat8.s.undersz;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:422:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
422 | status->runt_crc_packets = stat8.s.frag;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
vim +406 arch/mips/include/asm/octeon/cvmx-pip.h
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 359
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 360 /**
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 361 * Get the status counters for a port.
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 362 *
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 363 * @port_num: Port number to get statistics for.
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 364 * @clear: Set to 1 to clear the counters after they are read
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 365 * @status: Where to put the results.
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 366 */
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 367 static inline void cvmx_pip_get_port_status(uint64_t port_num, uint64_t clear,
716d4b538311a3a arch/mips/include/asm/octeon/cvmx-pip.h Karthikey Kadati 2026-01-18 368 struct cvmx_pip_port_status *status)
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 369 {
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 370 union cvmx_pip_stat_ctl pip_stat_ctl;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 371 union cvmx_pip_stat0_prtx stat0;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 372 union cvmx_pip_stat1_prtx stat1;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 373 union cvmx_pip_stat2_prtx stat2;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 374 union cvmx_pip_stat3_prtx stat3;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 375 union cvmx_pip_stat4_prtx stat4;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 376 union cvmx_pip_stat5_prtx stat5;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 377 union cvmx_pip_stat6_prtx stat6;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 378 union cvmx_pip_stat7_prtx stat7;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 379 union cvmx_pip_stat8_prtx stat8;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 380 union cvmx_pip_stat9_prtx stat9;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 381 union cvmx_pip_stat_inb_pktsx pip_stat_inb_pktsx;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 382 union cvmx_pip_stat_inb_octsx pip_stat_inb_octsx;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 383 union cvmx_pip_stat_inb_errsx pip_stat_inb_errsx;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 384
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 385 pip_stat_ctl.u64 = 0;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 386 pip_stat_ctl.s.rdclr = clear;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 387 cvmx_write_csr(CVMX_PIP_STAT_CTL, pip_stat_ctl.u64);
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 388
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 389 stat0.u64 = cvmx_read_csr(CVMX_PIP_STAT0_PRTX(port_num));
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 390 stat1.u64 = cvmx_read_csr(CVMX_PIP_STAT1_PRTX(port_num));
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 391 stat2.u64 = cvmx_read_csr(CVMX_PIP_STAT2_PRTX(port_num));
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 392 stat3.u64 = cvmx_read_csr(CVMX_PIP_STAT3_PRTX(port_num));
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 393 stat4.u64 = cvmx_read_csr(CVMX_PIP_STAT4_PRTX(port_num));
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 394 stat5.u64 = cvmx_read_csr(CVMX_PIP_STAT5_PRTX(port_num));
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 395 stat6.u64 = cvmx_read_csr(CVMX_PIP_STAT6_PRTX(port_num));
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 396 stat7.u64 = cvmx_read_csr(CVMX_PIP_STAT7_PRTX(port_num));
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 397 stat8.u64 = cvmx_read_csr(CVMX_PIP_STAT8_PRTX(port_num));
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 398 stat9.u64 = cvmx_read_csr(CVMX_PIP_STAT9_PRTX(port_num));
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 399 pip_stat_inb_pktsx.u64 =
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 400 cvmx_read_csr(CVMX_PIP_STAT_INB_PKTSX(port_num));
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 401 pip_stat_inb_octsx.u64 =
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 402 cvmx_read_csr(CVMX_PIP_STAT_INB_OCTSX(port_num));
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 403 pip_stat_inb_errsx.u64 =
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 404 cvmx_read_csr(CVMX_PIP_STAT_INB_ERRSX(port_num));
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 405
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 @406 status->dropped_octets = stat0.s.drp_octs;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 407 status->dropped_packets = stat0.s.drp_pkts;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 408 status->octets = stat1.s.octs;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 409 status->pci_raw_packets = stat2.s.raw;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 410 status->packets = stat2.s.pkts;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 411 status->multicast_packets = stat3.s.mcst;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 412 status->broadcast_packets = stat3.s.bcst;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 413 status->len_64_packets = stat4.s.h64;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 414 status->len_65_127_packets = stat4.s.h65to127;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 415 status->len_128_255_packets = stat5.s.h128to255;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 416 status->len_256_511_packets = stat5.s.h256to511;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 417 status->len_512_1023_packets = stat6.s.h512to1023;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 418 status->len_1024_1518_packets = stat6.s.h1024to1518;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 419 status->len_1519_max_packets = stat7.s.h1519;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 420 status->fcs_align_err_packets = stat7.s.fcs;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 421 status->runt_packets = stat8.s.undersz;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 422 status->runt_crc_packets = stat8.s.frag;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 423 status->oversize_packets = stat9.s.oversz;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 424 status->oversize_crc_packets = stat9.s.jabber;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 425 status->inb_packets = pip_stat_inb_pktsx.s.pkts;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 426 status->inb_octets = pip_stat_inb_octsx.s.octs;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 427 status->inb_errors = pip_stat_inb_errsx.s.errs;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 428
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 429 if (cvmx_octeon_is_pass1()) {
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 430 /*
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 431 * Kludge to fix Octeon Pass 1 errata - Drop counts
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 432 * don't work.
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 433 */
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 434 if (status->inb_packets > status->packets)
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 435 status->dropped_packets =
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 436 status->inb_packets - status->packets;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 437 else
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 438 status->dropped_packets = 0;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 439 if (status->inb_octets - status->inb_packets * 4 >
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 440 status->octets)
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 441 status->dropped_octets =
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 442 status->inb_octets - status->inb_packets * 4 -
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 443 status->octets;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 444 else
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 445 status->dropped_octets = 0;
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 446 }
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 447 }
80ff0fd3ab64514 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 448
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Hi Karthikey,
kernel test robot noticed the following build warnings:
[auto build test WARNING on staging/staging-testing]
url: https://github.com/intel-lab-lkp/linux/commits/Karthikey-Kadati/staging-octeon-Remove-port-status-typedefs/20260119-011605
base: staging/staging-testing
patch link: https://lore.kernel.org/r/20260118171348.54963-1-karthikey3608%40gmail.com
patch subject: [PATCH v6] staging: octeon: Remove port status typedefs
config: mips-randconfig-r063-20260119 (https://download.01.org/0day-ci/archive/20260119/202601191235.4xhLbfRC-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260119/202601191235.4xhLbfRC-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202601191235.4xhLbfRC-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from arch/mips/cavium-octeon/executive/cvmx-helper.c:39:
>> arch/mips/include/asm/octeon/cvmx-pip.h:183:1: warning: typedef requires a name [-Wmissing-declarations]
183 | typedef struct {
| ^~~~~~~
>> arch/mips/include/asm/octeon/cvmx-pip.h:368:17: warning: declaration of 'struct cvmx_pip_port_status' will not be visible outside of this function [-Wvisibility]
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:406:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
406 | status->dropped_octets = stat0.s.drp_octs;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:407:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
407 | status->dropped_packets = stat0.s.drp_pkts;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:408:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
408 | status->octets = stat1.s.octs;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:409:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
409 | status->pci_raw_packets = stat2.s.raw;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:410:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
410 | status->packets = stat2.s.pkts;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:411:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
411 | status->multicast_packets = stat3.s.mcst;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:412:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
412 | status->broadcast_packets = stat3.s.bcst;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:413:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
413 | status->len_64_packets = stat4.s.h64;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:414:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
414 | status->len_65_127_packets = stat4.s.h65to127;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:415:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
415 | status->len_128_255_packets = stat5.s.h128to255;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:416:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
416 | status->len_256_511_packets = stat5.s.h256to511;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:417:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
417 | status->len_512_1023_packets = stat6.s.h512to1023;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:418:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
418 | status->len_1024_1518_packets = stat6.s.h1024to1518;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:419:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
419 | status->len_1519_max_packets = stat7.s.h1519;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:420:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
420 | status->fcs_align_err_packets = stat7.s.fcs;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:421:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
421 | status->runt_packets = stat8.s.undersz;
| ~~~~~~^
arch/mips/include/asm/octeon/cvmx-pip.h:368:17: note: forward declaration of 'struct cvmx_pip_port_status'
368 | struct cvmx_pip_port_status *status)
| ^
arch/mips/include/asm/octeon/cvmx-pip.h:422:8: error: incomplete definition of type 'struct cvmx_pip_port_status'
422 | status->runt_crc_packets = stat8.s.frag;
vim +183 arch/mips/include/asm/octeon/cvmx-pip.h
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 179
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 180 /**
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 181 * Status statistics for a port
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 182 */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 @183 typedef struct {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 184 /* Inbound octets marked to be dropped by the IPD */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 185 uint32_t dropped_octets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 186 /* Inbound packets marked to be dropped by the IPD */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 187 uint32_t dropped_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 188 /* RAW PCI Packets received by PIP per port */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 189 uint32_t pci_raw_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 190 /* Number of octets processed by PIP */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 191 uint32_t octets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 192 /* Number of packets processed by PIP */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 193 uint32_t packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 194 /*
3f79410c7c9c8e arch/mips/include/asm/octeon/cvmx-pip.h Maxime Jayat 2013-10-12 195 * Number of identified L2 multicast packets. Does not
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 196 * include broadcast packets. Only includes packets whose
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 197 * parse mode is SKIP_TO_L2
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 198 */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 199 uint32_t multicast_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 200 /*
3f79410c7c9c8e arch/mips/include/asm/octeon/cvmx-pip.h Maxime Jayat 2013-10-12 201 * Number of identified L2 broadcast packets. Does not
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 202 * include multicast packets. Only includes packets whose
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 203 * parse mode is SKIP_TO_L2
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 204 */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 205 uint32_t broadcast_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 206 /* Number of 64B packets */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 207 uint32_t len_64_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 208 /* Number of 65-127B packets */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 209 uint32_t len_65_127_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 210 /* Number of 128-255B packets */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 211 uint32_t len_128_255_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 212 /* Number of 256-511B packets */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 213 uint32_t len_256_511_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 214 /* Number of 512-1023B packets */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 215 uint32_t len_512_1023_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 216 /* Number of 1024-1518B packets */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 217 uint32_t len_1024_1518_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 218 /* Number of 1519-max packets */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 219 uint32_t len_1519_max_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 220 /* Number of packets with FCS or Align opcode errors */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 221 uint32_t fcs_align_err_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 222 /* Number of packets with length < min */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 223 uint32_t runt_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 224 /* Number of packets with length < min and FCS error */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 225 uint32_t runt_crc_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 226 /* Number of packets with length > max */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 227 uint32_t oversize_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 228 /* Number of packets with length > max and FCS error */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 229 uint32_t oversize_crc_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 230 /* Number of packets without GMX/SPX/PCI errors received by PIP */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 231 uint32_t inb_packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 232 /*
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 233 * Total number of octets from all packets received by PIP,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 234 * including CRC
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 235 */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 236 uint64_t inb_octets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 237 /* Number of packets with GMX/SPX/PCI errors received by PIP */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 238 uint16_t inb_errors;
716d4b538311a3 arch/mips/include/asm/octeon/cvmx-pip.h Karthikey Kadati 2026-01-18 239 };
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 240
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 241 /**
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 242 * Definition of the PIP custom header that can be prepended
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 243 * to a packet by external hardware.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 244 */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 245 typedef union {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 246 uint64_t u64;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 247 struct {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 248 /*
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 249 * Documented as R - Set if the Packet is RAWFULL. If
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 250 * set, this header must be the full 8 bytes.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 251 */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 252 uint64_t rawfull:1;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 253 /* Must be zero */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 254 uint64_t reserved0:5;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 255 /* PIP parse mode for this packet */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 256 uint64_t parse_mode:2;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 257 /* Must be zero */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 258 uint64_t reserved1:1;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 259 /*
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 260 * Skip amount, including this header, to the
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 261 * beginning of the packet
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 262 */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 263 uint64_t skip_len:7;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 264 /* Must be zero */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 265 uint64_t reserved2:6;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 266 /* POW input queue for this packet */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 267 uint64_t qos:3;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 268 /* POW input group for this packet */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 269 uint64_t grp:4;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 270 /*
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 271 * Flag to store this packet in the work queue entry,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 272 * if possible
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 273 */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 274 uint64_t rs:1;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 275 /* POW input tag type */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 276 uint64_t tag_type:2;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 277 /* POW input tag */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 278 uint64_t tag:32;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 279 } s;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 280 } cvmx_pip_pkt_inst_hdr_t;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 281
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 282 /* CSR typedefs have been moved to cvmx-csr-*.h */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 283
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 284 /**
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 285 * Configure an ethernet input port
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 286 *
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 287 * @port_num: Port number to configure
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 288 * @port_cfg: Port hardware configuration
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 289 * @port_tag_cfg:
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 290 * Port POW tagging configuration
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 291 */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 292 static inline void cvmx_pip_config_port(uint64_t port_num,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 293 union cvmx_pip_prt_cfgx port_cfg,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 294 union cvmx_pip_prt_tagx port_tag_cfg)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 295 {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 296 cvmx_write_csr(CVMX_PIP_PRT_CFGX(port_num), port_cfg.u64);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 297 cvmx_write_csr(CVMX_PIP_PRT_TAGX(port_num), port_tag_cfg.u64);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 298 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 299 #if 0
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 300 /**
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 301 * @deprecated This function is a thin wrapper around the Pass1 version
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 302 * of the CVMX_PIP_QOS_WATCHX CSR; Pass2 has added a field for
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 303 * setting the group that is incompatible with this function,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 304 * the preferred upgrade path is to use the CSR directly.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 305 *
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 306 * Configure the global QoS packet watchers. Each watcher is
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 307 * capable of matching a field in a packet to determine the
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 308 * QoS queue for scheduling.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 309 *
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 310 * @watcher: Watcher number to configure (0 - 3).
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 311 * @match_type: Watcher match type
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 312 * @match_value:
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 313 * Value the watcher will match against
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 314 * @qos: QoS queue for packets matching this watcher
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 315 */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 316 static inline void cvmx_pip_config_watcher(uint64_t watcher,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 317 cvmx_pip_qos_watch_types match_type,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 318 uint64_t match_value, uint64_t qos)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 319 {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 320 cvmx_pip_port_watcher_cfg_t watcher_config;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 321
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 322 watcher_config.u64 = 0;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 323 watcher_config.s.match_type = match_type;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 324 watcher_config.s.match_value = match_value;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 325 watcher_config.s.qos = qos;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 326
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 327 cvmx_write_csr(CVMX_PIP_QOS_WATCHX(watcher), watcher_config.u64);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 328 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 329 #endif
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 330 /**
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 331 * Configure the VLAN priority to QoS queue mapping.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 332 *
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 333 * @vlan_priority:
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 334 * VLAN priority (0-7)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 335 * @qos: QoS queue for packets matching this watcher
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 336 */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 337 static inline void cvmx_pip_config_vlan_qos(uint64_t vlan_priority,
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 338 uint64_t qos)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 339 {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 340 union cvmx_pip_qos_vlanx pip_qos_vlanx;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 341 pip_qos_vlanx.u64 = 0;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 342 pip_qos_vlanx.s.qos = qos;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 343 cvmx_write_csr(CVMX_PIP_QOS_VLANX(vlan_priority), pip_qos_vlanx.u64);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 344 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 345
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 346 /**
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 347 * Configure the Diffserv to QoS queue mapping.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 348 *
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 349 * @diffserv: Diffserv field value (0-63)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 350 * @qos: QoS queue for packets matching this watcher
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 351 */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 352 static inline void cvmx_pip_config_diffserv_qos(uint64_t diffserv, uint64_t qos)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 353 {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 354 union cvmx_pip_qos_diffx pip_qos_diffx;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 355 pip_qos_diffx.u64 = 0;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 356 pip_qos_diffx.s.qos = qos;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 357 cvmx_write_csr(CVMX_PIP_QOS_DIFFX(diffserv), pip_qos_diffx.u64);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 358 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 359
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 360 /**
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 361 * Get the status counters for a port.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 362 *
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 363 * @port_num: Port number to get statistics for.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 364 * @clear: Set to 1 to clear the counters after they are read
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 365 * @status: Where to put the results.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 366 */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 367 static inline void cvmx_pip_get_port_status(uint64_t port_num, uint64_t clear,
716d4b538311a3 arch/mips/include/asm/octeon/cvmx-pip.h Karthikey Kadati 2026-01-18 @368 struct cvmx_pip_port_status *status)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 369 {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 370 union cvmx_pip_stat_ctl pip_stat_ctl;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 371 union cvmx_pip_stat0_prtx stat0;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 372 union cvmx_pip_stat1_prtx stat1;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 373 union cvmx_pip_stat2_prtx stat2;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 374 union cvmx_pip_stat3_prtx stat3;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 375 union cvmx_pip_stat4_prtx stat4;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 376 union cvmx_pip_stat5_prtx stat5;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 377 union cvmx_pip_stat6_prtx stat6;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 378 union cvmx_pip_stat7_prtx stat7;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 379 union cvmx_pip_stat8_prtx stat8;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 380 union cvmx_pip_stat9_prtx stat9;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 381 union cvmx_pip_stat_inb_pktsx pip_stat_inb_pktsx;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 382 union cvmx_pip_stat_inb_octsx pip_stat_inb_octsx;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 383 union cvmx_pip_stat_inb_errsx pip_stat_inb_errsx;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 384
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 385 pip_stat_ctl.u64 = 0;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 386 pip_stat_ctl.s.rdclr = clear;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 387 cvmx_write_csr(CVMX_PIP_STAT_CTL, pip_stat_ctl.u64);
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 388
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 389 stat0.u64 = cvmx_read_csr(CVMX_PIP_STAT0_PRTX(port_num));
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 390 stat1.u64 = cvmx_read_csr(CVMX_PIP_STAT1_PRTX(port_num));
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 391 stat2.u64 = cvmx_read_csr(CVMX_PIP_STAT2_PRTX(port_num));
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 392 stat3.u64 = cvmx_read_csr(CVMX_PIP_STAT3_PRTX(port_num));
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 393 stat4.u64 = cvmx_read_csr(CVMX_PIP_STAT4_PRTX(port_num));
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 394 stat5.u64 = cvmx_read_csr(CVMX_PIP_STAT5_PRTX(port_num));
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 395 stat6.u64 = cvmx_read_csr(CVMX_PIP_STAT6_PRTX(port_num));
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 396 stat7.u64 = cvmx_read_csr(CVMX_PIP_STAT7_PRTX(port_num));
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 397 stat8.u64 = cvmx_read_csr(CVMX_PIP_STAT8_PRTX(port_num));
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 398 stat9.u64 = cvmx_read_csr(CVMX_PIP_STAT9_PRTX(port_num));
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 399 pip_stat_inb_pktsx.u64 =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 400 cvmx_read_csr(CVMX_PIP_STAT_INB_PKTSX(port_num));
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 401 pip_stat_inb_octsx.u64 =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 402 cvmx_read_csr(CVMX_PIP_STAT_INB_OCTSX(port_num));
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 403 pip_stat_inb_errsx.u64 =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 404 cvmx_read_csr(CVMX_PIP_STAT_INB_ERRSX(port_num));
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 405
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 406 status->dropped_octets = stat0.s.drp_octs;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 407 status->dropped_packets = stat0.s.drp_pkts;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 408 status->octets = stat1.s.octs;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 409 status->pci_raw_packets = stat2.s.raw;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 410 status->packets = stat2.s.pkts;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 411 status->multicast_packets = stat3.s.mcst;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 412 status->broadcast_packets = stat3.s.bcst;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 413 status->len_64_packets = stat4.s.h64;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 414 status->len_65_127_packets = stat4.s.h65to127;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 415 status->len_128_255_packets = stat5.s.h128to255;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 416 status->len_256_511_packets = stat5.s.h256to511;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 417 status->len_512_1023_packets = stat6.s.h512to1023;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 418 status->len_1024_1518_packets = stat6.s.h1024to1518;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 419 status->len_1519_max_packets = stat7.s.h1519;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 420 status->fcs_align_err_packets = stat7.s.fcs;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 421 status->runt_packets = stat8.s.undersz;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 422 status->runt_crc_packets = stat8.s.frag;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 423 status->oversize_packets = stat9.s.oversz;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 424 status->oversize_crc_packets = stat9.s.jabber;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 425 status->inb_packets = pip_stat_inb_pktsx.s.pkts;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 426 status->inb_octets = pip_stat_inb_octsx.s.octs;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 427 status->inb_errors = pip_stat_inb_errsx.s.errs;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 428
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 429 if (cvmx_octeon_is_pass1()) {
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 430 /*
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 431 * Kludge to fix Octeon Pass 1 errata - Drop counts
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 432 * don't work.
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 433 */
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 434 if (status->inb_packets > status->packets)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 435 status->dropped_packets =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 436 status->inb_packets - status->packets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 437 else
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 438 status->dropped_packets = 0;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 439 if (status->inb_octets - status->inb_packets * 4 >
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 440 status->octets)
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 441 status->dropped_octets =
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 442 status->inb_octets - status->inb_packets * 4 -
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 443 status->octets;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 444 else
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 445 status->dropped_octets = 0;
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 446 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 447 }
80ff0fd3ab6451 drivers/staging/octeon/cvmx-pip.h David Daney 2009-05-05 448
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
© 2016 - 2026 Red Hat, Inc.