mvsas: Set Hardware Bit for TMF
PATCH 3/4 mvsas: Set Hardware Bit for TMF
Quoted 1 line
From
a939392afc59960b4a9bd8244e2e8fe43b7016f6Mon Sep 17 00:00:00 2001
From: Andy Yan <[email protected]>
Date: Mon, 4 May 2009 23:33:58 +0800
Subject: [PATCH 3/4] bug fix: task frame type setting
Set SSP Task Frame for TMF task.
--- drivers/scsi/mvsas/mv_sas.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
drivers/scsi/mvsas/mv_sas.c +3 -3
@@ -761,9 +761,9 @@ static int mvs_task_prep_ssp(struct mvs_info *mvi, flags |=MCH_FBURST ; fburst = (1 <<7 ); } - hdr->flags =cpu_to_le32 (flags | - (tei->n_elem <<MCH_PRD_LEN_SHIFT ) | - (MCH_SSP_FR_CMD <<MCH_SSP_FR_TYPE_SHIFT )); +if (is_tmf) + flags |= (MCH_SSP_FR_TASK <<MCH_SSP_FR_TYPE_SHIFT ); + hdr->flags =cpu_to_le32 (flags | (tei->n_elem <<MCH_PRD_LEN_SHIFT )); hdr->tags =cpu_to_le32 (tag); hdr->data_len =cpu_to_le32 (task->total_xfer_len);
Signature · 5 lines
1.6.0.3 -- Regards, Ying Chu
James Bottomley
maintainerdrivers/scsi/mvsas/mv_sas.c static int mvs_task_prep_ssp(struct mvs_info *mvi, · line 766
Quoted 6 lines · Ying Chu
drivers/scsi/mvsas/mv_sas.c +3
-3- hdr->flags =cpu_to_le32 (flags | - (tei->n_elem <<MCH_PRD_LEN_SHIFT ) | - (MCH_SSP_FR_CMD <<MCH_SSP_FR_TYPE_SHIFT )); +if (is_tmf) + flags |= (MCH_SSP_FR_TASK <<MCH_SSP_FR_TYPE_SHIFT ); + hdr->flags =cpu_to_le32 (flags | (tei->n_elem <<MCH_PRD_LEN_SHIFT ));
If is_tmf isn't set, shouldn't we be setting the command frame indicator, like the old code was? (I know it's sort of irrelevant because MCH_SSP_FR_CMD is defined to be zero, so if you're just dumping the definition MCH_SSP_FR_CMD, that's fine too).
James
Quoted 12 lines · James Bottomley
drivers/scsi/mvsas/mv_sas.c static int mvs_task_prep_ssp(struct mvs_info *mvi, · line 766
Quoted 6 lines · Ying Chu
drivers/scsi/mvsas/mv_sas.c +3
-3- hdr->flags =cpu_to_le32 (flags | - (tei->n_elem <<MCH_PRD_LEN_SHIFT ) | - (MCH_SSP_FR_CMD <<MCH_SSP_FR_TYPE_SHIFT )); +if (is_tmf) + flags |= (MCH_SSP_FR_TASK <<MCH_SSP_FR_TYPE_SHIFT ); + hdr->flags =cpu_to_le32 (flags | (tei->n_elem <<MCH_PRD_LEN_SHIFT ));If
is_tmfisn't set, shouldn't we be setting the command frame indicator, like the old code was? (I know it's sort of irrelevant becauseMCH_SSP_FR_CMDis defined to be zero, so if you're just dumping the definitionMCH_SSP_FR_CMD, that's fine too).
Yeah, it's largely a matter of taste.
But even if MCH_SSP_FR_CMD is never used, its definition should remain, because the hardware documentation is not public.
Jeff
Quoted 10 lines · Ying Chu
Quoted 1 line
From
a939392afc59960b4a9bd8244e2e8fe43b7016f6Mon Sep 17 00:00:00 2001From: Andy Yan <[email protected]>
Date: Mon, 4 May 2009 23:33:58 +0800
Subject: [PATCH 3/4] bug fix: task frame type settingSet SSP Task Frame for TMF task.
Signed-off-by Ying Chu <[email protected]>Signed-off-by Andy Yan <[email protected]>Signed-off-by Ke Wei <[email protected]>