qcacmn: Support multiple RX CEs for NAPI/LRO/FastPath

Make changes so that LRO and FastPath can check whether a
given CE is a datapath RX CE. This is done through new
flags in CE_state which indicate whether or not a given
CE is a htt_[tr]rx CE.
Also add support to enable multi-queue NAPI.
Note that the paths are not yet parallel-execution protected,
but this should be OK as all NAPI instances are processing
the same interrupt now and as such as serialized.

Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>

Change-Id: I57125b3e1fbad0345b6e1f4ed25e71babaf4f520
CRs-Fixed: 982728
This commit is contained in:
Houston Hoffman
2016-04-13 18:55:37 -07:00
committed by Gerrit - the friendly Code Review server
parent a7a282f1e3
commit c7d5429428
5 changed files with 324 additions and 268 deletions

View File

@@ -116,6 +116,7 @@ struct qca_napi_stat {
* instances.
*/
struct qca_napi_info {
struct net_device netdev; /* dummy net_dev */
struct napi_struct napi; /* one NAPI Instance per CE in phase I */
uint8_t scale; /* currently same on all instances */
uint8_t id;
@@ -138,7 +139,6 @@ struct qca_napi_data {
instances, indexed by pipe_id,
not used by clients (clients use an
id returned by create) */
struct net_device netdev; /* dummy net_dev */
struct qca_napi_info napis[CE_COUNT_MAX];
};

View File

@@ -70,7 +70,6 @@ enum qca_napi_event {
*/
int hif_napi_create(struct hif_opaque_softc *hif,
uint8_t pipe_id,
int (*poll)(struct napi_struct *, int),
int budget,
int scale);