aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/bfa/bfa_ioc.c
diff options
context:
space:
mode:
authorKrishna Gudipati <kgudipat@brocade.com>2012-09-21 20:27:01 -0400
committerJames Bottomley <JBottomley@Parallels.com>2012-10-07 06:24:19 -0400
commit4a49b044487dd04e41019b0c8c2aeec3ab090029 (patch)
tree1cd2a89aa91c72a5689595b982a21ed9fcc24679 /drivers/scsi/bfa/bfa_ioc.c
parent1a1297c644b38d2edfef3004bcc6f9c0084b43a9 (diff)
[SCSI] bfa: Support Power on Hours display and diag temp sensor fixes
- Add Power On Hours display support during sfpshow - Fix to properly set the diag temperature sensor status variable. Signed-off-by: Krishna Gudipati <kgudipat@brocade.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/bfa/bfa_ioc.c')
-rw-r--r--drivers/scsi/bfa/bfa_ioc.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/scsi/bfa/bfa_ioc.c b/drivers/scsi/bfa/bfa_ioc.c
index c697890eeca8..dea6a5e86776 100644
--- a/drivers/scsi/bfa/bfa_ioc.c
+++ b/drivers/scsi/bfa/bfa_ioc.c
@@ -4687,22 +4687,25 @@ diag_tempsensor_comp(struct bfa_diag_s *diag, bfi_diag_ts_rsp_t *rsp)
4687 diag->tsensor.temp->temp = be16_to_cpu(rsp->temp); 4687 diag->tsensor.temp->temp = be16_to_cpu(rsp->temp);
4688 diag->tsensor.temp->ts_junc = rsp->ts_junc; 4688 diag->tsensor.temp->ts_junc = rsp->ts_junc;
4689 diag->tsensor.temp->ts_brd = rsp->ts_brd; 4689 diag->tsensor.temp->ts_brd = rsp->ts_brd;
4690 diag->tsensor.temp->status = BFA_STATUS_OK;
4691 4690
4692 if (rsp->ts_brd) { 4691 if (rsp->ts_brd) {
4692 /* tsensor.temp->status is brd_temp status */
4693 diag->tsensor.temp->status = rsp->status;
4693 if (rsp->status == BFA_STATUS_OK) { 4694 if (rsp->status == BFA_STATUS_OK) {
4694 diag->tsensor.temp->brd_temp = 4695 diag->tsensor.temp->brd_temp =
4695 be16_to_cpu(rsp->brd_temp); 4696 be16_to_cpu(rsp->brd_temp);
4696 } else { 4697 } else
4697 bfa_trc(diag, rsp->status);
4698 diag->tsensor.temp->brd_temp = 0; 4698 diag->tsensor.temp->brd_temp = 0;
4699 diag->tsensor.temp->status = BFA_STATUS_DEVBUSY;
4700 }
4701 } 4699 }
4700
4701 bfa_trc(diag, rsp->status);
4702 bfa_trc(diag, rsp->ts_junc); 4702 bfa_trc(diag, rsp->ts_junc);
4703 bfa_trc(diag, rsp->temp); 4703 bfa_trc(diag, rsp->temp);
4704 bfa_trc(diag, rsp->ts_brd); 4704 bfa_trc(diag, rsp->ts_brd);
4705 bfa_trc(diag, rsp->brd_temp); 4705 bfa_trc(diag, rsp->brd_temp);
4706
4707 /* tsensor status is always good bcos we always have junction temp */
4708 diag->tsensor.status = BFA_STATUS_OK;
4706 diag->tsensor.cbfn(diag->tsensor.cbarg, diag->tsensor.status); 4709 diag->tsensor.cbfn(diag->tsensor.cbarg, diag->tsensor.status);
4707 diag->tsensor.lock = 0; 4710 diag->tsensor.lock = 0;
4708} 4711}
@@ -4931,6 +4934,7 @@ bfa_diag_tsensor_query(struct bfa_diag_s *diag,
4931 diag->tsensor.temp = result; 4934 diag->tsensor.temp = result;
4932 diag->tsensor.cbfn = cbfn; 4935 diag->tsensor.cbfn = cbfn;
4933 diag->tsensor.cbarg = cbarg; 4936 diag->tsensor.cbarg = cbarg;
4937 diag->tsensor.status = BFA_STATUS_OK;
4934 4938
4935 /* Send msg to fw */ 4939 /* Send msg to fw */
4936 diag_tempsensor_send(diag); 4940 diag_tempsensor_send(diag);