Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

authored by

Xiangliang Yu and committed by
James Bottomley
b89e8f53 8882f081

+20 -189
-1
drivers/scsi/mvsas/mv_64xx.c
··· 803 803 mvs_write_port_irq_stat, 804 804 mvs_read_port_irq_mask, 805 805 mvs_write_port_irq_mask, 806 - mvs_get_sas_addr, 807 806 mvs_64xx_command_active, 808 807 mvs_64xx_clear_srs_irq, 809 808 mvs_64xx_issue_stop,
-1
drivers/scsi/mvsas/mv_94xx.c
··· 947 947 mvs_write_port_irq_stat, 948 948 mvs_read_port_irq_mask, 949 949 mvs_write_port_irq_mask, 950 - mvs_get_sas_addr, 951 950 mvs_94xx_command_active, 952 951 mvs_94xx_clear_srs_irq, 953 952 mvs_94xx_issue_stop,
-2
drivers/scsi/mvsas/mv_94xx.h
··· 132 132 VSR_PHY_MODE9 = 0x09 * 4, /* Test */ 133 133 VSR_PHY_MODE10 = 0x0A * 4, /* Power */ 134 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 136 VSR_PHY_FFE_CONTROL = 0x10C, 139 137 VSR_PHY_DFE_UPDATE_CRTL = 0x110,
+1 -4
drivers/scsi/mvsas/mv_defs.h
··· 43 43 44 44 /* driver compile-time configuration */ 45 45 enum driver_configuration { 46 - MVS_SLOTS = 512, /* command slots */ 47 46 MVS_TX_RING_SZ = 1024, /* TX ring size (12-bit) */ 48 47 MVS_RX_RING_SZ = 1024, /* RX ring size (12-bit) */ 49 48 /* software requires power-of-2 ··· 55 56 MVS_SSP_CMD_SZ = 64, /* SSP command table buffer size */ 56 57 MVS_ATA_CMD_SZ = 96, /* SATA command table buffer size */ 57 58 MVS_OAF_SZ = 64, /* Open address frame buffer size */ 58 - MVS_QUEUE_SIZE = 32, /* Support Queue depth */ 59 - MVS_CAN_QUEUE = MVS_SLOTS - 2, /* SCSI Queue depth */ 59 + MVS_QUEUE_SIZE = 64, /* Support Queue depth */ 60 60 MVS_SOC_CAN_QUEUE = MVS_SOC_SLOTS - 2, 61 61 }; 62 62 ··· 390 392 }; 391 393 392 394 enum mvs_info_flags { 393 - MVF_MSI = (1U << 0), /* MSI is enabled */ 394 395 MVF_PHY_PWR_FIX = (1U << 1), /* bug workaround */ 395 396 MVF_FLAG_SOC = (1U << 2), /* SoC integrated controllers */ 396 397 };
+14 -10
drivers/scsi/mvsas/mv_init.c
··· 53 53 struct device_attribute *mvst_host_attrs[]; 54 54 55 55 #define SOC_SAS_NUM 2 56 - #define SG_MX 64 57 56 58 57 static struct scsi_host_template mvs_sht = { 59 58 .module = THIS_MODULE, ··· 69 70 .can_queue = 1, 70 71 .cmd_per_lun = 1, 71 72 .this_id = -1, 72 - .sg_tablesize = SG_MX, 73 + .sg_tablesize = SG_ALL, 73 74 .max_sectors = SCSI_DEFAULT_MAX_SECTORS, 74 75 .use_clustering = ENABLE_CLUSTERING, 75 76 .eh_device_reset_handler = sas_eh_device_reset_handler, ··· 132 133 if (mvi->flags & MVF_FLAG_SOC) 133 134 slot_nr = MVS_SOC_SLOTS; 134 135 else 135 - slot_nr = MVS_SLOTS; 136 + slot_nr = MVS_CHIP_SLOT_SZ; 136 137 137 138 if (mvi->dma_pool) 138 139 pci_pool_destroy(mvi->dma_pool); ··· 165 166 scsi_host_put(mvi->shost); 166 167 list_for_each_entry(mwq, &mvi->wq_list, entry) 167 168 cancel_delayed_work(&mwq->work_q); 169 + kfree(mvi->tags); 168 170 kfree(mvi); 169 171 } 170 172 ··· 232 232 if (mvi->flags & MVF_FLAG_SOC) 233 233 slot_nr = MVS_SOC_SLOTS; 234 234 else 235 - slot_nr = MVS_SLOTS; 235 + slot_nr = MVS_CHIP_SLOT_SZ; 236 236 237 237 spin_lock_init(&mvi->lock); 238 238 for (i = 0; i < mvi->chip->n_phy; i++) { ··· 369 369 struct mvs_info *mvi; 370 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), 373 - GFP_KERNEL); 372 + mvi = kzalloc(sizeof(*mvi) + 373 + (1L << mvs_chips[ent->driver_data].slot_width) * 374 + sizeof(struct mvs_slot_info), GFP_KERNEL); 374 375 if (!mvi) 375 376 return NULL; 376 377 ··· 380 379 mvi->chip_id = ent->driver_data; 381 380 mvi->chip = &mvs_chips[mvi->chip_id]; 382 381 INIT_LIST_HEAD(&mvi->wq_list); 383 - mvi->irq = pdev->irq; 384 382 385 383 ((struct mvs_prv_info *)sha->lldd_ha)->mvi[id] = mvi; 386 384 ((struct mvs_prv_info *)sha->lldd_ha)->n_phy = mvi->chip->n_phy; ··· 390 390 #ifdef MVS_USE_TASKLET 391 391 tasklet_init(&mv_tasklet, mvs_tasklet, (unsigned long)sha); 392 392 #endif 393 + 394 + mvi->tags = kzalloc(MVS_CHIP_SLOT_SZ>>3, GFP_KERNEL); 395 + if (!mvi->tags) 396 + goto err_out; 393 397 394 398 if (MVS_CHIP_DISP->chip_ioremap(mvi)) 395 399 goto err_out; ··· 509 505 if (mvi->flags & MVF_FLAG_SOC) 510 506 can_queue = MVS_SOC_CAN_QUEUE; 511 507 else 512 - can_queue = MVS_CAN_QUEUE; 508 + can_queue = MVS_CHIP_SLOT_SZ; 513 509 514 510 sha->lldd_queue_size = can_queue; 515 511 shost->can_queue = can_queue; 516 - mvi->shost->cmd_per_lun = MVS_SLOTS/sha->num_phys; 512 + mvi->shost->cmd_per_lun = MVS_QUEUE_SIZE; 517 513 sha->core.shost = mvi->shost; 518 514 } 519 515 ··· 654 650 scsi_remove_host(mvi->shost); 655 651 656 652 MVS_CHIP_DISP->interrupt_disable(mvi); 657 - free_irq(mvi->irq, sha); 653 + free_irq(mvi->pdev->irq, sha); 658 654 for (i = 0; i < core_nr; i++) { 659 655 mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[i]; 660 656 mvs_free(mvi);
+4 -159
drivers/scsi/mvsas/mv_sas.c
··· 38 38 39 39 void mvs_tag_clear(struct mvs_info *mvi, u32 tag) 40 40 { 41 - void *bitmap = &mvi->tags; 41 + void *bitmap = mvi->tags; 42 42 clear_bit(tag, bitmap); 43 43 } 44 44 ··· 49 49 50 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 53 set_bit(tag, bitmap); 54 54 } 55 55 56 56 inline int mvs_tag_alloc(struct mvs_info *mvi, u32 *tag_out) 57 57 { 58 58 unsigned int index, tag; 59 - void *bitmap = &mvi->tags; 59 + void *bitmap = mvi->tags; 60 60 61 61 index = find_first_zero_bit(bitmap, mvi->tags_num); 62 62 tag = index; ··· 72 72 int i; 73 73 for (i = 0; i < mvi->tags_num; ++i) 74 74 mvs_tag_clear(mvi, i); 75 - } 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 75 } 196 76 197 77 struct mvs_info *mvs_find_dev_mvi(struct domain_device *dev) ··· 301 421 if (ret) 302 422 return ret; 303 423 if (dev_is_sata(dev)) { 304 - /* may set PIO mode */ 305 - #if MV_DISABLE_NCQ 306 - struct ata_port *ap = dev->sata_dev.ap; 307 - struct ata_device *adev = ap->link.device; 308 - adev->flags |= ATA_DFLAG_NCQ_OFF; 309 - scsi_adjust_queue_depth(sdev, MSG_SIMPLE_TAG, 1); 310 - #endif 311 424 } 312 425 return 0; 313 426 } ··· 348 475 void *buf_prd; 349 476 struct mvs_slot_info *slot = &mvi->slot_info[tag]; 350 477 u32 flags = (tei->n_elem << MCH_PRD_LEN_SHIFT); 351 - #if _MV_DUMP 352 - u8 *buf_cmd; 353 - void *from; 354 - #endif 478 + 355 479 /* 356 480 * DMA-map SMP request, response buffers 357 481 */ ··· 380 510 buf_tmp = slot->buf; 381 511 buf_tmp_dma = slot->buf_dma; 382 512 383 - #if _MV_DUMP 384 - buf_cmd = buf_tmp; 385 - hdr->cmd_tbl = cpu_to_le64(buf_tmp_dma); 386 - buf_tmp += req_len; 387 - buf_tmp_dma += req_len; 388 - slot->cmd_size = req_len; 389 - #else 390 513 hdr->cmd_tbl = cpu_to_le64(sg_dma_address(sg_req)); 391 - #endif 392 514 393 515 /* region 2: open address frame area (MVS_OAF_SZ bytes) ********* */ 394 516 buf_oaf = buf_tmp; ··· 429 567 /* fill in PRD (scatter/gather) table, if any */ 430 568 MVS_CHIP_DISP->make_prd(task->scatter, tei->n_elem, buf_prd); 431 569 432 - #if _MV_DUMP 433 - /* copy cmd table */ 434 - from = kmap_atomic(sg_page(sg_req), KM_IRQ0); 435 - memcpy(buf_cmd, from + sg_req->offset, req_len); 436 - kunmap_atomic(from, KM_IRQ0); 437 - #endif 438 570 return 0; 439 571 440 572 err_out_2: ··· 524 668 525 669 buf_tmp += MVS_ATA_CMD_SZ; 526 670 buf_tmp_dma += MVS_ATA_CMD_SZ; 527 - #if _MV_DUMP 528 - slot->cmd_size = MVS_ATA_CMD_SZ; 529 - #endif 530 671 531 672 /* region 2: open address frame area (MVS_OAF_SZ bytes) ********* */ 532 673 /* used for STP. unused for SATA? */ ··· 641 788 642 789 buf_tmp += MVS_SSP_CMD_SZ; 643 790 buf_tmp_dma += MVS_SSP_CMD_SZ; 644 - #if _MV_DUMP 645 - slot->cmd_size = MVS_SSP_CMD_SZ; 646 - #endif 647 791 648 792 /* region 2: open address frame area (MVS_OAF_SZ bytes) ********* */ 649 793 buf_oaf = buf_tmp; ··· 847 997 task->task_state_flags |= SAS_TASK_AT_INITIATOR; 848 998 spin_unlock(&task->task_state_lock); 849 999 850 - mvs_hba_memory_dump(mvi, tag, task->task_proto); 851 1000 mvi_dev->running_req++; 852 1001 ++(*pass); 853 1002 mvi->tx_prod = (mvi->tx_prod + 1) & (MVS_CHIP_SLOT_SZ - 1); ··· 1812 1963 void *to; 1813 1964 enum exec_status sts; 1814 1965 1815 - if (mvi->exp_req) 1816 - mvi->exp_req--; 1817 1966 if (unlikely(!task || !task->lldd_task || !task->dev)) 1818 1967 return -1; 1819 1968 1820 1969 tstat = &task->task_status; 1821 1970 dev = task->dev; 1822 1971 mvi_dev = dev->lldd_dev; 1823 - 1824 - mvs_hba_cq_dump(mvi); 1825 1972 1826 1973 spin_lock(&task->task_state_lock); 1827 1974 task->task_state_flags &=
+1 -12
drivers/scsi/mvsas/mv_sas.h
··· 48 48 49 49 #define DRV_NAME "mvsas" 50 50 #define DRV_VERSION "0.8.2" 51 - #define _MV_DUMP 0 52 51 #define MVS_ID_NOT_MAPPED 0x7f 53 - /* #define DISABLE_HOTPLUG_DMA_FIX */ 54 - // #define MAX_EXP_RUNNING_REQ 2 55 52 #define WIDE_PORT_MAX_PHY 4 56 - #define MV_DISABLE_NCQ 0 57 53 #define mv_printk(fmt, arg ...) \ 58 54 printk(KERN_DEBUG"%s %d:" fmt, __FILE__, __LINE__, ## arg) 59 55 #ifdef MV_DEBUG ··· 127 131 u32 (*read_port_irq_mask)(struct mvs_info *mvi, u32 port); 128 132 void (*write_port_irq_mask)(struct mvs_info *mvi, u32 port, u32 val); 129 133 130 - void (*get_sas_addr)(void *buf, u32 buflen); 131 134 void (*command_active)(struct mvs_info *mvi, u32 slot_idx); 132 135 void (*clear_srs_irq)(struct mvs_info *mvi, u8 reg_set, u8 clear_all); 133 136 void (*issue_stop)(struct mvs_info *mvi, enum mvs_port_type type, ··· 328 333 */ 329 334 void *buf; 330 335 dma_addr_t buf_dma; 331 - #if _MV_DUMP 332 - u32 cmd_size; 333 - #endif 334 336 void *response; 335 337 struct mvs_port *port; 336 338 struct mvs_device *device; ··· 381 389 const struct mvs_chip_info *chip; 382 390 383 391 int tags_num; 384 - DECLARE_BITMAP(tags, MVS_SLOTS); 392 + unsigned long *tags; 385 393 /* further per-slot information */ 386 394 struct mvs_phy phy[MVS_MAX_PHYS]; 387 395 struct mvs_port port[MVS_MAX_PHYS]; 388 - u32 irq; 389 - u32 exp_req; 390 396 u32 id; 391 397 u64 sata_reg_set; 392 398 struct list_head *hba_list; ··· 475 485 void mvs_int_port(struct mvs_info *mvi, int phy_no, u32 events); 476 486 void mvs_update_phyinfo(struct mvs_info *mvi, int i, int get_st); 477 487 int mvs_int_rx(struct mvs_info *mvi, bool self_clear); 478 - void mvs_hexdump(u32 size, u8 *data, u32 baseaddr); 479 488 struct mvs_device *mvs_find_dev_by_reg_set(struct mvs_info *mvi, u8 reg_set); 480 489 #endif 481 490