aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mvsas
diff options
context:
space:
mode:
authorXiangliang Yu <yuxiangl@marvell.com>2011-05-24 10:35:09 -0400
committerJames Bottomley <JBottomley@Parallels.com>2011-07-26 02:35:36 -0400
commitb89e8f539ff8bcf2a1464578fa91cb96cc433fc3 (patch)
treedd606756dfd8fb4a35f1c0921270970a94031efc /drivers/scsi/mvsas
parent8882f081329a82737b7471b97e59ce8c407f6655 (diff)
[SCSI] mvsas: Remove unused macros, variables and functions
Remove unused macros: VSR_PHY_VS0, VSR_PHY_VS1, MVS_SLOTS, MVS_CAN_QUEUE, MVS_MSI, SG_MX, _MV_DUMP, MV_DISABLE_NCQ Remove unused variables for mvs_info: irq, exp_req, cmd_size Remove unused functions: mvs_get_sas_addr, mvs_hexdump, mvs_hba_sb_dump, mvs_hab_memory_dump, mvs_hba_cq_dump Signed-off-by: Xiangliang Yu <yuxiangl@marvell.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/mvsas')
-rw-r--r--drivers/scsi/mvsas/mv_64xx.c1
-rw-r--r--drivers/scsi/mvsas/mv_94xx.c1
-rw-r--r--drivers/scsi/mvsas/mv_94xx.h2
-rw-r--r--drivers/scsi/mvsas/mv_defs.h5
-rw-r--r--drivers/scsi/mvsas/mv_init.c24
-rw-r--r--drivers/scsi/mvsas/mv_sas.c163
-rw-r--r--drivers/scsi/mvsas/mv_sas.h13
7 files changed, 20 insertions, 189 deletions
diff --git a/drivers/scsi/mvsas/mv_64xx.c b/drivers/scsi/mvsas/mv_64xx.c
index b02dd800af38..96bde3448c7d 100644
--- a/drivers/scsi/mvsas/mv_64xx.c
+++ b/drivers/scsi/mvsas/mv_64xx.c
@@ -803,7 +803,6 @@ const struct mvs_dispatch mvs_64xx_dispatch = {
803 mvs_write_port_irq_stat, 803 mvs_write_port_irq_stat,
804 mvs_read_port_irq_mask, 804 mvs_read_port_irq_mask,
805 mvs_write_port_irq_mask, 805 mvs_write_port_irq_mask,
806 mvs_get_sas_addr,
807 mvs_64xx_command_active, 806 mvs_64xx_command_active,
808 mvs_64xx_clear_srs_irq, 807 mvs_64xx_clear_srs_irq,
809 mvs_64xx_issue_stop, 808 mvs_64xx_issue_stop,
diff --git a/drivers/scsi/mvsas/mv_94xx.c b/drivers/scsi/mvsas/mv_94xx.c
index ef3c9012df46..5b25f1b7fa52 100644
--- a/drivers/scsi/mvsas/mv_94xx.c
+++ b/drivers/scsi/mvsas/mv_94xx.c
@@ -947,7 +947,6 @@ const struct mvs_dispatch mvs_94xx_dispatch = {
947 mvs_write_port_irq_stat, 947 mvs_write_port_irq_stat,
948 mvs_read_port_irq_mask, 948 mvs_read_port_irq_mask,
949 mvs_write_port_irq_mask, 949 mvs_write_port_irq_mask,
950 mvs_get_sas_addr,
951 mvs_94xx_command_active, 950 mvs_94xx_command_active,
952 mvs_94xx_clear_srs_irq, 951 mvs_94xx_clear_srs_irq,
953 mvs_94xx_issue_stop, 952 mvs_94xx_issue_stop,
diff --git a/drivers/scsi/mvsas/mv_94xx.h b/drivers/scsi/mvsas/mv_94xx.h
index 33af2a1fb729..723fd0adf1c6 100644
--- a/drivers/scsi/mvsas/mv_94xx.h
+++ b/drivers/scsi/mvsas/mv_94xx.h
@@ -132,8 +132,6 @@ enum sas_sata_vsp_regs {
132 VSR_PHY_MODE9 = 0x09 * 4, /* Test */ 132 VSR_PHY_MODE9 = 0x09 * 4, /* Test */
133 VSR_PHY_MODE10 = 0x0A * 4, /* Power */ 133 VSR_PHY_MODE10 = 0x0A * 4, /* Power */
134 VSR_PHY_MODE11 = 0x0B * 4, /* Phy Mode */ 134 VSR_PHY_MODE11 = 0x0B * 4, /* Phy Mode */
135 VSR_PHY_VS0 = 0x0C * 4, /* Vednor Specific 0 */
136 VSR_PHY_VS1 = 0x0D * 4, /* Vednor Specific 1 */
137 135
138 VSR_PHY_FFE_CONTROL = 0x10C, 136 VSR_PHY_FFE_CONTROL = 0x10C,
139 VSR_PHY_DFE_UPDATE_CRTL = 0x110, 137 VSR_PHY_DFE_UPDATE_CRTL = 0x110,
diff --git a/drivers/scsi/mvsas/mv_defs.h b/drivers/scsi/mvsas/mv_defs.h
index 9202bc68801d..e39629d874b5 100644
--- a/drivers/scsi/mvsas/mv_defs.h
+++ b/drivers/scsi/mvsas/mv_defs.h
@@ -43,7 +43,6 @@ enum chip_flavors {
43 43
44/* driver compile-time configuration */ 44/* driver compile-time configuration */
45enum driver_configuration { 45enum driver_configuration {
46 MVS_SLOTS = 512, /* command slots */
47 MVS_TX_RING_SZ = 1024, /* TX ring size (12-bit) */ 46 MVS_TX_RING_SZ = 1024, /* TX ring size (12-bit) */
48 MVS_RX_RING_SZ = 1024, /* RX ring size (12-bit) */ 47 MVS_RX_RING_SZ = 1024, /* RX ring size (12-bit) */
49 /* software requires power-of-2 48 /* software requires power-of-2
@@ -56,8 +55,7 @@ enum driver_configuration {
56 MVS_SSP_CMD_SZ = 64, /* SSP command table buffer size */ 55 MVS_SSP_CMD_SZ = 64, /* SSP command table buffer size */
57 MVS_ATA_CMD_SZ = 96, /* SATA command table buffer size */ 56 MVS_ATA_CMD_SZ = 96, /* SATA command table buffer size */
58 MVS_OAF_SZ = 64, /* Open address frame buffer size */ 57 MVS_OAF_SZ = 64, /* Open address frame buffer size */
59 MVS_QUEUE_SIZE = 32, /* Support Queue depth */ 58 MVS_QUEUE_SIZE = 64, /* Support Queue depth */
60 MVS_CAN_QUEUE = MVS_SLOTS - 2, /* SCSI Queue depth */
61 MVS_SOC_CAN_QUEUE = MVS_SOC_SLOTS - 2, 59 MVS_SOC_CAN_QUEUE = MVS_SOC_SLOTS - 2,
62}; 60};
63 61
@@ -392,7 +390,6 @@ enum sas_cmd_port_registers {
392}; 390};
393 391
394enum mvs_info_flags { 392enum mvs_info_flags {
395 MVF_MSI = (1U << 0), /* MSI is enabled */
396 MVF_PHY_PWR_FIX = (1U << 1), /* bug workaround */ 393 MVF_PHY_PWR_FIX = (1U << 1), /* bug workaround */
397 MVF_FLAG_SOC = (1U << 2), /* SoC integrated controllers */ 394 MVF_FLAG_SOC = (1U << 2), /* SoC integrated controllers */
398}; 395};
diff --git a/drivers/scsi/mvsas/mv_init.c b/drivers/scsi/mvsas/mv_init.c
index b111ae2ec489..a7815f9c63bc 100644
--- a/drivers/scsi/mvsas/mv_init.c
+++ b/drivers/scsi/mvsas/mv_init.c
@@ -53,7 +53,6 @@ static const struct mvs_chip_info mvs_chips[] = {
53struct device_attribute *mvst_host_attrs[]; 53struct device_attribute *mvst_host_attrs[];
54 54
55#define SOC_SAS_NUM 2 55#define SOC_SAS_NUM 2
56#define SG_MX 64
57 56
58static struct scsi_host_template mvs_sht = { 57static struct scsi_host_template mvs_sht = {
59 .module = THIS_MODULE, 58 .module = THIS_MODULE,
@@ -70,7 +69,7 @@ static struct scsi_host_template mvs_sht = {
70 .can_queue = 1, 69 .can_queue = 1,
71 .cmd_per_lun = 1, 70 .cmd_per_lun = 1,
72 .this_id = -1, 71 .this_id = -1,
73 .sg_tablesize = SG_MX, 72 .sg_tablesize = SG_ALL,
74 .max_sectors = SCSI_DEFAULT_MAX_SECTORS, 73 .max_sectors = SCSI_DEFAULT_MAX_SECTORS,
75 .use_clustering = ENABLE_CLUSTERING, 74 .use_clustering = ENABLE_CLUSTERING,
76 .eh_device_reset_handler = sas_eh_device_reset_handler, 75 .eh_device_reset_handler = sas_eh_device_reset_handler,
@@ -133,7 +132,7 @@ static void mvs_free(struct mvs_info *mvi)
133 if (mvi->flags & MVF_FLAG_SOC) 132 if (mvi->flags & MVF_FLAG_SOC)
134 slot_nr = MVS_SOC_SLOTS; 133 slot_nr = MVS_SOC_SLOTS;
135 else 134 else
136 slot_nr = MVS_SLOTS; 135 slot_nr = MVS_CHIP_SLOT_SZ;
137 136
138 if (mvi->dma_pool) 137 if (mvi->dma_pool)
139 pci_pool_destroy(mvi->dma_pool); 138 pci_pool_destroy(mvi->dma_pool);
@@ -166,6 +165,7 @@ static void mvs_free(struct mvs_info *mvi)
166 scsi_host_put(mvi->shost); 165 scsi_host_put(mvi->shost);
167 list_for_each_entry(mwq, &mvi->wq_list, entry) 166 list_for_each_entry(mwq, &mvi->wq_list, entry)
168 cancel_delayed_work(&mwq->work_q); 167 cancel_delayed_work(&mwq->work_q);
168 kfree(mvi->tags);
169 kfree(mvi); 169 kfree(mvi);
170} 170}
171 171
@@ -232,7 +232,7 @@ static int __devinit mvs_alloc(struct mvs_info *mvi, struct Scsi_Host *shost)
232 if (mvi->flags & MVF_FLAG_SOC) 232 if (mvi->flags & MVF_FLAG_SOC)
233 slot_nr = MVS_SOC_SLOTS; 233 slot_nr = MVS_SOC_SLOTS;
234 else 234 else
235 slot_nr = MVS_SLOTS; 235 slot_nr = MVS_CHIP_SLOT_SZ;
236 236
237 spin_lock_init(&mvi->lock); 237 spin_lock_init(&mvi->lock);
238 for (i = 0; i < mvi->chip->n_phy; i++) { 238 for (i = 0; i < mvi->chip->n_phy; i++) {
@@ -369,8 +369,9 @@ static struct mvs_info *__devinit mvs_pci_alloc(struct pci_dev *pdev,
369 struct mvs_info *mvi; 369 struct mvs_info *mvi;
370 struct sas_ha_struct *sha = SHOST_TO_SAS_HA(shost); 370 struct sas_ha_struct *sha = SHOST_TO_SAS_HA(shost);
371 371
372 mvi = kzalloc(sizeof(*mvi) + MVS_SLOTS * sizeof(struct mvs_slot_info), 372 mvi = kzalloc(sizeof(*mvi) +
373 GFP_KERNEL); 373 (1L << mvs_chips[ent->driver_data].slot_width) *
374 sizeof(struct mvs_slot_info), GFP_KERNEL);
374 if (!mvi) 375 if (!mvi)
375 return NULL; 376 return NULL;
376 377
@@ -379,7 +380,6 @@ static struct mvs_info *__devinit mvs_pci_alloc(struct pci_dev *pdev,
379 mvi->chip_id = ent->driver_data; 380 mvi->chip_id = ent->driver_data;
380 mvi->chip = &mvs_chips[mvi->chip_id]; 381 mvi->chip = &mvs_chips[mvi->chip_id];
381 INIT_LIST_HEAD(&mvi->wq_list); 382 INIT_LIST_HEAD(&mvi->wq_list);
382 mvi->irq = pdev->irq;
383 383
384 ((struct mvs_prv_info *)sha->lldd_ha)->mvi[id] = mvi; 384 ((struct mvs_prv_info *)sha->lldd_ha)->mvi[id] = mvi;
385 ((struct mvs_prv_info *)sha->lldd_ha)->n_phy = mvi->chip->n_phy; 385 ((struct mvs_prv_info *)sha->lldd_ha)->n_phy = mvi->chip->n_phy;
@@ -391,6 +391,10 @@ static struct mvs_info *__devinit mvs_pci_alloc(struct pci_dev *pdev,
391 tasklet_init(&mv_tasklet, mvs_tasklet, (unsigned long)sha); 391 tasklet_init(&mv_tasklet, mvs_tasklet, (unsigned long)sha);
392#endif 392#endif
393 393
394 mvi->tags = kzalloc(MVS_CHIP_SLOT_SZ>>3, GFP_KERNEL);
395 if (!mvi->tags)
396 goto err_out;
397
394 if (MVS_CHIP_DISP->chip_ioremap(mvi)) 398 if (MVS_CHIP_DISP->chip_ioremap(mvi))
395 goto err_out; 399 goto err_out;
396 if (!mvs_alloc(mvi, shost)) 400 if (!mvs_alloc(mvi, shost))
@@ -505,11 +509,11 @@ static void __devinit mvs_post_sas_ha_init(struct Scsi_Host *shost,
505 if (mvi->flags & MVF_FLAG_SOC) 509 if (mvi->flags & MVF_FLAG_SOC)
506 can_queue = MVS_SOC_CAN_QUEUE; 510 can_queue = MVS_SOC_CAN_QUEUE;
507 else 511 else
508 can_queue = MVS_CAN_QUEUE; 512 can_queue = MVS_CHIP_SLOT_SZ;
509 513
510 sha->lldd_queue_size = can_queue; 514 sha->lldd_queue_size = can_queue;
511 shost->can_queue = can_queue; 515 shost->can_queue = can_queue;
512 mvi->shost->cmd_per_lun = MVS_SLOTS/sha->num_phys; 516 mvi->shost->cmd_per_lun = MVS_QUEUE_SIZE;
513 sha->core.shost = mvi->shost; 517 sha->core.shost = mvi->shost;
514} 518}
515 519
@@ -650,7 +654,7 @@ static void __devexit mvs_pci_remove(struct pci_dev *pdev)
650 scsi_remove_host(mvi->shost); 654 scsi_remove_host(mvi->shost);
651 655
652 MVS_CHIP_DISP->interrupt_disable(mvi); 656 MVS_CHIP_DISP->interrupt_disable(mvi);
653 free_irq(mvi->irq, sha); 657 free_irq(mvi->pdev->irq, sha);
654 for (i = 0; i < core_nr; i++) { 658 for (i = 0; i < core_nr; i++) {
655 mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[i]; 659 mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[i];
656 mvs_free(mvi); 660 mvs_free(mvi);
diff --git a/drivers/scsi/mvsas/mv_sas.c b/drivers/scsi/mvsas/mv_sas.c
index 4585dc018ad1..7bd0ee3ed2d6 100644
--- a/drivers/scsi/mvsas/mv_sas.c
+++ b/drivers/scsi/mvsas/mv_sas.c
@@ -38,7 +38,7 @@ static int mvs_find_tag(struct mvs_info *mvi, struct sas_task *task, u32 *tag)
38 38
39void mvs_tag_clear(struct mvs_info *mvi, u32 tag) 39void mvs_tag_clear(struct mvs_info *mvi, u32 tag)
40{ 40{
41 void *bitmap = &mvi->tags; 41 void *bitmap = mvi->tags;
42 clear_bit(tag, bitmap); 42 clear_bit(tag, bitmap);
43} 43}
44 44
@@ -49,14 +49,14 @@ void mvs_tag_free(struct mvs_info *mvi, u32 tag)
49 49
50void mvs_tag_set(struct mvs_info *mvi, unsigned int tag) 50void mvs_tag_set(struct mvs_info *mvi, unsigned int tag)
51{ 51{
52 void *bitmap = &mvi->tags; 52 void *bitmap = mvi->tags;
53 set_bit(tag, bitmap); 53 set_bit(tag, bitmap);
54} 54}
55 55
56inline int mvs_tag_alloc(struct mvs_info *mvi, u32 *tag_out) 56inline int mvs_tag_alloc(struct mvs_info *mvi, u32 *tag_out)
57{ 57{
58 unsigned int index, tag; 58 unsigned int index, tag;
59 void *bitmap = &mvi->tags; 59 void *bitmap = mvi->tags;
60 60
61 index = find_first_zero_bit(bitmap, mvi->tags_num); 61 index = find_first_zero_bit(bitmap, mvi->tags_num);
62 tag = index; 62 tag = index;
@@ -74,126 +74,6 @@ void mvs_tag_init(struct mvs_info *mvi)
74 mvs_tag_clear(mvi, i); 74 mvs_tag_clear(mvi, i);
75} 75}
76 76
77void mvs_hexdump(u32 size, u8 *data, u32 baseaddr)
78{
79 u32 i;
80 u32 run;
81 u32 offset;
82
83 offset = 0;
84 while (size) {
85 printk(KERN_DEBUG"%08X : ", baseaddr + offset);
86 if (size >= 16)
87 run = 16;
88 else
89 run = size;
90 size -= run;
91 for (i = 0; i < 16; i++) {
92 if (i < run)
93 printk(KERN_DEBUG"%02X ", (u32)data[i]);
94 else
95 printk(KERN_DEBUG" ");
96 }
97 printk(KERN_DEBUG": ");
98 for (i = 0; i < run; i++)
99 printk(KERN_DEBUG"%c",
100 isalnum(data[i]) ? data[i] : '.');
101 printk(KERN_DEBUG"\n");
102 data = &data[16];
103 offset += run;
104 }
105 printk(KERN_DEBUG"\n");
106}
107
108#if (_MV_DUMP > 1)
109static void mvs_hba_sb_dump(struct mvs_info *mvi, u32 tag,
110 enum sas_protocol proto)
111{
112 u32 offset;
113 struct mvs_slot_info *slot = &mvi->slot_info[tag];
114
115 offset = slot->cmd_size + MVS_OAF_SZ +
116 MVS_CHIP_DISP->prd_size() * slot->n_elem;
117 dev_printk(KERN_DEBUG, mvi->dev, "+---->Status buffer[%d] :\n",
118 tag);
119 mvs_hexdump(32, (u8 *) slot->response,
120 (u32) slot->buf_dma + offset);
121}
122#endif
123
124static void mvs_hba_memory_dump(struct mvs_info *mvi, u32 tag,
125 enum sas_protocol proto)
126{
127#if (_MV_DUMP > 1)
128 u32 sz, w_ptr;
129 u64 addr;
130 struct mvs_slot_info *slot = &mvi->slot_info[tag];
131
132 /*Delivery Queue */
133 sz = MVS_CHIP_SLOT_SZ;
134 w_ptr = slot->tx;
135 addr = mvi->tx_dma;
136 dev_printk(KERN_DEBUG, mvi->dev,
137 "Delivery Queue Size=%04d , WRT_PTR=%04X\n", sz, w_ptr);
138 dev_printk(KERN_DEBUG, mvi->dev,
139 "Delivery Queue Base Address=0x%llX (PA)"
140 "(tx_dma=0x%llX), Entry=%04d\n",
141 addr, (unsigned long long)mvi->tx_dma, w_ptr);
142 mvs_hexdump(sizeof(u32), (u8 *)(&mvi->tx[mvi->tx_prod]),
143 (u32) mvi->tx_dma + sizeof(u32) * w_ptr);
144 /*Command List */
145 addr = mvi->slot_dma;
146 dev_printk(KERN_DEBUG, mvi->dev,
147 "Command List Base Address=0x%llX (PA)"
148 "(slot_dma=0x%llX), Header=%03d\n",
149 addr, (unsigned long long)slot->buf_dma, tag);
150 dev_printk(KERN_DEBUG, mvi->dev, "Command Header[%03d]:\n", tag);
151 /*mvs_cmd_hdr */
152 mvs_hexdump(sizeof(struct mvs_cmd_hdr), (u8 *)(&mvi->slot[tag]),
153 (u32) mvi->slot_dma + tag * sizeof(struct mvs_cmd_hdr));
154 /*1.command table area */
155 dev_printk(KERN_DEBUG, mvi->dev, "+---->Command Table :\n");
156 mvs_hexdump(slot->cmd_size, (u8 *) slot->buf, (u32) slot->buf_dma);
157 /*2.open address frame area */
158 dev_printk(KERN_DEBUG, mvi->dev, "+---->Open Address Frame :\n");
159 mvs_hexdump(MVS_OAF_SZ, (u8 *) slot->buf + slot->cmd_size,
160 (u32) slot->buf_dma + slot->cmd_size);
161 /*3.status buffer */
162 mvs_hba_sb_dump(mvi, tag, proto);
163 /*4.PRD table */
164 dev_printk(KERN_DEBUG, mvi->dev, "+---->PRD table :\n");
165 mvs_hexdump(MVS_CHIP_DISP->prd_size() * slot->n_elem,
166 (u8 *) slot->buf + slot->cmd_size + MVS_OAF_SZ,
167 (u32) slot->buf_dma + slot->cmd_size + MVS_OAF_SZ);
168#endif
169}
170
171static void mvs_hba_cq_dump(struct mvs_info *mvi)
172{
173#if (_MV_DUMP > 2)
174 u64 addr;
175 void __iomem *regs = mvi->regs;
176 u32 entry = mvi->rx_cons + 1;
177 u32 rx_desc = le32_to_cpu(mvi->rx[entry]);
178
179 /*Completion Queue */
180 addr = mr32(RX_HI) << 16 << 16 | mr32(RX_LO);
181 dev_printk(KERN_DEBUG, mvi->dev, "Completion Task = 0x%p\n",
182 mvi->slot_info[rx_desc & RXQ_SLOT_MASK].task);
183 dev_printk(KERN_DEBUG, mvi->dev,
184 "Completion List Base Address=0x%llX (PA), "
185 "CQ_Entry=%04d, CQ_WP=0x%08X\n",
186 addr, entry - 1, mvi->rx[0]);
187 mvs_hexdump(sizeof(u32), (u8 *)(&rx_desc),
188 mvi->rx_dma + sizeof(u32) * entry);
189#endif
190}
191
192void mvs_get_sas_addr(void *buf, u32 buflen)
193{
194 /*memcpy(buf, "\x50\x05\x04\x30\x11\xab\x64\x40", 8);*/
195}
196
197struct mvs_info *mvs_find_dev_mvi(struct domain_device *dev) 77struct mvs_info *mvs_find_dev_mvi(struct domain_device *dev)
198{ 78{
199 unsigned long i = 0, j = 0, hi = 0; 79 unsigned long i = 0, j = 0, hi = 0;
@@ -421,13 +301,6 @@ int mvs_slave_configure(struct scsi_device *sdev)
421 if (ret) 301 if (ret)
422 return ret; 302 return ret;
423 if (dev_is_sata(dev)) { 303 if (dev_is_sata(dev)) {
424 /* may set PIO mode */
425 #if MV_DISABLE_NCQ
426 struct ata_port *ap = dev->sata_dev.ap;
427 struct ata_device *adev = ap->link.device;
428 adev->flags |= ATA_DFLAG_NCQ_OFF;
429 scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG, 1);
430 #endif
431 } 304 }
432 return 0; 305 return 0;
433} 306}
@@ -475,10 +348,7 @@ static int mvs_task_prep_smp(struct mvs_info *mvi,
475 void *buf_prd; 348 void *buf_prd;
476 struct mvs_slot_info *slot = &mvi->slot_info[tag]; 349 struct mvs_slot_info *slot = &mvi->slot_info[tag];
477 u32 flags = (tei->n_elem << MCH_PRD_LEN_SHIFT); 350 u32 flags = (tei->n_elem << MCH_PRD_LEN_SHIFT);
478#if _MV_DUMP 351
479 u8 *buf_cmd;
480 void *from;
481#endif
482 /* 352 /*
483 * DMA-map SMP request, response buffers 353 * DMA-map SMP request, response buffers
484 */ 354 */
@@ -510,15 +380,7 @@ static int mvs_task_prep_smp(struct mvs_info *mvi,
510 buf_tmp = slot->buf; 380 buf_tmp = slot->buf;
511 buf_tmp_dma = slot->buf_dma; 381 buf_tmp_dma = slot->buf_dma;
512 382
513#if _MV_DUMP
514 buf_cmd = buf_tmp;
515 hdr->cmd_tbl = cpu_to_le64(buf_tmp_dma);
516 buf_tmp += req_len;
517 buf_tmp_dma += req_len;
518 slot->cmd_size = req_len;
519#else
520 hdr->cmd_tbl = cpu_to_le64(sg_dma_address(sg_req)); 383 hdr->cmd_tbl = cpu_to_le64(sg_dma_address(sg_req));
521#endif
522 384
523 /* region 2: open address frame area (MVS_OAF_SZ bytes) ********* */ 385 /* region 2: open address frame area (MVS_OAF_SZ bytes) ********* */
524 buf_oaf = buf_tmp; 386 buf_oaf = buf_tmp;
@@ -567,12 +429,6 @@ static int mvs_task_prep_smp(struct mvs_info *mvi,
567 /* fill in PRD (scatter/gather) table, if any */ 429 /* fill in PRD (scatter/gather) table, if any */
568 MVS_CHIP_DISP->make_prd(task->scatter, tei->n_elem, buf_prd); 430 MVS_CHIP_DISP->make_prd(task->scatter, tei->n_elem, buf_prd);
569 431
570#if _MV_DUMP
571 /* copy cmd table */
572 from = kmap_atomic(sg_page(sg_req), KM_IRQ0);
573 memcpy(buf_cmd, from + sg_req->offset, req_len);
574 kunmap_atomic(from, KM_IRQ0);
575#endif
576 return 0; 432 return 0;
577 433
578err_out_2: 434err_out_2:
@@ -668,9 +524,6 @@ static int mvs_task_prep_ata(struct mvs_info *mvi,
668 524
669 buf_tmp += MVS_ATA_CMD_SZ; 525 buf_tmp += MVS_ATA_CMD_SZ;
670 buf_tmp_dma += MVS_ATA_CMD_SZ; 526 buf_tmp_dma += MVS_ATA_CMD_SZ;
671#if _MV_DUMP
672 slot->cmd_size = MVS_ATA_CMD_SZ;
673#endif
674 527
675 /* region 2: open address frame area (MVS_OAF_SZ bytes) ********* */ 528 /* region 2: open address frame area (MVS_OAF_SZ bytes) ********* */
676 /* used for STP. unused for SATA? */ 529 /* used for STP. unused for SATA? */
@@ -788,9 +641,6 @@ static int mvs_task_prep_ssp(struct mvs_info *mvi,
788 641
789 buf_tmp += MVS_SSP_CMD_SZ; 642 buf_tmp += MVS_SSP_CMD_SZ;
790 buf_tmp_dma += MVS_SSP_CMD_SZ; 643 buf_tmp_dma += MVS_SSP_CMD_SZ;
791#if _MV_DUMP
792 slot->cmd_size = MVS_SSP_CMD_SZ;
793#endif
794 644
795 /* region 2: open address frame area (MVS_OAF_SZ bytes) ********* */ 645 /* region 2: open address frame area (MVS_OAF_SZ bytes) ********* */
796 buf_oaf = buf_tmp; 646 buf_oaf = buf_tmp;
@@ -997,7 +847,6 @@ static int mvs_task_prep(struct sas_task *task, struct mvs_info *mvi, int is_tmf
997 task->task_state_flags |= SAS_TASK_AT_INITIATOR; 847 task->task_state_flags |= SAS_TASK_AT_INITIATOR;
998 spin_unlock(&task->task_state_lock); 848 spin_unlock(&task->task_state_lock);
999 849
1000 mvs_hba_memory_dump(mvi, tag, task->task_proto);
1001 mvi_dev->running_req++; 850 mvi_dev->running_req++;
1002 ++(*pass); 851 ++(*pass);
1003 mvi->tx_prod = (mvi->tx_prod + 1) & (MVS_CHIP_SLOT_SZ - 1); 852 mvi->tx_prod = (mvi->tx_prod + 1) & (MVS_CHIP_SLOT_SZ - 1);
@@ -1963,8 +1812,6 @@ int mvs_slot_complete(struct mvs_info *mvi, u32 rx_desc, u32 flags)
1963 void *to; 1812 void *to;
1964 enum exec_status sts; 1813 enum exec_status sts;
1965 1814
1966 if (mvi->exp_req)
1967 mvi->exp_req--;
1968 if (unlikely(!task || !task->lldd_task || !task->dev)) 1815 if (unlikely(!task || !task->lldd_task || !task->dev))
1969 return -1; 1816 return -1;
1970 1817
@@ -1972,8 +1819,6 @@ int mvs_slot_complete(struct mvs_info *mvi, u32 rx_desc, u32 flags)
1972 dev = task->dev; 1819 dev = task->dev;
1973 mvi_dev = dev->lldd_dev; 1820 mvi_dev = dev->lldd_dev;
1974 1821
1975 mvs_hba_cq_dump(mvi);
1976
1977 spin_lock(&task->task_state_lock); 1822 spin_lock(&task->task_state_lock);
1978 task->task_state_flags &= 1823 task->task_state_flags &=
1979 ~(SAS_TASK_STATE_PENDING | SAS_TASK_AT_INITIATOR); 1824 ~(SAS_TASK_STATE_PENDING | SAS_TASK_AT_INITIATOR);
diff --git a/drivers/scsi/mvsas/mv_sas.h b/drivers/scsi/mvsas/mv_sas.h
index 5cfa4cc18f2d..4f8caaf748f1 100644
--- a/drivers/scsi/mvsas/mv_sas.h
+++ b/drivers/scsi/mvsas/mv_sas.h
@@ -48,12 +48,8 @@
48 48
49#define DRV_NAME "mvsas" 49#define DRV_NAME "mvsas"
50#define DRV_VERSION "0.8.2" 50#define DRV_VERSION "0.8.2"
51#define _MV_DUMP 0
52#define MVS_ID_NOT_MAPPED 0x7f 51#define MVS_ID_NOT_MAPPED 0x7f
53/* #define DISABLE_HOTPLUG_DMA_FIX */
54// #define MAX_EXP_RUNNING_REQ 2
55#define WIDE_PORT_MAX_PHY 4 52#define WIDE_PORT_MAX_PHY 4
56#define MV_DISABLE_NCQ 0
57#define mv_printk(fmt, arg ...) \ 53#define mv_printk(fmt, arg ...) \
58 printk(KERN_DEBUG"%s %d:" fmt, __FILE__, __LINE__, ## arg) 54 printk(KERN_DEBUG"%s %d:" fmt, __FILE__, __LINE__, ## arg)
59#ifdef MV_DEBUG 55#ifdef MV_DEBUG
@@ -131,7 +127,6 @@ struct mvs_dispatch {
131 u32 (*read_port_irq_mask)(struct mvs_info *mvi, u32 port); 127 u32 (*read_port_irq_mask)(struct mvs_info *mvi, u32 port);
132 void (*write_port_irq_mask)(struct mvs_info *mvi, u32 port, u32 val); 128 void (*write_port_irq_mask)(struct mvs_info *mvi, u32 port, u32 val);
133 129
134 void (*get_sas_addr)(void *buf, u32 buflen);
135 void (*command_active)(struct mvs_info *mvi, u32 slot_idx); 130 void (*command_active)(struct mvs_info *mvi, u32 slot_idx);
136 void (*clear_srs_irq)(struct mvs_info *mvi, u8 reg_set, u8 clear_all); 131 void (*clear_srs_irq)(struct mvs_info *mvi, u8 reg_set, u8 clear_all);
137 void (*issue_stop)(struct mvs_info *mvi, enum mvs_port_type type, 132 void (*issue_stop)(struct mvs_info *mvi, enum mvs_port_type type,
@@ -333,9 +328,6 @@ struct mvs_slot_info {
333 */ 328 */
334 void *buf; 329 void *buf;
335 dma_addr_t buf_dma; 330 dma_addr_t buf_dma;
336#if _MV_DUMP
337 u32 cmd_size;
338#endif
339 void *response; 331 void *response;
340 struct mvs_port *port; 332 struct mvs_port *port;
341 struct mvs_device *device; 333 struct mvs_device *device;
@@ -389,12 +381,10 @@ struct mvs_info {
389 const struct mvs_chip_info *chip; 381 const struct mvs_chip_info *chip;
390 382
391 int tags_num; 383 int tags_num;
392 DECLARE_BITMAP(tags, MVS_SLOTS); 384 unsigned long *tags;
393 /* further per-slot information */ 385 /* further per-slot information */
394 struct mvs_phy phy[MVS_MAX_PHYS]; 386 struct mvs_phy phy[MVS_MAX_PHYS];
395 struct mvs_port port[MVS_MAX_PHYS]; 387 struct mvs_port port[MVS_MAX_PHYS];
396 u32 irq;
397 u32 exp_req;
398 u32 id; 388 u32 id;
399 u64 sata_reg_set; 389 u64 sata_reg_set;
400 struct list_head *hba_list; 390 struct list_head *hba_list;
@@ -485,7 +475,6 @@ void mvs_do_release_task(struct mvs_info *mvi, int phy_no,
485void mvs_int_port(struct mvs_info *mvi, int phy_no, u32 events); 475void mvs_int_port(struct mvs_info *mvi, int phy_no, u32 events);
486void mvs_update_phyinfo(struct mvs_info *mvi, int i, int get_st); 476void mvs_update_phyinfo(struct mvs_info *mvi, int i, int get_st);
487int mvs_int_rx(struct mvs_info *mvi, bool self_clear); 477int mvs_int_rx(struct mvs_info *mvi, bool self_clear);
488void mvs_hexdump(u32 size, u8 *data, u32 baseaddr);
489struct mvs_device *mvs_find_dev_by_reg_set(struct mvs_info *mvi, u8 reg_set); 478struct mvs_device *mvs_find_dev_by_reg_set(struct mvs_info *mvi, u8 reg_set);
490#endif 479#endif
491 480