diff options
author | Xiangliang Yu <yuxiangl@marvell.com> | 2011-05-24 10:35:09 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-07-26 02:35:36 -0400 |
commit | b89e8f539ff8bcf2a1464578fa91cb96cc433fc3 (patch) | |
tree | dd606756dfd8fb4a35f1c0921270970a94031efc /drivers/scsi/mvsas | |
parent | 8882f081329a82737b7471b97e59ce8c407f6655 (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.c | 1 | ||||
-rw-r--r-- | drivers/scsi/mvsas/mv_94xx.c | 1 | ||||
-rw-r--r-- | drivers/scsi/mvsas/mv_94xx.h | 2 | ||||
-rw-r--r-- | drivers/scsi/mvsas/mv_defs.h | 5 | ||||
-rw-r--r-- | drivers/scsi/mvsas/mv_init.c | 24 | ||||
-rw-r--r-- | drivers/scsi/mvsas/mv_sas.c | 163 | ||||
-rw-r--r-- | drivers/scsi/mvsas/mv_sas.h | 13 |
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 */ |
45 | enum driver_configuration { | 45 | enum 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 | ||
394 | enum mvs_info_flags { | 392 | enum 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[] = { | |||
53 | struct device_attribute *mvst_host_attrs[]; | 53 | struct 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 | ||
58 | static struct scsi_host_template mvs_sht = { | 57 | static 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 | ||
39 | void mvs_tag_clear(struct mvs_info *mvi, u32 tag) | 39 | void 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 | ||
50 | void mvs_tag_set(struct mvs_info *mvi, unsigned int tag) | 50 | void 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 | ||
56 | inline int mvs_tag_alloc(struct mvs_info *mvi, u32 *tag_out) | 56 | inline 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 | ||
77 | void 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) | ||
109 | static 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 | |||
124 | static 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 | |||
171 | static 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 | |||
192 | void mvs_get_sas_addr(void *buf, u32 buflen) | ||
193 | { | ||
194 | /*memcpy(buf, "\x50\x05\x04\x30\x11\xab\x64\x40", 8);*/ | ||
195 | } | ||
196 | |||
197 | struct mvs_info *mvs_find_dev_mvi(struct domain_device *dev) | 77 | struct 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 | ||
578 | err_out_2: | 434 | err_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, | |||
485 | void mvs_int_port(struct mvs_info *mvi, int phy_no, u32 events); | 475 | void mvs_int_port(struct mvs_info *mvi, int phy_no, u32 events); |
486 | void mvs_update_phyinfo(struct mvs_info *mvi, int i, int get_st); | 476 | void mvs_update_phyinfo(struct mvs_info *mvi, int i, int get_st); |
487 | int mvs_int_rx(struct mvs_info *mvi, bool self_clear); | 477 | int mvs_int_rx(struct mvs_info *mvi, bool self_clear); |
488 | void mvs_hexdump(u32 size, u8 *data, u32 baseaddr); | ||
489 | struct mvs_device *mvs_find_dev_by_reg_set(struct mvs_info *mvi, u8 reg_set); | 478 | struct mvs_device *mvs_find_dev_by_reg_set(struct mvs_info *mvi, u8 reg_set); |
490 | #endif | 479 | #endif |
491 | 480 | ||