Skip to content

Commit

Permalink
bnx2fc: HSI dependent changes for 7.2.xx FW
Browse files Browse the repository at this point in the history
with Tx only section for single cached SGEs.

Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Bhanu Prakash Gollapudi authored and David S. Miller committed Feb 21, 2012
1 parent 621b4d6 commit 1101a0d
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
2 changes: 1 addition & 1 deletion drivers/scsi/bnx2fc/bnx2fc_constants.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

/* Current FCoE HSI version number composed of two fields (16 bit) */
/* Implies on a change broken previous HSI */
#define FCOE_HSI_MAJOR_VERSION (1)
#define FCOE_HSI_MAJOR_VERSION (2)
/* Implies on a change which does not broken previous HSI */
#define FCOE_HSI_MINOR_VERSION (1)

Expand Down
12 changes: 9 additions & 3 deletions drivers/scsi/bnx2fc/bnx2fc_hwi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1716,15 +1716,19 @@ void bnx2fc_init_task(struct bnx2fc_cmd *io_req,

/* Tx only */
bd_count = bd_tbl->bd_valid;
cached_sge = &task->rxwr_only.union_ctx.read_info.sgl_ctx.cached_sge;
if (task_type == FCOE_TASK_TYPE_WRITE) {
if ((dev_type == TYPE_DISK) && (bd_count == 1)) {
struct fcoe_bd_ctx *fcoe_bd_tbl = bd_tbl->bd_tbl;

task->txwr_only.sgl_ctx.cached_sge.cur_buf_addr.lo =
cached_sge->cur_buf_addr.lo =
fcoe_bd_tbl->buf_addr_lo;
task->txwr_only.sgl_ctx.cached_sge.cur_buf_addr.hi =
cached_sge->cur_buf_addr.hi =
fcoe_bd_tbl->buf_addr_hi;
task->txwr_only.sgl_ctx.cached_sge.cur_buf_rem =
cached_sge->cur_buf_rem =
fcoe_bd_tbl->buf_len;

task->txwr_rxrd.const_ctx.init_flags |= 1 <<
Expand Down Expand Up @@ -1790,11 +1794,13 @@ void bnx2fc_init_task(struct bnx2fc_cmd *io_req,
task->rxwr_txrd.var_ctx.rx_id = 0xffff;

/* Rx Only */
cached_sge = &task->rxwr_only.union_ctx.read_info.sgl_ctx.cached_sge;
if (task_type != FCOE_TASK_TYPE_READ)
return;

sgl = &task->rxwr_only.union_ctx.read_info.sgl_ctx.sgl;
bd_count = bd_tbl->bd_valid;
if (task_type == FCOE_TASK_TYPE_READ &&
dev_type == TYPE_DISK) {

if (dev_type == TYPE_DISK) {
if (bd_count == 1) {

struct fcoe_bd_ctx *fcoe_bd_tbl = bd_tbl->bd_tbl;
Expand Down

0 comments on commit 1101a0d

Please sign in to comment.