mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 17:24:17 +08:00
be2net: Fix to use version 2 of cq_create for SkyHawk-R devices
SkyHawk-R devices should use v2 of cq_create command. BE3/BE2 devices can use version 0 of the command to create a CQ. Signed-off-by: Ajit Khaparde <ajit.khaparde@emulex.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b29d314518
commit
bbdc42f814
@ -961,19 +961,8 @@ int be_cmd_cq_create(struct be_adapter *adapter, struct be_queue_info *cq,
|
||||
OPCODE_COMMON_CQ_CREATE, sizeof(*req), wrb, NULL);
|
||||
|
||||
req->num_pages = cpu_to_le16(PAGES_4K_SPANNED(q_mem->va, q_mem->size));
|
||||
if (lancer_chip(adapter)) {
|
||||
req->hdr.version = 2;
|
||||
req->page_size = 1; /* 1 for 4K */
|
||||
AMAP_SET_BITS(struct amap_cq_context_lancer, nodelay, ctxt,
|
||||
no_delay);
|
||||
AMAP_SET_BITS(struct amap_cq_context_lancer, count, ctxt,
|
||||
__ilog2_u32(cq->len/256));
|
||||
AMAP_SET_BITS(struct amap_cq_context_lancer, valid, ctxt, 1);
|
||||
AMAP_SET_BITS(struct amap_cq_context_lancer, eventable,
|
||||
ctxt, 1);
|
||||
AMAP_SET_BITS(struct amap_cq_context_lancer, eqid,
|
||||
ctxt, eq->id);
|
||||
} else {
|
||||
|
||||
if (BEx_chip(adapter)) {
|
||||
AMAP_SET_BITS(struct amap_cq_context_be, coalescwm, ctxt,
|
||||
coalesce_wm);
|
||||
AMAP_SET_BITS(struct amap_cq_context_be, nodelay,
|
||||
@ -983,6 +972,18 @@ int be_cmd_cq_create(struct be_adapter *adapter, struct be_queue_info *cq,
|
||||
AMAP_SET_BITS(struct amap_cq_context_be, valid, ctxt, 1);
|
||||
AMAP_SET_BITS(struct amap_cq_context_be, eventable, ctxt, 1);
|
||||
AMAP_SET_BITS(struct amap_cq_context_be, eqid, ctxt, eq->id);
|
||||
} else {
|
||||
req->hdr.version = 2;
|
||||
req->page_size = 1; /* 1 for 4K */
|
||||
AMAP_SET_BITS(struct amap_cq_context_v2, nodelay, ctxt,
|
||||
no_delay);
|
||||
AMAP_SET_BITS(struct amap_cq_context_v2, count, ctxt,
|
||||
__ilog2_u32(cq->len/256));
|
||||
AMAP_SET_BITS(struct amap_cq_context_v2, valid, ctxt, 1);
|
||||
AMAP_SET_BITS(struct amap_cq_context_v2, eventable,
|
||||
ctxt, 1);
|
||||
AMAP_SET_BITS(struct amap_cq_context_v2, eqid,
|
||||
ctxt, eq->id);
|
||||
}
|
||||
|
||||
be_dws_cpu_to_le(ctxt, sizeof(req->context));
|
||||
|
@ -381,7 +381,7 @@ struct amap_cq_context_be {
|
||||
u8 rsvd5[32]; /* dword 3*/
|
||||
} __packed;
|
||||
|
||||
struct amap_cq_context_lancer {
|
||||
struct amap_cq_context_v2 {
|
||||
u8 rsvd0[12]; /* dword 0*/
|
||||
u8 coalescwm[2]; /* dword 0*/
|
||||
u8 nodelay; /* dword 0*/
|
||||
|
Loading…
Reference in New Issue
Block a user