mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 19:26:25 +00:00
[SCSI] bnx2i: Fix context mapping issue for architectures with PAGE_SIZE != 4096
5706/5708/5709 devices allow driver/user to set page size. By default it is set to 4096. Current drivers do not program this register based on architecture type (e.g. x86 = 4K, IA64 = 16K) and by choice lets device use the defaults. So while mapping connection context memory (doorebll registers), driver has to match page size used by the device. Included change fixes the issue we uncovered during IA64 testing Signed-off-by: Anil Veerabhadrappa <anilgv@broadcom.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
parent
3bfc13c239
commit
53203244a4
2 changed files with 3 additions and 1 deletions
|
@ -100,6 +100,8 @@
|
|||
#define CTX_OFFSET 0x10000
|
||||
#define MAX_CID_CNT 0x4000
|
||||
|
||||
#define BNX2I_570X_PAGE_SIZE_DEFAULT 4096
|
||||
|
||||
/* 5709 context registers */
|
||||
#define BNX2_MQ_CONFIG2 0x00003d00
|
||||
#define BNX2_MQ_CONFIG2_CONT_SZ (0x7L<<4)
|
||||
|
|
|
@ -2386,7 +2386,7 @@ int bnx2i_map_ep_dbell_regs(struct bnx2i_endpoint *ep)
|
|||
ctx_sz = (config2 & BNX2_MQ_CONFIG2_CONT_SZ) >> 3;
|
||||
if (ctx_sz)
|
||||
reg_off = CTX_OFFSET + MAX_CID_CNT * MB_KERNEL_CTX_SIZE
|
||||
+ PAGE_SIZE *
|
||||
+ BNX2I_570X_PAGE_SIZE_DEFAULT *
|
||||
(((cid_num - first_l4l5) / ctx_sz) + 256);
|
||||
else
|
||||
reg_off = CTX_OFFSET + (MB_KERNEL_CTX_SIZE * cid_num);
|
||||
|
|
Loading…
Reference in a new issue