aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mvsas
diff options
context:
space:
mode:
authorXiangliang Yu <yuxiangl@marvell.com>2011-05-24 10:38:10 -0400
committerJames Bottomley <JBottomley@Parallels.com>2011-07-26 02:39:09 -0400
commite144f7ef49ec85e9dfdf130f3a9a2372fe5fe39b (patch)
tree1500ee564c2ca4f230afa548bbb023b91ffd88fb /drivers/scsi/mvsas
parent84fbd0cea11b80d7b7097343d5262004d42b8a9a (diff)
[SCSI] mvsas: update comments
Remove obsolete comments and add new comments 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.c17
-rw-r--r--drivers/scsi/mvsas/mv_94xx.c19
-rw-r--r--drivers/scsi/mvsas/mv_94xx.h24
-rw-r--r--drivers/scsi/mvsas/mv_chips.h2
-rw-r--r--drivers/scsi/mvsas/mv_defs.h2
-rw-r--r--drivers/scsi/mvsas/mv_init.c1
-rw-r--r--drivers/scsi/mvsas/mv_sas.c14
7 files changed, 24 insertions, 55 deletions
diff --git a/drivers/scsi/mvsas/mv_64xx.c b/drivers/scsi/mvsas/mv_64xx.c
index bc75ba7488d8..dec5f96f47a0 100644
--- a/drivers/scsi/mvsas/mv_64xx.c
+++ b/drivers/scsi/mvsas/mv_64xx.c
@@ -33,7 +33,6 @@ static void mvs_64xx_detect_porttype(struct mvs_info *mvi, int i)
33 u32 reg; 33 u32 reg;
34 struct mvs_phy *phy = &mvi->phy[i]; 34 struct mvs_phy *phy = &mvi->phy[i];
35 35
36 /* TODO check & save device type */
37 reg = mr32(MVS_GBL_PORT_TYPE); 36 reg = mr32(MVS_GBL_PORT_TYPE);
38 phy->phy_type &= ~(PORT_TYPE_SAS | PORT_TYPE_SATA); 37 phy->phy_type &= ~(PORT_TYPE_SAS | PORT_TYPE_SATA);
39 if (reg & MODE_SAS_SATA & (1 << i)) 38 if (reg & MODE_SAS_SATA & (1 << i))
@@ -63,7 +62,6 @@ static void __devinit mvs_64xx_phy_hacks(struct mvs_info *mvi)
63 mvs_phy_hacks(mvi); 62 mvs_phy_hacks(mvi);
64 63
65 if (!(mvi->flags & MVF_FLAG_SOC)) { 64 if (!(mvi->flags & MVF_FLAG_SOC)) {
66 /* TEST - for phy decoding error, adjust voltage levels */
67 for (i = 0; i < MVS_SOC_PORTS; i++) { 65 for (i = 0; i < MVS_SOC_PORTS; i++) {
68 mvs_write_port_vsr_addr(mvi, i, VSR_PHY_MODE8); 66 mvs_write_port_vsr_addr(mvi, i, VSR_PHY_MODE8);
69 mvs_write_port_vsr_data(mvi, i, 0x2F0); 67 mvs_write_port_vsr_data(mvi, i, 0x2F0);
@@ -375,13 +373,7 @@ static int __devinit mvs_64xx_init(struct mvs_info *mvi)
375 mvs_update_phyinfo(mvi, i, 1); 373 mvs_update_phyinfo(mvi, i, 1);
376 } 374 }
377 375
378 /* FIXME: update wide port bitmaps */
379
380 /* little endian for open address and command table, etc. */ 376 /* little endian for open address and command table, etc. */
381 /*
382 * it seems that ( from the spec ) turning on big-endian won't
383 * do us any good on big-endian machines, need further confirmation
384 */
385 cctl = mr32(MVS_CTL); 377 cctl = mr32(MVS_CTL);
386 cctl |= CCTL_ENDIAN_CMD; 378 cctl |= CCTL_ENDIAN_CMD;
387 cctl |= CCTL_ENDIAN_DATA; 379 cctl |= CCTL_ENDIAN_DATA;
@@ -394,8 +386,8 @@ static int __devinit mvs_64xx_init(struct mvs_info *mvi)
394 tmp |= PCS_CMD_RST; 386 tmp |= PCS_CMD_RST;
395 tmp &= ~PCS_SELF_CLEAR; 387 tmp &= ~PCS_SELF_CLEAR;
396 mw32(MVS_PCS, tmp); 388 mw32(MVS_PCS, tmp);
397 /* interrupt coalescing may cause missing HW interrput in some case, 389 /*
398 * and the max count is 0x1ff, while our max slot is 0x200, 390 * the max count is 0x1ff, while our max slot is 0x200,
399 * it will make count 0. 391 * it will make count 0.
400 */ 392 */
401 tmp = 0; 393 tmp = 0;
@@ -632,7 +624,6 @@ static void mvs_64xx_phy_work_around(struct mvs_info *mvi, int i)
632{ 624{
633 u32 tmp; 625 u32 tmp;
634 struct mvs_phy *phy = &mvi->phy[i]; 626 struct mvs_phy *phy = &mvi->phy[i];
635 /* workaround for HW phy decoding error on 1.5g disk drive */
636 mvs_write_port_vsr_addr(mvi, i, VSR_PHY_MODE6); 627 mvs_write_port_vsr_addr(mvi, i, VSR_PHY_MODE6);
637 tmp = mvs_read_port_vsr_data(mvi, i); 628 tmp = mvs_read_port_vsr_data(mvi, i);
638 if (((phy->phy_status & PHY_NEG_SPP_PHYS_LINK_RATE_MASK) >> 629 if (((phy->phy_status & PHY_NEG_SPP_PHYS_LINK_RATE_MASK) >>
@@ -765,8 +756,8 @@ static void mvs_64xx_tune_interrupt(struct mvs_info *mvi, u32 time)
765{ 756{
766 void __iomem *regs = mvi->regs; 757 void __iomem *regs = mvi->regs;
767 u32 tmp = 0; 758 u32 tmp = 0;
768 /* interrupt coalescing may cause missing HW interrput in some case, 759 /*
769 * and the max count is 0x1ff, while our max slot is 0x200, 760 * the max count is 0x1ff, while our max slot is 0x200,
770 * it will make count 0. 761 * it will make count 0.
771 */ 762 */
772 if (time == 0) { 763 if (time == 0) {
diff --git a/drivers/scsi/mvsas/mv_94xx.c b/drivers/scsi/mvsas/mv_94xx.c
index 1276e494b868..f4a995c29eb1 100644
--- a/drivers/scsi/mvsas/mv_94xx.c
+++ b/drivers/scsi/mvsas/mv_94xx.c
@@ -460,13 +460,7 @@ static int __devinit mvs_94xx_init(struct mvs_info *mvi)
460 mvs_update_phyinfo(mvi, i, 1); 460 mvs_update_phyinfo(mvi, i, 1);
461 } 461 }
462 462
463 /* FIXME: update wide port bitmaps */
464
465 /* little endian for open address and command table, etc. */ 463 /* little endian for open address and command table, etc. */
466 /*
467 * it seems that ( from the spec ) turning on big-endian won't
468 * do us any good on big-endian machines, need further confirmation
469 */
470 cctl = mr32(MVS_CTL); 464 cctl = mr32(MVS_CTL);
471 cctl |= CCTL_ENDIAN_CMD; 465 cctl |= CCTL_ENDIAN_CMD;
472 cctl &= ~CCTL_ENDIAN_OPEN; 466 cctl &= ~CCTL_ENDIAN_OPEN;
@@ -478,8 +472,8 @@ static int __devinit mvs_94xx_init(struct mvs_info *mvi)
478 tmp |= PCS_CMD_RST; 472 tmp |= PCS_CMD_RST;
479 tmp &= ~PCS_SELF_CLEAR; 473 tmp &= ~PCS_SELF_CLEAR;
480 mw32(MVS_PCS, tmp); 474 mw32(MVS_PCS, tmp);
481 /* interrupt coalescing may cause missing HW interrput in some case, 475 /*
482 * and the max count is 0x1ff, while our max slot is 0x200, 476 * the max count is 0x1ff, while our max slot is 0x200,
483 * it will make count 0. 477 * it will make count 0.
484 */ 478 */
485 tmp = 0; 479 tmp = 0;
@@ -488,6 +482,7 @@ static int __devinit mvs_94xx_init(struct mvs_info *mvi)
488 else 482 else
489 mw32(MVS_INT_COAL, MVS_CHIP_SLOT_SZ | COAL_EN); 483 mw32(MVS_INT_COAL, MVS_CHIP_SLOT_SZ | COAL_EN);
490 484
485 /* default interrupt coalescing time is 128us */
491 tmp = 0x10000 | interrupt_coalescing; 486 tmp = 0x10000 | interrupt_coalescing;
492 mw32(MVS_INT_COAL_TMOUT, tmp); 487 mw32(MVS_INT_COAL_TMOUT, tmp);
493 488
@@ -745,7 +740,7 @@ static int mvs_94xx_oob_done(struct mvs_info *mvi, int i)
745{ 740{
746 u32 phy_st; 741 u32 phy_st;
747 phy_st = mvs_read_phy_ctl(mvi, i); 742 phy_st = mvs_read_phy_ctl(mvi, i);
748 if (phy_st & PHY_READY_MASK) /* phy ready */ 743 if (phy_st & PHY_READY_MASK)
749 return 1; 744 return 1;
750 return 0; 745 return 0;
751} 746}
@@ -770,7 +765,6 @@ static void mvs_94xx_get_att_identify_frame(struct mvs_info *mvi, int port_id,
770 int i; 765 int i;
771 u32 id_frame[7]; 766 u32 id_frame[7];
772 767
773 /* mvs_hexdump(28, (u8 *)id_frame, 0); */
774 for (i = 0; i < 7; i++) { 768 for (i = 0; i < 7; i++) {
775 mvs_write_port_cfg_addr(mvi, port_id, 769 mvs_write_port_cfg_addr(mvi, port_id,
776 CONFIG_ATT_ID_FRAME0 + i * 4); 770 CONFIG_ATT_ID_FRAME0 + i * 4);
@@ -778,7 +772,6 @@ static void mvs_94xx_get_att_identify_frame(struct mvs_info *mvi, int port_id,
778 mv_dprintk("94xx phy %d atta frame %d %x.\n", 772 mv_dprintk("94xx phy %d atta frame %d %x.\n",
779 port_id + mvi->id * mvi->chip->n_phy, i, id_frame[i]); 773 port_id + mvi->id * mvi->chip->n_phy, i, id_frame[i]);
780 } 774 }
781 /* mvs_hexdump(28, (u8 *)id_frame, 0); */
782 memcpy(id, id_frame, 28); 775 memcpy(id, id_frame, 28);
783} 776}
784 777
@@ -962,8 +955,8 @@ static void mvs_94xx_tune_interrupt(struct mvs_info *mvi, u32 time)
962{ 955{
963 void __iomem *regs = mvi->regs; 956 void __iomem *regs = mvi->regs;
964 u32 tmp = 0; 957 u32 tmp = 0;
965 /* interrupt coalescing may cause missing HW interrput in some case, 958 /*
966 * and the max count is 0x1ff, while our max slot is 0x200, 959 * the max count is 0x1ff, while our max slot is 0x200,
967 * it will make count 0. 960 * it will make count 0.
968 */ 961 */
969 if (time == 0) { 962 if (time == 0) {
diff --git a/drivers/scsi/mvsas/mv_94xx.h b/drivers/scsi/mvsas/mv_94xx.h
index d8c12e057ae8..8f7eb4f21140 100644
--- a/drivers/scsi/mvsas/mv_94xx.h
+++ b/drivers/scsi/mvsas/mv_94xx.h
@@ -121,18 +121,18 @@ enum pci_cfg_registers {
121 121
122/* SAS/SATA Vendor Specific Port Registers */ 122/* SAS/SATA Vendor Specific Port Registers */
123enum sas_sata_vsp_regs { 123enum sas_sata_vsp_regs {
124 VSR_PHY_STAT = 0x00 * 4, /* Phy Status */ 124 VSR_PHY_STAT = 0x00 * 4, /* Phy Interrupt Status */
125 VSR_PHY_MODE1 = 0x01 * 4, /* phy tx */ 125 VSR_PHY_MODE1 = 0x01 * 4, /* phy Interrupt Enable */
126 VSR_PHY_MODE2 = 0x02 * 4, /* tx scc */ 126 VSR_PHY_MODE2 = 0x02 * 4, /* Phy Configuration */
127 VSR_PHY_MODE3 = 0x03 * 4, /* pll */ 127 VSR_PHY_MODE3 = 0x03 * 4, /* Phy Status */
128 VSR_PHY_MODE4 = 0x04 * 4, /* VCO */ 128 VSR_PHY_MODE4 = 0x04 * 4, /* Phy Counter 0 */
129 VSR_PHY_MODE5 = 0x05 * 4, /* Rx */ 129 VSR_PHY_MODE5 = 0x05 * 4, /* Phy Counter 1 */
130 VSR_PHY_MODE6 = 0x06 * 4, /* CDR */ 130 VSR_PHY_MODE6 = 0x06 * 4, /* Event Counter Control */
131 VSR_PHY_MODE7 = 0x07 * 4, /* Impedance */ 131 VSR_PHY_MODE7 = 0x07 * 4, /* Event Counter Select */
132 VSR_PHY_MODE8 = 0x08 * 4, /* Voltage */ 132 VSR_PHY_MODE8 = 0x08 * 4, /* Event Counter 0 */
133 VSR_PHY_MODE9 = 0x09 * 4, /* Test */ 133 VSR_PHY_MODE9 = 0x09 * 4, /* Event Counter 1 */
134 VSR_PHY_MODE10 = 0x0A * 4, /* Power */ 134 VSR_PHY_MODE10 = 0x0A * 4, /* Event Counter 2 */
135 VSR_PHY_MODE11 = 0x0B * 4, /* Phy Mode */ 135 VSR_PHY_MODE11 = 0x0B * 4, /* Event Counter 3 */
136 VSR_PHY_ACT_LED = 0x0C * 4, /* Activity LED control */ 136 VSR_PHY_ACT_LED = 0x0C * 4, /* Activity LED control */
137 137
138 VSR_PHY_FFE_CONTROL = 0x10C, 138 VSR_PHY_FFE_CONTROL = 0x10C,
diff --git a/drivers/scsi/mvsas/mv_chips.h b/drivers/scsi/mvsas/mv_chips.h
index 0a11bc7174ac..bcc408042cee 100644
--- a/drivers/scsi/mvsas/mv_chips.h
+++ b/drivers/scsi/mvsas/mv_chips.h
@@ -164,7 +164,6 @@ static inline void __devinit mvs_phy_hacks(struct mvs_info *mvi)
164{ 164{
165 u32 tmp; 165 u32 tmp;
166 166
167 /* workaround for SATA R-ERR, to ignore phy glitch */
168 tmp = mvs_cr32(mvi, CMD_PHY_TIMER); 167 tmp = mvs_cr32(mvi, CMD_PHY_TIMER);
169 tmp &= ~(1 << 9); 168 tmp &= ~(1 << 9);
170 tmp |= (1 << 10); 169 tmp |= (1 << 10);
@@ -179,7 +178,6 @@ static inline void __devinit mvs_phy_hacks(struct mvs_info *mvi)
179 tmp |= 0x3fff; 178 tmp |= 0x3fff;
180 mvs_cw32(mvi, CMD_SAS_CTL0, tmp); 179 mvs_cw32(mvi, CMD_SAS_CTL0, tmp);
181 180
182 /* workaround for WDTIMEOUT , set to 550 ms */
183 mvs_cw32(mvi, CMD_WD_TIMER, 0x7a0000); 181 mvs_cw32(mvi, CMD_WD_TIMER, 0x7a0000);
184 182
185 /* not to halt for different port op during wideport link change */ 183 /* not to halt for different port op during wideport link change */
diff --git a/drivers/scsi/mvsas/mv_defs.h b/drivers/scsi/mvsas/mv_defs.h
index 1927e1bbb8eb..dec7cadb7485 100644
--- a/drivers/scsi/mvsas/mv_defs.h
+++ b/drivers/scsi/mvsas/mv_defs.h
@@ -160,7 +160,7 @@ enum hw_register_bits {
160 TXQ_CMD_SSP = 1, /* SSP protocol */ 160 TXQ_CMD_SSP = 1, /* SSP protocol */
161 TXQ_CMD_SMP = 2, /* SMP protocol */ 161 TXQ_CMD_SMP = 2, /* SMP protocol */
162 TXQ_CMD_STP = 3, /* STP/SATA protocol */ 162 TXQ_CMD_STP = 3, /* STP/SATA protocol */
163 TXQ_CMD_SSP_FREE_LIST = 4, /* add to SSP targ free list */ 163 TXQ_CMD_SSP_FREE_LIST = 4, /* add to SSP target free list */
164 TXQ_CMD_SLOT_RESET = 7, /* reset command slot */ 164 TXQ_CMD_SLOT_RESET = 7, /* reset command slot */
165 TXQ_MODE_I = (1U << 28), /* mode: 0=target,1=initiator */ 165 TXQ_MODE_I = (1U << 28), /* mode: 0=target,1=initiator */
166 TXQ_MODE_TARGET = 0, 166 TXQ_MODE_TARGET = 0,
diff --git a/drivers/scsi/mvsas/mv_init.c b/drivers/scsi/mvsas/mv_init.c
index b28ee5bd7eeb..cf4aaa9db5fe 100644
--- a/drivers/scsi/mvsas/mv_init.c
+++ b/drivers/scsi/mvsas/mv_init.c
@@ -405,7 +405,6 @@ err_out:
405 return NULL; 405 return NULL;
406} 406}
407 407
408/* move to PCI layer or libata core? */
409static int pci_go_64(struct pci_dev *pdev) 408static int pci_go_64(struct pci_dev *pdev)
410{ 409{
411 int rc; 410 int rc;
diff --git a/drivers/scsi/mvsas/mv_sas.c b/drivers/scsi/mvsas/mv_sas.c
index 31ca8fe25cae..4958fefff365 100644
--- a/drivers/scsi/mvsas/mv_sas.c
+++ b/drivers/scsi/mvsas/mv_sas.c
@@ -102,7 +102,6 @@ struct mvs_info *mvs_find_dev_mvi(struct domain_device *dev)
102 102
103} 103}
104 104
105/* FIXME */
106int mvs_find_dev_phyno(struct domain_device *dev, int *phyno) 105int mvs_find_dev_phyno(struct domain_device *dev, int *phyno)
107{ 106{
108 unsigned long i = 0, j = 0, n = 0, num = 0; 107 unsigned long i = 0, j = 0, n = 0, num = 0;
@@ -177,7 +176,6 @@ void mvs_phys_reset(struct mvs_info *mvi, u32 phy_mask, int hard)
177 } 176 }
178} 177}
179 178
180/* FIXME: locking? */
181int mvs_phy_control(struct asd_sas_phy *sas_phy, enum phy_func func, 179int mvs_phy_control(struct asd_sas_phy *sas_phy, enum phy_func func,
182 void *funcdata) 180 void *funcdata)
183{ 181{
@@ -504,11 +502,8 @@ static int mvs_task_prep_ata(struct mvs_info *mvi,
504 flags |= MCH_ATAPI; 502 flags |= MCH_ATAPI;
505 } 503 }
506 504
507 /* FIXME: fill in port multiplier number */
508
509 hdr->flags = cpu_to_le32(flags); 505 hdr->flags = cpu_to_le32(flags);
510 506
511 /* FIXME: the low order order 5 bits for the TAG if enable NCQ */
512 if (task->ata_task.use_ncq && mvs_get_ncq_tag(task, &hdr_tag)) 507 if (task->ata_task.use_ncq && mvs_get_ncq_tag(task, &hdr_tag))
513 task->ata_task.fis.sector_count |= (u8) (hdr_tag << 3); 508 task->ata_task.fis.sector_count |= (u8) (hdr_tag << 3);
514 else 509 else
@@ -552,9 +547,6 @@ static int mvs_task_prep_ata(struct mvs_info *mvi,
552 buf_tmp_dma += i; 547 buf_tmp_dma += i;
553 548
554 /* region 4: status buffer (larger the PRD, smaller this buf) ****** */ 549 /* region 4: status buffer (larger the PRD, smaller this buf) ****** */
555 /* FIXME: probably unused, for SATA. kept here just in case
556 * we get a STP/SATA error information record
557 */
558 slot->response = buf_tmp; 550 slot->response = buf_tmp;
559 hdr->status_buf = cpu_to_le64(buf_tmp_dma); 551 hdr->status_buf = cpu_to_le64(buf_tmp_dma);
560 if (mvi->flags & MVF_FLAG_SOC) 552 if (mvi->flags & MVF_FLAG_SOC)
@@ -1126,7 +1118,6 @@ static void *mvs_get_d2h_reg(struct mvs_info *mvi, int i, void *buf)
1126 MVS_CHIP_DISP->write_port_cfg_addr(mvi, i, PHYR_SATA_SIG0); 1118 MVS_CHIP_DISP->write_port_cfg_addr(mvi, i, PHYR_SATA_SIG0);
1127 s[0] = cpu_to_le32(MVS_CHIP_DISP->read_port_cfg_data(mvi, i)); 1119 s[0] = cpu_to_le32(MVS_CHIP_DISP->read_port_cfg_data(mvi, i));
1128 1120
1129 /* Workaround: take some ATAPI devices for ATA */
1130 if (((s[1] & 0x00FFFFFF) == 0x00EB1401) && (*(u8 *)&s[3] == 0x01)) 1121 if (((s[1] & 0x00FFFFFF) == 0x00EB1401) && (*(u8 *)&s[3] == 0x01))
1131 s[1] = 0x00EB1401 | (*((u8 *)&s[1] + 3) & 0x10); 1122 s[1] = 0x00EB1401 | (*((u8 *)&s[1] + 3) & 0x10);
1132 1123
@@ -1433,7 +1424,6 @@ static void mvs_tmf_timedout(unsigned long data)
1433 complete(&task->completion); 1424 complete(&task->completion);
1434} 1425}
1435 1426
1436/* XXX */
1437#define MVS_TASK_TIMEOUT 20 1427#define MVS_TASK_TIMEOUT 20
1438static int mvs_exec_internal_tmf_task(struct domain_device *dev, 1428static int mvs_exec_internal_tmf_task(struct domain_device *dev,
1439 void *parameter, u32 para_len, struct mvs_tmf_task *tmf) 1429 void *parameter, u32 para_len, struct mvs_tmf_task *tmf)
@@ -1577,7 +1567,6 @@ int mvs_I_T_nexus_reset(struct domain_device *dev)
1577 mv_printk("%s for device[%x]:rc= %d\n", 1567 mv_printk("%s for device[%x]:rc= %d\n",
1578 __func__, mvi_dev->device_id, rc); 1568 __func__, mvi_dev->device_id, rc);
1579 1569
1580 /* housekeeper */
1581 spin_lock_irqsave(&mvi->lock, flags); 1570 spin_lock_irqsave(&mvi->lock, flags);
1582 mvs_release_task(mvi, dev); 1571 mvs_release_task(mvi, dev);
1583 spin_unlock_irqrestore(&mvi->lock, flags); 1572 spin_unlock_irqrestore(&mvi->lock, flags);
@@ -1681,7 +1670,6 @@ int mvs_abort_task(struct sas_task *task)
1681 1670
1682 } else if (task->task_proto & SAS_PROTOCOL_SATA || 1671 } else if (task->task_proto & SAS_PROTOCOL_SATA ||
1683 task->task_proto & SAS_PROTOCOL_STP) { 1672 task->task_proto & SAS_PROTOCOL_STP) {
1684 /* to do free register_set */
1685 if (SATA_DEV == dev->dev_type) { 1673 if (SATA_DEV == dev->dev_type) {
1686 struct mvs_slot_info *slot = task->lldd_task; 1674 struct mvs_slot_info *slot = task->lldd_task;
1687 u32 slot_idx = (u32)(slot - mvi->slot_info); 1675 u32 slot_idx = (u32)(slot - mvi->slot_info);
@@ -1901,6 +1889,7 @@ int mvs_slot_complete(struct mvs_info *mvi, u32 rx_desc, u32 flags)
1901 return -1; 1889 return -1;
1902 } 1890 }
1903 1891
1892 /* when no device attaching, go ahead and complete by error handling*/
1904 if (unlikely(!mvi_dev || flags)) { 1893 if (unlikely(!mvi_dev || flags)) {
1905 if (!mvi_dev) 1894 if (!mvi_dev)
1906 mv_dprintk("port has not device.\n"); 1895 mv_dprintk("port has not device.\n");
@@ -2017,7 +2006,6 @@ void mvs_release_task(struct mvs_info *mvi,
2017 struct domain_device *dev) 2006 struct domain_device *dev)
2018{ 2007{
2019 int i, phyno[WIDE_PORT_MAX_PHY], num; 2008 int i, phyno[WIDE_PORT_MAX_PHY], num;
2020 /* housekeeper */
2021 num = mvs_find_dev_phyno(dev, phyno); 2009 num = mvs_find_dev_phyno(dev, phyno);
2022 for (i = 0; i < num; i++) 2010 for (i = 0; i < num; i++)
2023 mvs_do_release_task(mvi, phyno[i], dev); 2011 mvs_do_release_task(mvi, phyno[i], dev);