diff options
author | Intiyaz Basha <intiyaz.basha@cavium.com> | 2017-08-14 12:01:41 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-08-14 22:21:40 -0700 |
commit | 69f9c60e832575fe73cea0387c2d6a079f0fc96c (patch) | |
tree | 9a9dc3e6e5cf8a5c51eaa19104d742af6421d2b7 /drivers/net/ethernet/cavium/liquidio/lio_core.c | |
parent | liquidio: moved update_txq_status to lio_core.c (diff) | |
download | linux-dev-69f9c60e832575fe73cea0387c2d6a079f0fc96c.tar.xz linux-dev-69f9c60e832575fe73cea0387c2d6a079f0fc96c.zip |
liquidio: moved octeon_setup_droq to lio_core.c
Moving common octeon_setup_droq to lio_core.c
Signed-off-by: Intiyaz Basha <intiyaz.basha@cavium.com>
Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/cavium/liquidio/lio_core.c')
-rw-r--r-- | drivers/net/ethernet/cavium/liquidio/lio_core.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/drivers/net/ethernet/cavium/liquidio/lio_core.c b/drivers/net/ethernet/cavium/liquidio/lio_core.c index b55ab75a7d9c..90583ce8642d 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_core.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_core.c @@ -397,3 +397,38 @@ void lio_update_txq_status(struct octeon_device *oct, int iq_num) netif_wake_queue(netdev); } } + +/** + * \brief Setup output queue + * @param oct octeon device + * @param q_no which queue + * @param num_descs how many descriptors + * @param desc_size size of each descriptor + * @param app_ctx application context + */ +int octeon_setup_droq(struct octeon_device *oct, int q_no, int num_descs, + int desc_size, void *app_ctx) +{ + int ret_val; + + dev_dbg(&oct->pci_dev->dev, "Creating Droq: %d\n", q_no); + /* droq creation and local register settings. */ + ret_val = octeon_create_droq(oct, q_no, num_descs, desc_size, app_ctx); + if (ret_val < 0) + return ret_val; + + if (ret_val == 1) { + dev_dbg(&oct->pci_dev->dev, "Using default droq %d\n", q_no); + return 0; + } + + /* Enable the droq queues */ + octeon_set_droq_pkt_op(oct, q_no, 1); + + /* Send Credit for Octeon Output queues. Credits are always + * sent after the output queue is enabled. + */ + writel(oct->droq[q_no]->max_count, oct->droq[q_no]->pkts_credit_reg); + + return ret_val; +} |