Skip to contentSkip to conversation

mvsas: Set Hardware Bit for TMF

PATCH In review Ying Chu 3 participants 4 messages May 8, 2009 SCSI

lore
Share & tools
lore

Ying Chu

author
#0 lore raw

PATCH 3/4 mvsas: Set Hardware Bit for TMF

Quoted 1 line

From a939392afc59960b4a9bd8244e2e8fe43b7016f6 Mon 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
index cb002ef..83d5465 100644
@@ -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
maintainer
#1 lore raw

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_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

#2 lore raw
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_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).

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

Acked-by on v1 3/4
#3 lore raw
In reply to Ying Chu
Quoted 10 lines · Ying Chu
Quoted 1 line

From a939392afc59960b4a9bd8244e2e8fe43b7016f6 Mon 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.