Lines Matching refs:mvi

28 static int mvs_find_tag(struct mvs_info *mvi, struct sas_task *task, u32 *tag)  in mvs_find_tag()  argument
39 void mvs_tag_clear(struct mvs_info *mvi, u32 tag) in mvs_tag_clear() argument
41 void *bitmap = mvi->tags; in mvs_tag_clear()
45 void mvs_tag_free(struct mvs_info *mvi, u32 tag) in mvs_tag_free() argument
47 mvs_tag_clear(mvi, tag); in mvs_tag_free()
50 void mvs_tag_set(struct mvs_info *mvi, unsigned int tag) in mvs_tag_set() argument
52 void *bitmap = mvi->tags; in mvs_tag_set()
56 inline int mvs_tag_alloc(struct mvs_info *mvi, u32 *tag_out) in mvs_tag_alloc() argument
59 void *bitmap = mvi->tags; in mvs_tag_alloc()
61 index = find_first_zero_bit(bitmap, mvi->tags_num); in mvs_tag_alloc()
63 if (tag >= mvi->tags_num) in mvs_tag_alloc()
65 mvs_tag_set(mvi, tag); in mvs_tag_alloc()
70 void mvs_tag_init(struct mvs_info *mvi) in mvs_tag_init() argument
73 for (i = 0; i < mvi->tags_num; ++i) in mvs_tag_init()
74 mvs_tag_clear(mvi, i); in mvs_tag_init()
81 struct mvs_info *mvi = NULL; in mvs_find_dev_mvi() local
99 mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[hi]; in mvs_find_dev_mvi()
101 return mvi; in mvs_find_dev_mvi()
109 struct mvs_info *mvi = mvi_dev->mvi_info; in mvs_find_dev_phyno() local
123 phyno[n] = (j >= mvi->chip->n_phy) ? in mvs_find_dev_phyno()
124 (j - mvi->chip->n_phy) : j; in mvs_find_dev_phyno()
135 struct mvs_device *mvs_find_dev_by_reg_set(struct mvs_info *mvi, in mvs_find_dev_by_reg_set() argument
140 if (mvi->devices[dev_no].taskfileset == MVS_ID_NOT_MAPPED) in mvs_find_dev_by_reg_set()
143 if (mvi->devices[dev_no].taskfileset == reg_set) in mvs_find_dev_by_reg_set()
144 return &mvi->devices[dev_no]; in mvs_find_dev_by_reg_set()
149 static inline void mvs_free_reg_set(struct mvs_info *mvi, in mvs_free_reg_set() argument
158 MVS_CHIP_DISP->free_reg_set(mvi, &dev->taskfileset); in mvs_free_reg_set()
161 static inline u8 mvs_assign_reg_set(struct mvs_info *mvi, in mvs_assign_reg_set() argument
166 return MVS_CHIP_DISP->assign_reg_set(mvi, &dev->taskfileset); in mvs_assign_reg_set()
169 void mvs_phys_reset(struct mvs_info *mvi, u32 phy_mask, int hard) in mvs_phys_reset() argument
175 MVS_CHIP_DISP->phy_reset(mvi, no, hard); in mvs_phys_reset()
185 struct mvs_info *mvi = NULL; in mvs_phy_control() local
193 mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[hi]; in mvs_phy_control()
197 MVS_CHIP_DISP->phy_set_link_rate(mvi, phy_id, funcdata); in mvs_phy_control()
201 tmp = MVS_CHIP_DISP->read_phy_ctl(mvi, phy_id); in mvs_phy_control()
204 MVS_CHIP_DISP->phy_reset(mvi, phy_id, MVS_HARD_RESET); in mvs_phy_control()
208 MVS_CHIP_DISP->phy_enable(mvi, phy_id); in mvs_phy_control()
209 MVS_CHIP_DISP->phy_reset(mvi, phy_id, MVS_SOFT_RESET); in mvs_phy_control()
213 MVS_CHIP_DISP->phy_disable(mvi, phy_id); in mvs_phy_control()
223 void mvs_set_sas_addr(struct mvs_info *mvi, int port_id, u32 off_lo, in mvs_set_sas_addr() argument
229 MVS_CHIP_DISP->write_port_cfg_addr(mvi, port_id, off_lo); in mvs_set_sas_addr()
230 MVS_CHIP_DISP->write_port_cfg_data(mvi, port_id, lo); in mvs_set_sas_addr()
231 MVS_CHIP_DISP->write_port_cfg_addr(mvi, port_id, off_hi); in mvs_set_sas_addr()
232 MVS_CHIP_DISP->write_port_cfg_data(mvi, port_id, hi); in mvs_set_sas_addr()
235 static void mvs_bytes_dmaed(struct mvs_info *mvi, int i) in mvs_bytes_dmaed() argument
237 struct mvs_phy *phy = &mvi->phy[i]; in mvs_bytes_dmaed()
248 sas_ha = mvi->sas; in mvs_bytes_dmaed()
271 MVS_CHIP_DISP->write_port_cfg_addr(mvi, i, PHYR_PHY_STAT); in mvs_bytes_dmaed()
272 MVS_CHIP_DISP->write_port_cfg_data(mvi, i, 0x00); in mvs_bytes_dmaed()
277 mv_dprintk("phy %d byte dmaded.\n", i + mvi->id * mvi->chip->n_phy); in mvs_bytes_dmaed()
281 mvi->sas->notify_port_event(sas_phy, in mvs_bytes_dmaed()
289 struct mvs_info *mvi; in mvs_scan_start() local
296 mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[j]; in mvs_scan_start()
297 for (i = 0; i < mvi->chip->n_phy; ++i) in mvs_scan_start()
298 mvs_bytes_dmaed(mvi, i); in mvs_scan_start()
315 static int mvs_task_prep_smp(struct mvs_info *mvi, in mvs_task_prep_smp() argument
319 struct sas_ha_struct *sha = mvi->sas; in mvs_task_prep_smp()
332 struct mvs_slot_info *slot = &mvi->slot_info[tag]; in mvs_task_prep_smp()
339 elem = dma_map_sg(mvi->dev, sg_req, 1, PCI_DMA_TODEVICE); in mvs_task_prep_smp()
345 elem = dma_map_sg(mvi->dev, sg_resp, 1, PCI_DMA_FROMDEVICE); in mvs_task_prep_smp()
389 if (mvi->flags & MVF_FLAG_SOC) in mvs_task_prep_smp()
395 slot->tx = mvi->tx_prod; in mvs_task_prep_smp()
396 mvi->tx[mvi->tx_prod] = cpu_to_le32((TXQ_CMD_SMP << TXQ_CMD_SHIFT) | in mvs_task_prep_smp()
418 dma_unmap_sg(mvi->dev, &tei->task->smp_task.smp_resp, 1, in mvs_task_prep_smp()
421 dma_unmap_sg(mvi->dev, &tei->task->smp_task.smp_req, 1, in mvs_task_prep_smp()
444 static int mvs_task_prep_ata(struct mvs_info *mvi, in mvs_task_prep_ata() argument
462 if (mvs_assign_reg_set(mvi, mvi_dev) == MVS_ID_NOT_MAPPED) { in mvs_task_prep_ata()
467 slot = &mvi->slot_info[tag]; in mvs_task_prep_ata()
468 slot->tx = mvi->tx_prod; in mvs_task_prep_ata()
473 mvi->tx[mvi->tx_prod] = cpu_to_le32(del_q); in mvs_task_prep_ata()
534 if (mvi->flags & MVF_FLAG_SOC) in mvs_task_prep_ata()
564 MVS_CHIP_DISP->dma_fix(mvi, sas_port->phy_mask, in mvs_task_prep_ata()
570 static int mvs_task_prep_ssp(struct mvs_info *mvi, in mvs_task_prep_ssp() argument
591 slot = &mvi->slot_info[tag]; in mvs_task_prep_ssp()
596 slot->tx = mvi->tx_prod; in mvs_task_prep_ssp()
597 mvi->tx[mvi->tx_prod] = cpu_to_le32(TXQ_MODE_I | tag | in mvs_task_prep_ssp()
649 if (mvi->flags & MVF_FLAG_SOC) in mvs_task_prep_ssp()
711 static int mvs_task_prep(struct sas_task *task, struct mvs_info *mvi, int is_tmf, in mvs_task_prep() argument
770 n_elem = dma_map_sg(mvi->dev, in mvs_task_prep()
783 rc = mvs_tag_alloc(mvi, &tag); in mvs_task_prep()
787 slot = &mvi->slot_info[tag]; in mvs_task_prep()
793 slot->buf = dma_pool_alloc(mvi->dma_pool, GFP_ATOMIC, &slot->buf_dma); in mvs_task_prep()
801 tei.hdr = &mvi->slot[tag]; in mvs_task_prep()
806 rc = mvs_task_prep_smp(mvi, &tei); in mvs_task_prep()
809 rc = mvs_task_prep_ssp(mvi, &tei, is_tmf, tmf); in mvs_task_prep()
814 rc = mvs_task_prep_ata(mvi, &tei); in mvs_task_prep()
817 dev_printk(KERN_ERR, mvi->dev, in mvs_task_prep()
838 mvi->tx_prod = (mvi->tx_prod + 1) & (MVS_CHIP_SLOT_SZ - 1); in mvs_task_prep()
843 dma_pool_free(mvi->dma_pool, slot->buf, slot->buf_dma); in mvs_task_prep()
845 mvs_tag_free(mvi, tag); in mvs_task_prep()
848 dev_printk(KERN_ERR, mvi->dev, "mvsas prep failed[%d]!\n", rc); in mvs_task_prep()
851 dma_unmap_sg(mvi->dev, task->scatter, n_elem, in mvs_task_prep()
861 struct mvs_info *mvi = NULL; in mvs_task_exec() local
866 mvi = ((struct mvs_device *)task->dev->lldd_dev)->mvi_info; in mvs_task_exec()
868 spin_lock_irqsave(&mvi->lock, flags); in mvs_task_exec()
869 rc = mvs_task_prep(task, mvi, is_tmf, tmf, &pass); in mvs_task_exec()
871 dev_printk(KERN_ERR, mvi->dev, "mvsas exec failed[%d]!\n", rc); in mvs_task_exec()
874 MVS_CHIP_DISP->start_delivery(mvi, (mvi->tx_prod - 1) & in mvs_task_exec()
876 spin_unlock_irqrestore(&mvi->lock, flags); in mvs_task_exec()
886 static void mvs_slot_free(struct mvs_info *mvi, u32 rx_desc) in mvs_slot_free() argument
889 mvs_tag_clear(mvi, slot_idx); in mvs_slot_free()
892 static void mvs_slot_task_free(struct mvs_info *mvi, struct sas_task *task, in mvs_slot_task_free() argument
901 dma_unmap_sg(mvi->dev, task->scatter, in mvs_slot_task_free()
906 dma_unmap_sg(mvi->dev, &task->smp_task.smp_resp, 1, in mvs_slot_task_free()
908 dma_unmap_sg(mvi->dev, &task->smp_task.smp_req, 1, in mvs_slot_task_free()
921 dma_pool_free(mvi->dma_pool, slot->buf, slot->buf_dma); in mvs_slot_task_free()
929 mvs_slot_free(mvi, slot_idx); in mvs_slot_task_free()
932 static void mvs_update_wideport(struct mvs_info *mvi, int phy_no) in mvs_update_wideport() argument
934 struct mvs_phy *phy = &mvi->phy[phy_no]; in mvs_update_wideport()
940 MVS_CHIP_DISP->write_port_cfg_addr(mvi, no, in mvs_update_wideport()
942 MVS_CHIP_DISP->write_port_cfg_data(mvi, no, in mvs_update_wideport()
945 MVS_CHIP_DISP->write_port_cfg_addr(mvi, no, in mvs_update_wideport()
947 MVS_CHIP_DISP->write_port_cfg_data(mvi, no, in mvs_update_wideport()
953 static u32 mvs_is_phy_ready(struct mvs_info *mvi, int i) in mvs_is_phy_ready() argument
956 struct mvs_phy *phy = &mvi->phy[i]; in mvs_is_phy_ready()
959 tmp = MVS_CHIP_DISP->read_phy_ctl(mvi, i); in mvs_is_phy_ready()
971 mvs_update_wideport(mvi, i); in mvs_is_phy_ready()
981 static void *mvs_get_d2h_reg(struct mvs_info *mvi, int i, void *buf) in mvs_get_d2h_reg() argument
988 MVS_CHIP_DISP->write_port_cfg_addr(mvi, i, PHYR_SATA_SIG3); in mvs_get_d2h_reg()
989 s[3] = cpu_to_le32(MVS_CHIP_DISP->read_port_cfg_data(mvi, i)); in mvs_get_d2h_reg()
991 MVS_CHIP_DISP->write_port_cfg_addr(mvi, i, PHYR_SATA_SIG2); in mvs_get_d2h_reg()
992 s[2] = cpu_to_le32(MVS_CHIP_DISP->read_port_cfg_data(mvi, i)); in mvs_get_d2h_reg()
994 MVS_CHIP_DISP->write_port_cfg_addr(mvi, i, PHYR_SATA_SIG1); in mvs_get_d2h_reg()
995 s[1] = cpu_to_le32(MVS_CHIP_DISP->read_port_cfg_data(mvi, i)); in mvs_get_d2h_reg()
997 MVS_CHIP_DISP->write_port_cfg_addr(mvi, i, PHYR_SATA_SIG0); in mvs_get_d2h_reg()
998 s[0] = cpu_to_le32(MVS_CHIP_DISP->read_port_cfg_data(mvi, i)); in mvs_get_d2h_reg()
1018 void mvs_update_phyinfo(struct mvs_info *mvi, int i, int get_st) in mvs_update_phyinfo() argument
1020 struct mvs_phy *phy = &mvi->phy[i]; in mvs_update_phyinfo()
1026 phy->irq_status = MVS_CHIP_DISP->read_port_irq_stat(mvi, i); in mvs_update_phyinfo()
1027 phy->phy_status = mvs_is_phy_ready(mvi, i); in mvs_update_phyinfo()
1032 struct asd_sas_phy *sas_phy = &mvi->phy[i].sas_phy; in mvs_update_phyinfo()
1034 oob_done = MVS_CHIP_DISP->oob_done(mvi, i); in mvs_update_phyinfo()
1036 MVS_CHIP_DISP->fix_phy_info(mvi, i, id); in mvs_update_phyinfo()
1043 i + mvi->id * mvi->chip->n_phy; in mvs_update_phyinfo()
1048 mvs_get_d2h_reg(mvi, i, id); in mvs_update_phyinfo()
1051 dev_printk(KERN_DEBUG, mvi->dev, in mvs_update_phyinfo()
1053 tmp = MVS_CHIP_DISP->read_port_irq_mask(mvi, i); in mvs_update_phyinfo()
1054 MVS_CHIP_DISP->write_port_irq_mask(mvi, i, in mvs_update_phyinfo()
1081 MVS_CHIP_DISP->phy_work_around(mvi, i); in mvs_update_phyinfo()
1084 i + mvi->id * mvi->chip->n_phy, phy->att_dev_info); in mvs_update_phyinfo()
1086 i + mvi->id * mvi->chip->n_phy, phy->att_dev_sas_addr); in mvs_update_phyinfo()
1089 MVS_CHIP_DISP->write_port_irq_stat(mvi, i, phy->irq_status); in mvs_update_phyinfo()
1095 struct mvs_info *mvi = NULL; int i = 0, hi; in mvs_port_notify_formed() local
1109 mvi = ((struct mvs_prv_info *)sas_ha->lldd_ha)->mvi[hi]; in mvs_port_notify_formed()
1110 if (i >= mvi->chip->n_phy) in mvs_port_notify_formed()
1111 port = &mvi->port[i - mvi->chip->n_phy]; in mvs_port_notify_formed()
1113 port = &mvi->port[i]; in mvs_port_notify_formed()
1115 spin_lock_irqsave(&mvi->lock, flags); in mvs_port_notify_formed()
1122 mvs_update_wideport(mvi, sas_phy->id); in mvs_port_notify_formed()
1126 MVS_CHIP_DISP->write_port_cfg_addr(mvi, i, PHYR_PHY_STAT); in mvs_port_notify_formed()
1127 MVS_CHIP_DISP->write_port_cfg_data(mvi, i, 0x04); in mvs_port_notify_formed()
1131 spin_unlock_irqrestore(&mvi->lock, flags); in mvs_port_notify_formed()
1138 struct mvs_info *mvi = phy->mvi; in mvs_port_notify_deformed() local
1142 while (phy != &mvi->phy[phy_no]) { in mvs_port_notify_deformed()
1148 mvs_do_release_task(phy->mvi, phy_no, dev); in mvs_port_notify_deformed()
1163 static struct mvs_device *mvs_alloc_dev(struct mvs_info *mvi) in mvs_alloc_dev() argument
1167 if (mvi->devices[dev].dev_type == SAS_PHY_UNUSED) { in mvs_alloc_dev()
1168 mvi->devices[dev].device_id = dev; in mvs_alloc_dev()
1169 return &mvi->devices[dev]; in mvs_alloc_dev()
1194 struct mvs_info *mvi = NULL; in mvs_dev_found_notify() local
1198 mvi = mvs_find_dev_mvi(dev); in mvs_dev_found_notify()
1201 spin_lock_irqsave(&mvi->lock, flags); in mvs_dev_found_notify()
1203 mvi_device = mvs_alloc_dev(mvi); in mvs_dev_found_notify()
1211 mvi_device->mvi_info = mvi; in mvs_dev_found_notify()
1237 spin_unlock_irqrestore(&mvi->lock, flags); in mvs_dev_found_notify()
1250 struct mvs_info *mvi; in mvs_dev_gone_notify() local
1257 mvi = mvi_dev->mvi_info; in mvs_dev_gone_notify()
1259 spin_lock_irqsave(&mvi->lock, flags); in mvs_dev_gone_notify()
1263 mvs_release_task(mvi, dev); in mvs_dev_gone_notify()
1264 mvs_free_reg_set(mvi, mvi_dev); in mvs_dev_gone_notify()
1270 spin_unlock_irqrestore(&mvi->lock, flags); in mvs_dev_gone_notify()
1406 struct mvs_info *mvi = mvi_dev->mvi_info; in mvs_lu_reset() local
1412 spin_lock_irqsave(&mvi->lock, flags); in mvs_lu_reset()
1413 mvs_release_task(mvi, dev); in mvs_lu_reset()
1414 spin_unlock_irqrestore(&mvi->lock, flags); in mvs_lu_reset()
1427 struct mvs_info *mvi = mvi_dev->mvi_info; in mvs_I_T_nexus_reset() local
1437 spin_lock_irqsave(&mvi->lock, flags); in mvs_I_T_nexus_reset()
1438 mvs_release_task(mvi, dev); in mvs_I_T_nexus_reset()
1439 spin_unlock_irqrestore(&mvi->lock, flags); in mvs_I_T_nexus_reset()
1455 struct mvs_info *mvi = mvi_dev->mvi_info; in mvs_query_task() local
1458 rc = mvs_find_tag(mvi, task, &tag); in mvs_query_task()
1488 struct mvs_info *mvi; in mvs_abort_task() local
1498 mvi = mvi_dev->mvi_info; in mvs_abort_task()
1512 rc = mvs_find_tag(mvi, task, &tag); in mvs_abort_task()
1531 slot_no = (u32) (slot - mvi->slot_info); in mvs_abort_task()
1532 spin_lock_irqsave(&mvi->lock, flags); in mvs_abort_task()
1533 mvs_slot_complete(mvi, slot_no, 1); in mvs_abort_task()
1534 spin_unlock_irqrestore(&mvi->lock, flags); in mvs_abort_task()
1542 u32 slot_idx = (u32)(slot - mvi->slot_info); in mvs_abort_task()
1545 mvi, task, slot, slot_idx); in mvs_abort_task()
1547 mvs_slot_task_free(mvi, task, slot, slot_idx); in mvs_abort_task()
1592 static int mvs_sata_done(struct mvs_info *mvi, struct sas_task *task, in mvs_sata_done() argument
1666 static int mvs_slot_err(struct mvs_info *mvi, struct sas_task *task, in mvs_slot_err() argument
1669 struct mvs_slot_info *slot = &mvi->slot_info[slot_idx]; in mvs_slot_err()
1677 MVS_CHIP_DISP->issue_stop(mvi, type, tfs); in mvs_slot_err()
1679 MVS_CHIP_DISP->command_active(mvi, slot_idx); in mvs_slot_err()
1690 sas_ssp_task_response(mvi->dev, task, iu); in mvs_slot_err()
1707 mvs_sata_done(mvi, task, slot_idx, err_dw0); in mvs_slot_err()
1717 int mvs_slot_complete(struct mvs_info *mvi, u32 rx_desc, u32 flags) in mvs_slot_complete() argument
1720 struct mvs_slot_info *slot = &mvi->slot_info[slot_idx]; in mvs_slot_complete()
1753 mvs_free_reg_set(mvi, mvi_dev); in mvs_slot_complete()
1755 mvs_slot_task_free(mvi, task, slot, slot_idx); in mvs_slot_complete()
1777 tstat->stat = mvs_slot_err(mvi, task, slot_idx); in mvs_slot_complete()
1793 sas_ssp_task_response(mvi->dev, task, iu); in mvs_slot_complete()
1812 tstat->stat = mvs_sata_done(mvi, task, slot_idx, 0); in mvs_slot_complete()
1830 mvs_free_reg_set(mvi, mvi_dev); in mvs_slot_complete()
1832 mvs_slot_task_free(mvi, task, slot, slot_idx); in mvs_slot_complete()
1835 spin_unlock(&mvi->lock); in mvs_slot_complete()
1839 spin_lock(&mvi->lock); in mvs_slot_complete()
1844 void mvs_do_release_task(struct mvs_info *mvi, in mvs_do_release_task() argument
1852 phy = &mvi->phy[phy_no]; in mvs_do_release_task()
1857 mvs_int_rx(mvi, false); in mvs_do_release_task()
1863 slot_idx = (u32) (slot - mvi->slot_info); in mvs_do_release_task()
1871 MVS_CHIP_DISP->command_active(mvi, slot_idx); in mvs_do_release_task()
1873 mvs_slot_complete(mvi, slot_idx, 1); in mvs_do_release_task()
1877 void mvs_release_task(struct mvs_info *mvi, in mvs_release_task() argument
1883 mvs_do_release_task(mvi, phyno[i], dev); in mvs_release_task()
1897 struct mvs_info *mvi = mwq->mvi; in mvs_work_queue() local
1900 struct sas_ha_struct *sas_ha = mvi->sas; in mvs_work_queue()
1901 struct mvs_phy *phy = &mvi->phy[phy_no]; in mvs_work_queue()
1904 spin_lock_irqsave(&mvi->lock, flags); in mvs_work_queue()
1911 tmp = MVS_CHIP_DISP->read_phy_ctl(mvi, phy_no); in mvs_work_queue()
1920 MVS_CHIP_DISP->detect_porttype(mvi, phy_no); in mvs_work_queue()
1921 mvs_update_phyinfo(mvi, phy_no, 1); in mvs_work_queue()
1922 mvs_bytes_dmaed(mvi, phy_no); in mvs_work_queue()
1934 spin_unlock_irqrestore(&mvi->lock, flags); in mvs_work_queue()
1938 static int mvs_handle_event(struct mvs_info *mvi, void *data, int handler) in mvs_handle_event() argument
1945 mwq->mvi = mvi; in mvs_handle_event()
1949 list_add_tail(&mwq->entry, &mvi->wq_list); in mvs_handle_event()
1960 struct mvs_info *mvi = phy->mvi; in mvs_sig_time_out() local
1963 for (phy_no = 0; phy_no < mvi->chip->n_phy; phy_no++) { in mvs_sig_time_out()
1964 if (&mvi->phy[phy_no] == phy) { in mvs_sig_time_out()
1966 phy_no+mvi->id*mvi->chip->n_phy); in mvs_sig_time_out()
1967 MVS_CHIP_DISP->phy_reset(mvi, phy_no, MVS_HARD_RESET); in mvs_sig_time_out()
1972 void mvs_int_port(struct mvs_info *mvi, int phy_no, u32 events) in mvs_int_port() argument
1975 struct mvs_phy *phy = &mvi->phy[phy_no]; in mvs_int_port()
1977 phy->irq_status = MVS_CHIP_DISP->read_port_irq_stat(mvi, phy_no); in mvs_int_port()
1978 MVS_CHIP_DISP->write_port_irq_stat(mvi, phy_no, phy->irq_status); in mvs_int_port()
1979 mv_dprintk("phy %d ctrl sts=0x%08X.\n", phy_no+mvi->id*mvi->chip->n_phy, in mvs_int_port()
1980 MVS_CHIP_DISP->read_phy_ctl(mvi, phy_no)); in mvs_int_port()
1981 mv_dprintk("phy %d irq sts = 0x%08X\n", phy_no+mvi->id*mvi->chip->n_phy, in mvs_int_port()
1991 phy_no + mvi->id*mvi->chip->n_phy); in mvs_int_port()
1999 mvs_do_release_task(mvi, phy_no, NULL); in mvs_int_port()
2001 MVS_CHIP_DISP->clear_srs_irq(mvi, 0, 1); in mvs_int_port()
2002 mvs_handle_event(mvi, in mvs_int_port()
2005 ready = mvs_is_phy_ready(mvi, phy_no); in mvs_int_port()
2008 MVS_CHIP_DISP->stp_reset(mvi, in mvs_int_port()
2011 MVS_CHIP_DISP->phy_reset(mvi, in mvs_int_port()
2019 tmp = MVS_CHIP_DISP->read_port_irq_mask(mvi, phy_no); in mvs_int_port()
2020 MVS_CHIP_DISP->write_port_irq_mask(mvi, phy_no, in mvs_int_port()
2029 phy->phy_status = mvs_is_phy_ready(mvi, phy_no); in mvs_int_port()
2033 MVS_CHIP_DISP->detect_porttype(mvi, phy_no); in mvs_int_port()
2036 mvi, phy_no); in mvs_int_port()
2038 MVS_CHIP_DISP->write_port_irq_mask(mvi, in mvs_int_port()
2041 mvs_update_phyinfo(mvi, phy_no, 0); in mvs_int_port()
2043 MVS_CHIP_DISP->phy_reset(mvi, phy_no, MVS_PHY_TUNE); in mvs_int_port()
2047 mvs_bytes_dmaed(mvi, phy_no); in mvs_int_port()
2055 phy_no + mvi->id*mvi->chip->n_phy); in mvs_int_port()
2059 phy_no + mvi->id*mvi->chip->n_phy); in mvs_int_port()
2060 mvs_handle_event(mvi, (void *)(unsigned long)phy_no, in mvs_int_port()
2065 int mvs_int_rx(struct mvs_info *mvi, bool self_clear) in mvs_int_rx() argument
2075 rx_prod_idx = mvi->rx_cons; in mvs_int_rx()
2076 mvi->rx_cons = le32_to_cpu(mvi->rx[0]); in mvs_int_rx()
2077 if (mvi->rx_cons == 0xfff) /* h/w hasn't touched RX ring yet */ in mvs_int_rx()
2084 if (unlikely(mvi->rx_cons == rx_prod_idx)) in mvs_int_rx()
2085 mvi->rx_cons = MVS_CHIP_DISP->rx_update(mvi) & RX_RING_SZ_MASK; in mvs_int_rx()
2087 if (mvi->rx_cons == rx_prod_idx) in mvs_int_rx()
2090 while (mvi->rx_cons != rx_prod_idx) { in mvs_int_rx()
2093 rx_desc = le32_to_cpu(mvi->rx[rx_prod_idx + 1]); in mvs_int_rx()
2096 mvs_slot_complete(mvi, rx_desc, 0); in mvs_int_rx()
2101 mvs_slot_complete(mvi, rx_desc, 0); in mvs_int_rx()
2103 mvs_slot_free(mvi, rx_desc); in mvs_int_rx()
2108 MVS_CHIP_DISP->int_full(mvi); in mvs_int_rx()
2116 struct mvs_info *mvi = mvs_prv->mvi[0]; in mvs_gpio_write() local