mvi 14 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_detect_porttype(struct mvs_info *mvi, int i) mvi 16 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 18 drivers/scsi/mvsas/mv_64xx.c struct mvs_phy *phy = &mvi->phy[i]; mvi 28 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_enable_xmt(struct mvs_info *mvi, int phy_id) mvi 30 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 34 drivers/scsi/mvsas/mv_64xx.c if (mvi->chip->n_phy <= MVS_SOC_PORTS) mvi 41 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_phy_hacks(struct mvs_info *mvi) mvi 43 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 46 drivers/scsi/mvsas/mv_64xx.c mvs_phy_hacks(mvi); mvi 48 drivers/scsi/mvsas/mv_64xx.c if (!(mvi->flags & MVF_FLAG_SOC)) { mvi 50 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_vsr_addr(mvi, i, VSR_PHY_MODE8); mvi 51 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_vsr_data(mvi, i, 0x2F0); mvi 56 drivers/scsi/mvsas/mv_64xx.c for (i = 0; i < mvi->chip->n_phy; i++) { mvi 57 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_vsr_addr(mvi, i, VSR_PHY_MODE7); mvi 58 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_vsr_data(mvi, i, 0x90000000); mvi 59 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_vsr_addr(mvi, i, VSR_PHY_MODE9); mvi 60 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_vsr_data(mvi, i, 0x50f2); mvi 61 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_vsr_addr(mvi, i, VSR_PHY_MODE11); mvi 62 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_vsr_data(mvi, i, 0x0e); mvi 67 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_stp_reset(struct mvs_info *mvi, u32 phy_id) mvi 69 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 72 drivers/scsi/mvsas/mv_64xx.c if (!(mvi->flags & MVF_FLAG_SOC)) { mvi 74 drivers/scsi/mvsas/mv_64xx.c pci_read_config_dword(mvi->pdev, PCR_PHY_CTL, ®); mvi 76 drivers/scsi/mvsas/mv_64xx.c pci_read_config_dword(mvi->pdev, PCR_PHY_CTL2, ®); mvi 87 drivers/scsi/mvsas/mv_64xx.c if (!(mvi->flags & MVF_FLAG_SOC)) { mvi 89 drivers/scsi/mvsas/mv_64xx.c pci_write_config_dword(mvi->pdev, PCR_PHY_CTL, tmp); mvi 91 drivers/scsi/mvsas/mv_64xx.c pci_write_config_dword(mvi->pdev, PCR_PHY_CTL, reg); mvi 93 drivers/scsi/mvsas/mv_64xx.c pci_write_config_dword(mvi->pdev, PCR_PHY_CTL2, tmp); mvi 95 drivers/scsi/mvsas/mv_64xx.c pci_write_config_dword(mvi->pdev, PCR_PHY_CTL2, reg); mvi 104 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_phy_reset(struct mvs_info *mvi, u32 phy_id, int hard) mvi 107 drivers/scsi/mvsas/mv_64xx.c tmp = mvs_read_port_irq_stat(mvi, phy_id); mvi 109 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_irq_stat(mvi, phy_id, tmp); mvi 110 drivers/scsi/mvsas/mv_64xx.c tmp = mvs_read_phy_ctl(mvi, phy_id); mvi 115 drivers/scsi/mvsas/mv_64xx.c mvs_write_phy_ctl(mvi, phy_id, tmp); mvi 118 drivers/scsi/mvsas/mv_64xx.c tmp = mvs_read_phy_ctl(mvi, phy_id); mvi 124 drivers/scsi/mvsas/mv_64xx.c mvs_64xx_clear_srs_irq(struct mvs_info *mvi, u8 reg_set, u8 clear_all) mvi 126 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 144 drivers/scsi/mvsas/mv_64xx.c static int mvs_64xx_chip_reset(struct mvs_info *mvi) mvi 146 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 156 drivers/scsi/mvsas/mv_64xx.c if (mvi->flags & MVF_PHY_PWR_FIX) { mvi 157 drivers/scsi/mvsas/mv_64xx.c pci_read_config_dword(mvi->pdev, PCR_PHY_CTL, &tmp); mvi 160 drivers/scsi/mvsas/mv_64xx.c pci_write_config_dword(mvi->pdev, PCR_PHY_CTL, tmp); mvi 162 drivers/scsi/mvsas/mv_64xx.c pci_read_config_dword(mvi->pdev, PCR_PHY_CTL2, &tmp); mvi 165 drivers/scsi/mvsas/mv_64xx.c pci_write_config_dword(mvi->pdev, PCR_PHY_CTL2, tmp); mvi 188 drivers/scsi/mvsas/mv_64xx.c dev_printk(KERN_ERR, mvi->dev, "HBA reset failed\n"); mvi 194 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_phy_disable(struct mvs_info *mvi, u32 phy_id) mvi 196 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 198 drivers/scsi/mvsas/mv_64xx.c if (!(mvi->flags & MVF_FLAG_SOC)) { mvi 206 drivers/scsi/mvsas/mv_64xx.c pci_read_config_dword(mvi->pdev, offs, &tmp); mvi 208 drivers/scsi/mvsas/mv_64xx.c pci_write_config_dword(mvi->pdev, offs, tmp); mvi 216 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_phy_enable(struct mvs_info *mvi, u32 phy_id) mvi 218 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 220 drivers/scsi/mvsas/mv_64xx.c if (!(mvi->flags & MVF_FLAG_SOC)) { mvi 228 drivers/scsi/mvsas/mv_64xx.c pci_read_config_dword(mvi->pdev, offs, &tmp); mvi 230 drivers/scsi/mvsas/mv_64xx.c pci_write_config_dword(mvi->pdev, offs, tmp); mvi 238 drivers/scsi/mvsas/mv_64xx.c static int mvs_64xx_init(struct mvs_info *mvi) mvi 240 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 244 drivers/scsi/mvsas/mv_64xx.c if (mvi->pdev && mvi->pdev->revision == 0) mvi 245 drivers/scsi/mvsas/mv_64xx.c mvi->flags |= MVF_PHY_PWR_FIX; mvi 246 drivers/scsi/mvsas/mv_64xx.c if (!(mvi->flags & MVF_FLAG_SOC)) { mvi 247 drivers/scsi/mvsas/mv_64xx.c mvs_show_pcie_usage(mvi); mvi 248 drivers/scsi/mvsas/mv_64xx.c tmp = mvs_64xx_chip_reset(mvi); mvi 266 drivers/scsi/mvsas/mv_64xx.c if (!(mvi->flags & MVF_FLAG_SOC)) { mvi 268 drivers/scsi/mvsas/mv_64xx.c pci_read_config_dword(mvi->pdev, PCR_DEV_CTRL, &tmp); mvi 271 drivers/scsi/mvsas/mv_64xx.c pci_write_config_dword(mvi->pdev, PCR_DEV_CTRL, tmp); mvi 273 drivers/scsi/mvsas/mv_64xx.c pci_read_config_dword(mvi->pdev, PCR_PHY_CTL, &tmp); mvi 276 drivers/scsi/mvsas/mv_64xx.c pci_write_config_dword(mvi->pdev, PCR_PHY_CTL, tmp); mvi 278 drivers/scsi/mvsas/mv_64xx.c pci_read_config_dword(mvi->pdev, PCR_PHY_CTL2, &tmp); mvi 281 drivers/scsi/mvsas/mv_64xx.c pci_write_config_dword(mvi->pdev, PCR_PHY_CTL2, tmp); mvi 298 drivers/scsi/mvsas/mv_64xx.c mvs_64xx_phy_hacks(mvi); mvi 300 drivers/scsi/mvsas/mv_64xx.c tmp = mvs_cr32(mvi, CMD_PHY_MODE_21); mvi 303 drivers/scsi/mvsas/mv_64xx.c mvs_cw32(mvi, CMD_PHY_MODE_21, tmp); mvi 308 drivers/scsi/mvsas/mv_64xx.c mw32(MVS_CMD_LIST_LO, mvi->slot_dma); mvi 309 drivers/scsi/mvsas/mv_64xx.c mw32(MVS_CMD_LIST_HI, (mvi->slot_dma >> 16) >> 16); mvi 311 drivers/scsi/mvsas/mv_64xx.c mw32(MVS_RX_FIS_LO, mvi->rx_fis_dma); mvi 312 drivers/scsi/mvsas/mv_64xx.c mw32(MVS_RX_FIS_HI, (mvi->rx_fis_dma >> 16) >> 16); mvi 315 drivers/scsi/mvsas/mv_64xx.c mw32(MVS_TX_LO, mvi->tx_dma); mvi 316 drivers/scsi/mvsas/mv_64xx.c mw32(MVS_TX_HI, (mvi->tx_dma >> 16) >> 16); mvi 319 drivers/scsi/mvsas/mv_64xx.c mw32(MVS_RX_LO, mvi->rx_dma); mvi 320 drivers/scsi/mvsas/mv_64xx.c mw32(MVS_RX_HI, (mvi->rx_dma >> 16) >> 16); mvi 322 drivers/scsi/mvsas/mv_64xx.c for (i = 0; i < mvi->chip->n_phy; i++) { mvi 325 drivers/scsi/mvsas/mv_64xx.c mvs_set_sas_addr(mvi, i, PHYR_ADDR_LO, PHYR_ADDR_HI, mvi 326 drivers/scsi/mvsas/mv_64xx.c cpu_to_be64(mvi->phy[i].dev_sas_addr)); mvi 328 drivers/scsi/mvsas/mv_64xx.c mvs_64xx_enable_xmt(mvi, i); mvi 330 drivers/scsi/mvsas/mv_64xx.c mvs_64xx_phy_reset(mvi, i, MVS_HARD_RESET); mvi 332 drivers/scsi/mvsas/mv_64xx.c mvs_64xx_detect_porttype(mvi, i); mvi 334 drivers/scsi/mvsas/mv_64xx.c if (mvi->flags & MVF_FLAG_SOC) { mvi 345 drivers/scsi/mvsas/mv_64xx.c for (i = 0; i < mvi->chip->n_phy; i++) { mvi 347 drivers/scsi/mvsas/mv_64xx.c tmp = mvs_read_port_irq_stat(mvi, i); mvi 349 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_irq_stat(mvi, i, tmp); mvi 355 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_irq_mask(mvi, i, tmp); mvi 358 drivers/scsi/mvsas/mv_64xx.c mvs_update_phyinfo(mvi, i, 1); mvi 407 drivers/scsi/mvsas/mv_64xx.c static int mvs_64xx_ioremap(struct mvs_info *mvi) mvi 409 drivers/scsi/mvsas/mv_64xx.c if (!mvs_ioremap(mvi, 4, 2)) mvi 414 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_iounmap(struct mvs_info *mvi) mvi 416 drivers/scsi/mvsas/mv_64xx.c mvs_iounmap(mvi->regs); mvi 417 drivers/scsi/mvsas/mv_64xx.c mvs_iounmap(mvi->regs_ex); mvi 420 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_interrupt_enable(struct mvs_info *mvi) mvi 422 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 429 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_interrupt_disable(struct mvs_info *mvi) mvi 431 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 438 drivers/scsi/mvsas/mv_64xx.c static u32 mvs_64xx_isr_status(struct mvs_info *mvi, int irq) mvi 440 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 443 drivers/scsi/mvsas/mv_64xx.c if (!(mvi->flags & MVF_FLAG_SOC)) { mvi 453 drivers/scsi/mvsas/mv_64xx.c static irqreturn_t mvs_64xx_isr(struct mvs_info *mvi, int irq, u32 stat) mvi 455 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 460 drivers/scsi/mvsas/mv_64xx.c spin_lock(&mvi->lock); mvi 461 drivers/scsi/mvsas/mv_64xx.c mvs_int_full(mvi); mvi 462 drivers/scsi/mvsas/mv_64xx.c spin_unlock(&mvi->lock); mvi 467 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_command_active(struct mvs_info *mvi, u32 slot_idx) mvi 470 drivers/scsi/mvsas/mv_64xx.c mvs_cw32(mvi, 0x40 + (slot_idx >> 3), 1 << (slot_idx % 32)); mvi 471 drivers/scsi/mvsas/mv_64xx.c mvs_cw32(mvi, 0x00 + (slot_idx >> 3), 1 << (slot_idx % 32)); mvi 473 drivers/scsi/mvsas/mv_64xx.c tmp = mvs_cr32(mvi, 0x00 + (slot_idx >> 3)); mvi 476 drivers/scsi/mvsas/mv_64xx.c tmp = mvs_cr32(mvi, 0x40 + (slot_idx >> 3)); mvi 480 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_issue_stop(struct mvs_info *mvi, enum mvs_port_type type, mvi 483 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 495 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_free_reg_set(struct mvs_info *mvi, u8 *tfs) mvi 497 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 520 drivers/scsi/mvsas/mv_64xx.c static u8 mvs_64xx_assign_reg_set(struct mvs_info *mvi, u8 *tfs) mvi 524 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 531 drivers/scsi/mvsas/mv_64xx.c for (i = 0; i < mvi->chip->srs_sz; i++) { mvi 563 drivers/scsi/mvsas/mv_64xx.c static int mvs_64xx_oob_done(struct mvs_info *mvi, int i) mvi 566 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_cfg_addr(mvi, i, mvi 568 drivers/scsi/mvsas/mv_64xx.c phy_st = mvs_read_port_cfg_data(mvi, i); mvi 574 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_fix_phy_info(struct mvs_info *mvi, int i, mvi 578 drivers/scsi/mvsas/mv_64xx.c struct mvs_phy *phy = &mvi->phy[i]; mvi 592 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_cfg_addr(mvi, i, PHYR_IDENTIFY); mvi 593 drivers/scsi/mvsas/mv_64xx.c phy->dev_info = mvs_read_port_cfg_data(mvi, i); mvi 595 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_cfg_addr(mvi, i, PHYR_ATT_DEV_INFO); mvi 596 drivers/scsi/mvsas/mv_64xx.c phy->att_dev_info = mvs_read_port_cfg_data(mvi, i); mvi 598 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_cfg_addr(mvi, i, PHYR_ATT_ADDR_HI); mvi 600 drivers/scsi/mvsas/mv_64xx.c (u64) mvs_read_port_cfg_data(mvi, i) << 32; mvi 601 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_cfg_addr(mvi, i, PHYR_ATT_ADDR_LO); mvi 602 drivers/scsi/mvsas/mv_64xx.c phy->att_dev_sas_addr |= mvs_read_port_cfg_data(mvi, i); mvi 606 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_phy_work_around(struct mvs_info *mvi, int i) mvi 609 drivers/scsi/mvsas/mv_64xx.c struct mvs_phy *phy = &mvi->phy[i]; mvi 610 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_vsr_addr(mvi, i, VSR_PHY_MODE6); mvi 611 drivers/scsi/mvsas/mv_64xx.c tmp = mvs_read_port_vsr_data(mvi, i); mvi 618 drivers/scsi/mvsas/mv_64xx.c mvs_write_port_vsr_data(mvi, i, tmp); mvi 621 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_phy_set_link_rate(struct mvs_info *mvi, u32 phy_id, mvi 627 drivers/scsi/mvsas/mv_64xx.c tmp = mvs_read_phy_ctl(mvi, phy_id); mvi 639 drivers/scsi/mvsas/mv_64xx.c mvs_write_phy_ctl(mvi, phy_id, tmp); mvi 640 drivers/scsi/mvsas/mv_64xx.c mvs_64xx_phy_reset(mvi, phy_id, MVS_HARD_RESET); mvi 643 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_clear_active_cmds(struct mvs_info *mvi) mvi 646 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 656 drivers/scsi/mvsas/mv_64xx.c static u32 mvs_64xx_spi_read_data(struct mvs_info *mvi) mvi 658 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs_ex; mvi 662 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_spi_write_data(struct mvs_info *mvi, u32 data) mvi 664 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs_ex; mvi 670 drivers/scsi/mvsas/mv_64xx.c static int mvs_64xx_spi_buildcmd(struct mvs_info *mvi, mvi 694 drivers/scsi/mvsas/mv_64xx.c static int mvs_64xx_spi_issuecmd(struct mvs_info *mvi, u32 cmd) mvi 696 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs_ex; mvi 709 drivers/scsi/mvsas/mv_64xx.c static int mvs_64xx_spi_waitdataready(struct mvs_info *mvi, u32 timeout) mvi 711 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs_ex; mvi 724 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_fix_dma(struct mvs_info *mvi, u32 phy_mask, mvi 729 drivers/scsi/mvsas/mv_64xx.c dma_addr_t buf_dma = mvi->bulk_buffer_dma; mvi 739 drivers/scsi/mvsas/mv_64xx.c static void mvs_64xx_tune_interrupt(struct mvs_info *mvi, u32 time) mvi 741 drivers/scsi/mvsas/mv_64xx.c void __iomem *regs = mvi->regs; mvi 14 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_detect_porttype(struct mvs_info *mvi, int i) mvi 17 drivers/scsi/mvsas/mv_94xx.c struct mvs_phy *phy = &mvi->phy[i]; mvi 20 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_addr(mvi, i, VSR_PHY_MODE3); mvi 21 drivers/scsi/mvsas/mv_94xx.c reg = mvs_read_port_vsr_data(mvi, i); mvi 35 drivers/scsi/mvsas/mv_94xx.c static void set_phy_tuning(struct mvs_info *mvi, int phy_id, mvi 54 drivers/scsi/mvsas/mv_94xx.c if (mvi->pdev->revision == VANIR_A0_REV) mvi 80 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_addr(mvi, phy_id, setting_0); mvi 81 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_read_port_vsr_data(mvi, phy_id); mvi 86 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_data(mvi, phy_id, tmp); mvi 89 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_addr(mvi, phy_id, setting_1); mvi 90 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_read_port_vsr_data(mvi, phy_id); mvi 93 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_data(mvi, phy_id, tmp); mvi 97 drivers/scsi/mvsas/mv_94xx.c static void set_phy_ffe_tuning(struct mvs_info *mvi, int phy_id, mvi 103 drivers/scsi/mvsas/mv_94xx.c if ((mvi->pdev->revision == VANIR_A0_REV) mvi 104 drivers/scsi/mvsas/mv_94xx.c || (mvi->pdev->revision == VANIR_B0_REV)) mvi 114 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_addr(mvi, phy_id, VSR_PHY_FFE_CONTROL); mvi 115 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_read_port_vsr_data(mvi, phy_id); mvi 123 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_data(mvi, phy_id, tmp); mvi 129 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_addr(mvi, phy_id, VSR_REF_CLOCK_CRTL); mvi 130 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_read_port_vsr_data(mvi, phy_id); mvi 135 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_data(mvi, phy_id, tmp); mvi 142 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_addr(mvi, phy_id, VSR_PHY_DFE_UPDATE_CRTL); mvi 143 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_read_port_vsr_data(mvi, phy_id); mvi 148 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_data(mvi, phy_id, tmp); mvi 154 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_addr(mvi, phy_id, VSR_REF_CLOCK_CRTL); mvi 155 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_read_port_vsr_data(mvi, phy_id); mvi 160 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_data(mvi, phy_id, tmp); mvi 164 drivers/scsi/mvsas/mv_94xx.c static void set_phy_rate(struct mvs_info *mvi, int phy_id, u8 rate) mvi 167 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_addr(mvi, phy_id, VSR_PHY_MODE2); mvi 168 drivers/scsi/mvsas/mv_94xx.c phy_cfg_tmp.v = mvs_read_port_vsr_data(mvi, phy_id); mvi 200 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_data(mvi, phy_id, phy_cfg.v); mvi 203 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_config_reg_from_hba(struct mvs_info *mvi, int phy_id) mvi 206 drivers/scsi/mvsas/mv_94xx.c temp = (u32)(*(u32 *)&mvi->hba_info_param.phy_tuning[phy_id]); mvi 208 drivers/scsi/mvsas/mv_94xx.c mvi->hba_info_param.phy_tuning[phy_id].trans_emp_amp = 0x6; mvi 209 drivers/scsi/mvsas/mv_94xx.c mvi->hba_info_param.phy_tuning[phy_id].trans_amp = 0x1A; mvi 210 drivers/scsi/mvsas/mv_94xx.c mvi->hba_info_param.phy_tuning[phy_id].trans_amp_adj = 0x3; mvi 213 drivers/scsi/mvsas/mv_94xx.c temp = (u8)(*(u8 *)&mvi->hba_info_param.ffe_ctl[phy_id]); mvi 215 drivers/scsi/mvsas/mv_94xx.c switch (mvi->pdev->revision) { mvi 218 drivers/scsi/mvsas/mv_94xx.c mvi->hba_info_param.ffe_ctl[phy_id].ffe_rss_sel = 0x7; mvi 219 drivers/scsi/mvsas/mv_94xx.c mvi->hba_info_param.ffe_ctl[phy_id].ffe_cap_sel = 0x7; mvi 225 drivers/scsi/mvsas/mv_94xx.c mvi->hba_info_param.ffe_ctl[phy_id].ffe_rss_sel = 0x7; mvi 226 drivers/scsi/mvsas/mv_94xx.c mvi->hba_info_param.ffe_ctl[phy_id].ffe_cap_sel = 0xC; mvi 231 drivers/scsi/mvsas/mv_94xx.c temp = (u8)(*(u8 *)&mvi->hba_info_param.phy_rate[phy_id]); mvi 234 drivers/scsi/mvsas/mv_94xx.c mvi->hba_info_param.phy_rate[phy_id] = 0x2; mvi 236 drivers/scsi/mvsas/mv_94xx.c set_phy_tuning(mvi, phy_id, mvi 237 drivers/scsi/mvsas/mv_94xx.c mvi->hba_info_param.phy_tuning[phy_id]); mvi 238 drivers/scsi/mvsas/mv_94xx.c set_phy_ffe_tuning(mvi, phy_id, mvi 239 drivers/scsi/mvsas/mv_94xx.c mvi->hba_info_param.ffe_ctl[phy_id]); mvi 240 drivers/scsi/mvsas/mv_94xx.c set_phy_rate(mvi, phy_id, mvi 241 drivers/scsi/mvsas/mv_94xx.c mvi->hba_info_param.phy_rate[phy_id]); mvi 244 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_enable_xmt(struct mvs_info *mvi, int phy_id) mvi 246 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs; mvi 254 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_phy_reset(struct mvs_info *mvi, u32 phy_id, int hard) mvi 259 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_cfg_addr(mvi, phy_id, PHYR_SATA_CTL); mvi 260 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_read_port_cfg_data(mvi, phy_id); mvi 261 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_cfg_data(mvi, phy_id, tmp|0x20000000); mvi 262 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_cfg_data(mvi, phy_id, tmp|0x100000); mvi 265 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_read_port_irq_stat(mvi, phy_id); mvi 267 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_irq_stat(mvi, phy_id, tmp); mvi 269 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_read_phy_ctl(mvi, phy_id); mvi 271 drivers/scsi/mvsas/mv_94xx.c mvs_write_phy_ctl(mvi, phy_id, tmp); mvi 273 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_read_phy_ctl(mvi, phy_id); mvi 280 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_read_phy_ctl(mvi, phy_id); mvi 282 drivers/scsi/mvsas/mv_94xx.c mvs_write_phy_ctl(mvi, phy_id, tmp); mvi 286 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_phy_disable(struct mvs_info *mvi, u32 phy_id) mvi 289 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_addr(mvi, phy_id, VSR_PHY_MODE2); mvi 290 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_read_port_vsr_data(mvi, phy_id); mvi 291 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_data(mvi, phy_id, tmp | 0x00800000); mvi 294 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_phy_enable(struct mvs_info *mvi, u32 phy_id) mvi 299 drivers/scsi/mvsas/mv_94xx.c revision = mvi->pdev->revision; mvi 301 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_addr(mvi, phy_id, CMD_HOST_RD_DATA); mvi 302 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_data(mvi, phy_id, 0x8300ffc1); mvi 305 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_addr(mvi, phy_id, CMD_APP_MEM_CTL); mvi 306 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_data(mvi, phy_id, 0x08001006); mvi 307 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_addr(mvi, phy_id, CMD_HOST_RD_DATA); mvi 308 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_data(mvi, phy_id, 0x0000705f); mvi 311 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_addr(mvi, phy_id, VSR_PHY_MODE2); mvi 312 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_read_port_vsr_data(mvi, phy_id); mvi 314 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_vsr_data(mvi, phy_id, tmp & 0xfd7fffff); mvi 317 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_sgpio_init(struct mvs_info *mvi) mvi 319 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs_ex - 0x10200; mvi 326 drivers/scsi/mvsas/mv_94xx.c mw32(MVS_SGPIO_CTRL + MVS_SGPIO_HOST_OFFSET * mvi->id, mvi 329 drivers/scsi/mvsas/mv_94xx.c mw32(MVS_SGPIO_CFG1 + MVS_SGPIO_HOST_OFFSET * mvi->id, mvi 338 drivers/scsi/mvsas/mv_94xx.c mw32(MVS_SGPIO_CFG2 + MVS_SGPIO_HOST_OFFSET * mvi->id, mvi 343 drivers/scsi/mvsas/mv_94xx.c mw32(MVS_SGPIO_CFG0 + MVS_SGPIO_HOST_OFFSET * mvi->id, mvi 351 drivers/scsi/mvsas/mv_94xx.c mw32(MVS_SGPIO_DCTRL + MVS_SGPIO_HOST_OFFSET * mvi->id, mvi 354 drivers/scsi/mvsas/mv_94xx.c mw32(MVS_SGPIO_DSRC + MVS_SGPIO_HOST_OFFSET * mvi->id, mvi 355 drivers/scsi/mvsas/mv_94xx.c ((mvi->id * 4) + 3) << (8 * 3) | mvi 356 drivers/scsi/mvsas/mv_94xx.c ((mvi->id * 4) + 2) << (8 * 2) | mvi 357 drivers/scsi/mvsas/mv_94xx.c ((mvi->id * 4) + 1) << (8 * 1) | mvi 358 drivers/scsi/mvsas/mv_94xx.c ((mvi->id * 4) + 0) << (8 * 0)); mvi 362 drivers/scsi/mvsas/mv_94xx.c static int mvs_94xx_init(struct mvs_info *mvi) mvi 364 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs; mvi 369 drivers/scsi/mvsas/mv_94xx.c revision = mvi->pdev->revision; mvi 370 drivers/scsi/mvsas/mv_94xx.c mvs_show_pcie_usage(mvi); mvi 371 drivers/scsi/mvsas/mv_94xx.c if (mvi->flags & MVF_FLAG_SOC) { mvi 386 drivers/scsi/mvsas/mv_94xx.c if (mvi->flags & MVF_FLAG_SOC) { mvi 427 drivers/scsi/mvsas/mv_94xx.c mvs_phy_hacks(mvi); mvi 430 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_cr32(mvi, CMD_SAS_CTL1); mvi 436 drivers/scsi/mvsas/mv_94xx.c mvs_cw32(mvi, CMD_SAS_CTL1, tmp); mvi 446 drivers/scsi/mvsas/mv_94xx.c mw32(MVS_CMD_LIST_LO, mvi->slot_dma); mvi 447 drivers/scsi/mvsas/mv_94xx.c mw32(MVS_CMD_LIST_HI, (mvi->slot_dma >> 16) >> 16); mvi 449 drivers/scsi/mvsas/mv_94xx.c mw32(MVS_RX_FIS_LO, mvi->rx_fis_dma); mvi 450 drivers/scsi/mvsas/mv_94xx.c mw32(MVS_RX_FIS_HI, (mvi->rx_fis_dma >> 16) >> 16); mvi 453 drivers/scsi/mvsas/mv_94xx.c mw32(MVS_TX_LO, mvi->tx_dma); mvi 454 drivers/scsi/mvsas/mv_94xx.c mw32(MVS_TX_HI, (mvi->tx_dma >> 16) >> 16); mvi 457 drivers/scsi/mvsas/mv_94xx.c mw32(MVS_RX_LO, mvi->rx_dma); mvi 458 drivers/scsi/mvsas/mv_94xx.c mw32(MVS_RX_HI, (mvi->rx_dma >> 16) >> 16); mvi 460 drivers/scsi/mvsas/mv_94xx.c for (i = 0; i < mvi->chip->n_phy; i++) { mvi 461 drivers/scsi/mvsas/mv_94xx.c mvs_94xx_phy_disable(mvi, i); mvi 463 drivers/scsi/mvsas/mv_94xx.c mvs_set_sas_addr(mvi, i, CONFIG_ID_FRAME3, CONFIG_ID_FRAME4, mvi 464 drivers/scsi/mvsas/mv_94xx.c cpu_to_le64(mvi->phy[i].dev_sas_addr)); mvi 466 drivers/scsi/mvsas/mv_94xx.c mvs_94xx_enable_xmt(mvi, i); mvi 467 drivers/scsi/mvsas/mv_94xx.c mvs_94xx_config_reg_from_hba(mvi, i); mvi 468 drivers/scsi/mvsas/mv_94xx.c mvs_94xx_phy_enable(mvi, i); mvi 470 drivers/scsi/mvsas/mv_94xx.c mvs_94xx_phy_reset(mvi, i, PHY_RST_HARD); mvi 472 drivers/scsi/mvsas/mv_94xx.c mvs_94xx_detect_porttype(mvi, i); mvi 475 drivers/scsi/mvsas/mv_94xx.c if (mvi->flags & MVF_FLAG_SOC) { mvi 486 drivers/scsi/mvsas/mv_94xx.c for (i = 0; i < mvi->chip->n_phy; i++) { mvi 488 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_read_port_irq_stat(mvi, i); mvi 490 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_irq_stat(mvi, i, tmp); mvi 495 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_irq_mask(mvi, i, tmp); mvi 498 drivers/scsi/mvsas/mv_94xx.c mvs_update_phyinfo(mvi, i, 1); mvi 541 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_cr32(mvi, CMD_LINK_TIMER); mvi 543 drivers/scsi/mvsas/mv_94xx.c mvs_cw32(mvi, CMD_LINK_TIMER, tmp); mvi 547 drivers/scsi/mvsas/mv_94xx.c mvs_cw32(mvi, CMD_PL_TIMER, tmp); mvi 550 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_cr32(mvi, CMD_PORT_LAYER_TIMER1); mvi 552 drivers/scsi/mvsas/mv_94xx.c mvs_cw32(mvi, CMD_PORT_LAYER_TIMER1, tmp); mvi 556 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_cr32(mvi, CMD_SL_MODE0); mvi 560 drivers/scsi/mvsas/mv_94xx.c mvs_cw32(mvi, CMD_SL_MODE0, tmp); mvi 565 drivers/scsi/mvsas/mv_94xx.c mvs_94xx_sgpio_init(mvi); mvi 570 drivers/scsi/mvsas/mv_94xx.c static int mvs_94xx_ioremap(struct mvs_info *mvi) mvi 572 drivers/scsi/mvsas/mv_94xx.c if (!mvs_ioremap(mvi, 2, -1)) { mvi 573 drivers/scsi/mvsas/mv_94xx.c mvi->regs_ex = mvi->regs + 0x10200; mvi 574 drivers/scsi/mvsas/mv_94xx.c mvi->regs += 0x20000; mvi 575 drivers/scsi/mvsas/mv_94xx.c if (mvi->id == 1) mvi 576 drivers/scsi/mvsas/mv_94xx.c mvi->regs += 0x4000; mvi 582 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_iounmap(struct mvs_info *mvi) mvi 584 drivers/scsi/mvsas/mv_94xx.c if (mvi->regs) { mvi 585 drivers/scsi/mvsas/mv_94xx.c mvi->regs -= 0x20000; mvi 586 drivers/scsi/mvsas/mv_94xx.c if (mvi->id == 1) mvi 587 drivers/scsi/mvsas/mv_94xx.c mvi->regs -= 0x4000; mvi 588 drivers/scsi/mvsas/mv_94xx.c mvs_iounmap(mvi->regs); mvi 592 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_interrupt_enable(struct mvs_info *mvi) mvi 594 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs_ex; mvi 607 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_interrupt_disable(struct mvs_info *mvi) mvi 609 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs_ex; mvi 623 drivers/scsi/mvsas/mv_94xx.c static u32 mvs_94xx_isr_status(struct mvs_info *mvi, int irq) mvi 625 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs_ex; mvi 627 drivers/scsi/mvsas/mv_94xx.c if (!(mvi->flags & MVF_FLAG_SOC)) { mvi 636 drivers/scsi/mvsas/mv_94xx.c static irqreturn_t mvs_94xx_isr(struct mvs_info *mvi, int irq, u32 stat) mvi 638 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs; mvi 640 drivers/scsi/mvsas/mv_94xx.c if (((stat & MVS_IRQ_SAS_A) && mvi->id == 0) || mvi 641 drivers/scsi/mvsas/mv_94xx.c ((stat & MVS_IRQ_SAS_B) && mvi->id == 1)) { mvi 644 drivers/scsi/mvsas/mv_94xx.c spin_lock(&mvi->lock); mvi 645 drivers/scsi/mvsas/mv_94xx.c mvs_int_full(mvi); mvi 646 drivers/scsi/mvsas/mv_94xx.c spin_unlock(&mvi->lock); mvi 651 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_command_active(struct mvs_info *mvi, u32 slot_idx) mvi 654 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_cr32(mvi, MVS_COMMAND_ACTIVE+(slot_idx >> 3)); mvi 657 drivers/scsi/mvsas/mv_94xx.c mvs_cw32(mvi, MVS_COMMAND_ACTIVE + (slot_idx >> 3), mvi 660 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_cr32(mvi, mvi 667 drivers/scsi/mvsas/mv_94xx.c mvs_94xx_clear_srs_irq(struct mvs_info *mvi, u8 reg_set, u8 clear_all) mvi 669 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs; mvi 699 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_issue_stop(struct mvs_info *mvi, enum mvs_port_type type, mvi 702 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs; mvi 704 drivers/scsi/mvsas/mv_94xx.c mvs_94xx_clear_srs_irq(mvi, 0, 1); mvi 712 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_non_spec_ncq_error(struct mvs_info *mvi) mvi 714 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs; mvi 726 drivers/scsi/mvsas/mv_94xx.c device = mvs_find_dev_by_reg_set(mvi, i); mvi 728 drivers/scsi/mvsas/mv_94xx.c mvs_release_task(mvi, device->sas_device); mvi 731 drivers/scsi/mvsas/mv_94xx.c device = mvs_find_dev_by_reg_set(mvi, i+32); mvi 733 drivers/scsi/mvsas/mv_94xx.c mvs_release_task(mvi, device->sas_device); mvi 741 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_free_reg_set(struct mvs_info *mvi, u8 *tfs) mvi 743 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs; mvi 749 drivers/scsi/mvsas/mv_94xx.c mvi->sata_reg_set &= ~bit(reg_set); mvi 751 drivers/scsi/mvsas/mv_94xx.c w_reg_set_enable(reg_set, (u32)mvi->sata_reg_set); mvi 753 drivers/scsi/mvsas/mv_94xx.c w_reg_set_enable(reg_set, (u32)(mvi->sata_reg_set >> 32)); mvi 760 drivers/scsi/mvsas/mv_94xx.c static u8 mvs_94xx_assign_reg_set(struct mvs_info *mvi, u8 *tfs) mvi 763 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs; mvi 768 drivers/scsi/mvsas/mv_94xx.c i = mv_ffc64(mvi->sata_reg_set); mvi 770 drivers/scsi/mvsas/mv_94xx.c mvi->sata_reg_set |= bit(i); mvi 771 drivers/scsi/mvsas/mv_94xx.c w_reg_set_enable(i, (u32)(mvi->sata_reg_set >> 32)); mvi 775 drivers/scsi/mvsas/mv_94xx.c mvi->sata_reg_set |= bit(i); mvi 776 drivers/scsi/mvsas/mv_94xx.c w_reg_set_enable(i, (u32)mvi->sata_reg_set); mvi 798 drivers/scsi/mvsas/mv_94xx.c static int mvs_94xx_oob_done(struct mvs_info *mvi, int i) mvi 801 drivers/scsi/mvsas/mv_94xx.c phy_st = mvs_read_phy_ctl(mvi, i); mvi 807 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_get_dev_identify_frame(struct mvs_info *mvi, int port_id, mvi 814 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_cfg_addr(mvi, port_id, mvi 816 drivers/scsi/mvsas/mv_94xx.c id_frame[i] = cpu_to_le32(mvs_read_port_cfg_data(mvi, port_id)); mvi 821 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_get_att_identify_frame(struct mvs_info *mvi, int port_id, mvi 828 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_cfg_addr(mvi, port_id, mvi 830 drivers/scsi/mvsas/mv_94xx.c id_frame[i] = cpu_to_le32(mvs_read_port_cfg_data(mvi, port_id)); mvi 832 drivers/scsi/mvsas/mv_94xx.c port_id + mvi->id * mvi->chip->n_phy, i, id_frame[i]); mvi 864 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_fix_phy_info(struct mvs_info *mvi, int i, mvi 867 drivers/scsi/mvsas/mv_94xx.c struct mvs_phy *phy = &mvi->phy[i]; mvi 877 drivers/scsi/mvsas/mv_94xx.c mvs_94xx_get_dev_identify_frame(mvi, i, id); mvi 881 drivers/scsi/mvsas/mv_94xx.c mvs_94xx_get_att_identify_frame(mvi, i, id); mvi 889 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_cfg_addr(mvi, i, PHYR_PHY_STAT); mvi 890 drivers/scsi/mvsas/mv_94xx.c mvs_write_port_cfg_data(mvi, i, 0x04); mvi 894 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_phy_set_link_rate(struct mvs_info *mvi, u32 phy_id, mvi 900 drivers/scsi/mvsas/mv_94xx.c tmp = mvs_read_phy_ctl(mvi, phy_id); mvi 907 drivers/scsi/mvsas/mv_94xx.c mvs_write_phy_ctl(mvi, phy_id, tmp); mvi 908 drivers/scsi/mvsas/mv_94xx.c mvs_94xx_phy_reset(mvi, phy_id, PHY_RST_HARD); mvi 911 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_clear_active_cmds(struct mvs_info *mvi) mvi 914 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs; mvi 924 drivers/scsi/mvsas/mv_94xx.c static u32 mvs_94xx_spi_read_data(struct mvs_info *mvi) mvi 926 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs_ex - 0x10200; mvi 930 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_spi_write_data(struct mvs_info *mvi, u32 data) mvi 932 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs_ex - 0x10200; mvi 938 drivers/scsi/mvsas/mv_94xx.c static int mvs_94xx_spi_buildcmd(struct mvs_info *mvi, mvi 946 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs_ex - 0x10200; mvi 963 drivers/scsi/mvsas/mv_94xx.c static int mvs_94xx_spi_issuecmd(struct mvs_info *mvi, u32 cmd) mvi 965 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs_ex - 0x10200; mvi 971 drivers/scsi/mvsas/mv_94xx.c static int mvs_94xx_spi_waitdataready(struct mvs_info *mvi, u32 timeout) mvi 973 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs_ex - 0x10200; mvi 986 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_fix_dma(struct mvs_info *mvi, u32 phy_mask, mvi 998 drivers/scsi/mvsas/mv_94xx.c if ((mvi->pdev->revision == VANIR_A0_REV) || mvi 999 drivers/scsi/mvsas/mv_94xx.c (mvi->pdev->revision == VANIR_B0_REV)) mvi 1001 drivers/scsi/mvsas/mv_94xx.c mvi->bulk_buffer_dma : mvi->bulk_buffer_dma1; mvi 1018 drivers/scsi/mvsas/mv_94xx.c static void mvs_94xx_tune_interrupt(struct mvs_info *mvi, u32 time) mvi 1020 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs; mvi 1063 drivers/scsi/mvsas/mv_94xx.c struct mvs_info *mvi = mvs_prv->mvi[i/(4*3)]; mvi 1065 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs_ex - 0x10200; mvi 1070 drivers/scsi/mvsas/mv_94xx.c MVS_SGPIO_HOST_OFFSET * mvi->id); mvi 1106 drivers/scsi/mvsas/mv_94xx.c MVS_SGPIO_HOST_OFFSET * mvi->id); mvi 1117 drivers/scsi/mvsas/mv_94xx.c struct mvs_info *mvi = mvs_prv->mvi[i+reg_index]; mvi 1118 drivers/scsi/mvsas/mv_94xx.c void __iomem *regs = mvi->regs_ex - 0x10200; mvi 1120 drivers/scsi/mvsas/mv_94xx.c mw32(MVS_SGPIO_DCTRL + MVS_SGPIO_HOST_OFFSET * mvi->id, mvi 28 drivers/scsi/mvsas/mv_chips.h static inline u32 mvs_cr32(struct mvs_info *mvi, u32 addr) mvi 30 drivers/scsi/mvsas/mv_chips.h void __iomem *regs = mvi->regs; mvi 35 drivers/scsi/mvsas/mv_chips.h static inline void mvs_cw32(struct mvs_info *mvi, u32 addr, u32 val) mvi 37 drivers/scsi/mvsas/mv_chips.h void __iomem *regs = mvi->regs; mvi 42 drivers/scsi/mvsas/mv_chips.h static inline u32 mvs_read_phy_ctl(struct mvs_info *mvi, u32 port) mvi 44 drivers/scsi/mvsas/mv_chips.h void __iomem *regs = mvi->regs; mvi 49 drivers/scsi/mvsas/mv_chips.h static inline void mvs_write_phy_ctl(struct mvs_info *mvi, u32 port, u32 val) mvi 51 drivers/scsi/mvsas/mv_chips.h void __iomem *regs = mvi->regs; mvi 58 drivers/scsi/mvsas/mv_chips.h static inline u32 mvs_read_port(struct mvs_info *mvi, u32 off, mvi 61 drivers/scsi/mvsas/mv_chips.h void __iomem *regs = mvi->regs + off; mvi 62 drivers/scsi/mvsas/mv_chips.h void __iomem *regs2 = mvi->regs + off2; mvi 67 drivers/scsi/mvsas/mv_chips.h static inline void mvs_write_port(struct mvs_info *mvi, u32 off, u32 off2, mvi 70 drivers/scsi/mvsas/mv_chips.h void __iomem *regs = mvi->regs + off; mvi 71 drivers/scsi/mvsas/mv_chips.h void __iomem *regs2 = mvi->regs + off2; mvi 78 drivers/scsi/mvsas/mv_chips.h static inline u32 mvs_read_port_cfg_data(struct mvs_info *mvi, u32 port) mvi 80 drivers/scsi/mvsas/mv_chips.h return mvs_read_port(mvi, MVS_P0_CFG_DATA, mvi 84 drivers/scsi/mvsas/mv_chips.h static inline void mvs_write_port_cfg_data(struct mvs_info *mvi, mvi 87 drivers/scsi/mvsas/mv_chips.h mvs_write_port(mvi, MVS_P0_CFG_DATA, mvi 91 drivers/scsi/mvsas/mv_chips.h static inline void mvs_write_port_cfg_addr(struct mvs_info *mvi, mvi 94 drivers/scsi/mvsas/mv_chips.h mvs_write_port(mvi, MVS_P0_CFG_ADDR, mvi 99 drivers/scsi/mvsas/mv_chips.h static inline u32 mvs_read_port_vsr_data(struct mvs_info *mvi, u32 port) mvi 101 drivers/scsi/mvsas/mv_chips.h return mvs_read_port(mvi, MVS_P0_VSR_DATA, mvi 105 drivers/scsi/mvsas/mv_chips.h static inline void mvs_write_port_vsr_data(struct mvs_info *mvi, mvi 108 drivers/scsi/mvsas/mv_chips.h mvs_write_port(mvi, MVS_P0_VSR_DATA, mvi 112 drivers/scsi/mvsas/mv_chips.h static inline void mvs_write_port_vsr_addr(struct mvs_info *mvi, mvi 115 drivers/scsi/mvsas/mv_chips.h mvs_write_port(mvi, MVS_P0_VSR_ADDR, mvi 120 drivers/scsi/mvsas/mv_chips.h static inline u32 mvs_read_port_irq_stat(struct mvs_info *mvi, u32 port) mvi 122 drivers/scsi/mvsas/mv_chips.h return mvs_read_port(mvi, MVS_P0_INT_STAT, mvi 126 drivers/scsi/mvsas/mv_chips.h static inline void mvs_write_port_irq_stat(struct mvs_info *mvi, mvi 129 drivers/scsi/mvsas/mv_chips.h mvs_write_port(mvi, MVS_P0_INT_STAT, mvi 133 drivers/scsi/mvsas/mv_chips.h static inline u32 mvs_read_port_irq_mask(struct mvs_info *mvi, u32 port) mvi 135 drivers/scsi/mvsas/mv_chips.h return mvs_read_port(mvi, MVS_P0_INT_MASK, mvi 140 drivers/scsi/mvsas/mv_chips.h static inline void mvs_write_port_irq_mask(struct mvs_info *mvi, mvi 143 drivers/scsi/mvsas/mv_chips.h mvs_write_port(mvi, MVS_P0_INT_MASK, mvi 147 drivers/scsi/mvsas/mv_chips.h static inline void mvs_phy_hacks(struct mvs_info *mvi) mvi 151 drivers/scsi/mvsas/mv_chips.h tmp = mvs_cr32(mvi, CMD_PHY_TIMER); mvi 154 drivers/scsi/mvsas/mv_chips.h mvs_cw32(mvi, CMD_PHY_TIMER, tmp); mvi 157 drivers/scsi/mvsas/mv_chips.h mvs_cw32(mvi, CMD_SAS_CTL1, 0x7f7f); mvi 160 drivers/scsi/mvsas/mv_chips.h tmp = mvs_cr32(mvi, CMD_SAS_CTL0); mvi 163 drivers/scsi/mvsas/mv_chips.h mvs_cw32(mvi, CMD_SAS_CTL0, tmp); mvi 165 drivers/scsi/mvsas/mv_chips.h mvs_cw32(mvi, CMD_WD_TIMER, 0x7a0000); mvi 168 drivers/scsi/mvsas/mv_chips.h mvs_cw32(mvi, CMD_APP_ERR_CONFIG, 0xffefbf7d); mvi 171 drivers/scsi/mvsas/mv_chips.h static inline void mvs_int_sata(struct mvs_info *mvi) mvi 174 drivers/scsi/mvsas/mv_chips.h void __iomem *regs = mvi->regs; mvi 178 drivers/scsi/mvsas/mv_chips.h MVS_CHIP_DISP->clear_active_cmds(mvi); mvi 181 drivers/scsi/mvsas/mv_chips.h static inline void mvs_int_full(struct mvs_info *mvi) mvi 183 drivers/scsi/mvsas/mv_chips.h void __iomem *regs = mvi->regs; mvi 188 drivers/scsi/mvsas/mv_chips.h mvs_int_rx(mvi, false); mvi 190 drivers/scsi/mvsas/mv_chips.h for (i = 0; i < mvi->chip->n_phy; i++) { mvi 193 drivers/scsi/mvsas/mv_chips.h mvs_int_port(mvi, i, tmp); mvi 197 drivers/scsi/mvsas/mv_chips.h MVS_CHIP_DISP->non_spec_ncq_error(mvi); mvi 200 drivers/scsi/mvsas/mv_chips.h mvs_int_sata(mvi); mvi 205 drivers/scsi/mvsas/mv_chips.h static inline void mvs_start_delivery(struct mvs_info *mvi, u32 tx) mvi 207 drivers/scsi/mvsas/mv_chips.h void __iomem *regs = mvi->regs; mvi 211 drivers/scsi/mvsas/mv_chips.h static inline u32 mvs_rx_update(struct mvs_info *mvi) mvi 213 drivers/scsi/mvsas/mv_chips.h void __iomem *regs = mvi->regs; mvi 227 drivers/scsi/mvsas/mv_chips.h static inline void mvs_show_pcie_usage(struct mvs_info *mvi) mvi 235 drivers/scsi/mvsas/mv_chips.h if (mvi->flags & MVF_FLAG_SOC || mvi->id > 0) mvi 238 drivers/scsi/mvsas/mv_chips.h pci_read_config_word(mvi->pdev, PCR_LINK_STAT, &link_stat); mvi 242 drivers/scsi/mvsas/mv_chips.h dev_printk(KERN_INFO, mvi->dev, mvi 74 drivers/scsi/mvsas/mv_init.c static void mvs_phy_init(struct mvs_info *mvi, int phy_id) mvi 76 drivers/scsi/mvsas/mv_init.c struct mvs_phy *phy = &mvi->phy[phy_id]; mvi 79 drivers/scsi/mvsas/mv_init.c phy->mvi = mvi; mvi 82 drivers/scsi/mvsas/mv_init.c sas_phy->enabled = (phy_id < mvi->chip->n_phy) ? 1 : 0; mvi 92 drivers/scsi/mvsas/mv_init.c sas_phy->sas_addr = &mvi->sas_addr[0]; mvi 94 drivers/scsi/mvsas/mv_init.c sas_phy->ha = (struct sas_ha_struct *)mvi->shost->hostdata; mvi 98 drivers/scsi/mvsas/mv_init.c static void mvs_free(struct mvs_info *mvi) mvi 103 drivers/scsi/mvsas/mv_init.c if (!mvi) mvi 106 drivers/scsi/mvsas/mv_init.c if (mvi->flags & MVF_FLAG_SOC) mvi 111 drivers/scsi/mvsas/mv_init.c dma_pool_destroy(mvi->dma_pool); mvi 113 drivers/scsi/mvsas/mv_init.c if (mvi->tx) mvi 114 drivers/scsi/mvsas/mv_init.c dma_free_coherent(mvi->dev, mvi 115 drivers/scsi/mvsas/mv_init.c sizeof(*mvi->tx) * MVS_CHIP_SLOT_SZ, mvi 116 drivers/scsi/mvsas/mv_init.c mvi->tx, mvi->tx_dma); mvi 117 drivers/scsi/mvsas/mv_init.c if (mvi->rx_fis) mvi 118 drivers/scsi/mvsas/mv_init.c dma_free_coherent(mvi->dev, MVS_RX_FISL_SZ, mvi 119 drivers/scsi/mvsas/mv_init.c mvi->rx_fis, mvi->rx_fis_dma); mvi 120 drivers/scsi/mvsas/mv_init.c if (mvi->rx) mvi 121 drivers/scsi/mvsas/mv_init.c dma_free_coherent(mvi->dev, mvi 122 drivers/scsi/mvsas/mv_init.c sizeof(*mvi->rx) * (MVS_RX_RING_SZ + 1), mvi 123 drivers/scsi/mvsas/mv_init.c mvi->rx, mvi->rx_dma); mvi 124 drivers/scsi/mvsas/mv_init.c if (mvi->slot) mvi 125 drivers/scsi/mvsas/mv_init.c dma_free_coherent(mvi->dev, mvi 126 drivers/scsi/mvsas/mv_init.c sizeof(*mvi->slot) * slot_nr, mvi 127 drivers/scsi/mvsas/mv_init.c mvi->slot, mvi->slot_dma); mvi 129 drivers/scsi/mvsas/mv_init.c if (mvi->bulk_buffer) mvi 130 drivers/scsi/mvsas/mv_init.c dma_free_coherent(mvi->dev, TRASH_BUCKET_SIZE, mvi 131 drivers/scsi/mvsas/mv_init.c mvi->bulk_buffer, mvi->bulk_buffer_dma); mvi 132 drivers/scsi/mvsas/mv_init.c if (mvi->bulk_buffer1) mvi 133 drivers/scsi/mvsas/mv_init.c dma_free_coherent(mvi->dev, TRASH_BUCKET_SIZE, mvi 134 drivers/scsi/mvsas/mv_init.c mvi->bulk_buffer1, mvi->bulk_buffer_dma1); mvi 136 drivers/scsi/mvsas/mv_init.c MVS_CHIP_DISP->chip_iounmap(mvi); mvi 137 drivers/scsi/mvsas/mv_init.c if (mvi->shost) mvi 138 drivers/scsi/mvsas/mv_init.c scsi_host_put(mvi->shost); mvi 139 drivers/scsi/mvsas/mv_init.c list_for_each_entry(mwq, &mvi->wq_list, entry) mvi 141 drivers/scsi/mvsas/mv_init.c kfree(mvi->tags); mvi 142 drivers/scsi/mvsas/mv_init.c kfree(mvi); mvi 151 drivers/scsi/mvsas/mv_init.c struct mvs_info *mvi; mvi 155 drivers/scsi/mvsas/mv_init.c mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[0]; mvi 157 drivers/scsi/mvsas/mv_init.c if (unlikely(!mvi)) mvi 160 drivers/scsi/mvsas/mv_init.c stat = MVS_CHIP_DISP->isr_status(mvi, mvi->pdev->irq); mvi 165 drivers/scsi/mvsas/mv_init.c mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[i]; mvi 166 drivers/scsi/mvsas/mv_init.c MVS_CHIP_DISP->isr(mvi, mvi->pdev->irq, stat); mvi 169 drivers/scsi/mvsas/mv_init.c MVS_CHIP_DISP->interrupt_enable(mvi); mvi 178 drivers/scsi/mvsas/mv_init.c struct mvs_info *mvi; mvi 185 drivers/scsi/mvsas/mv_init.c mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[0]; mvi 187 drivers/scsi/mvsas/mv_init.c if (unlikely(!mvi)) mvi 190 drivers/scsi/mvsas/mv_init.c MVS_CHIP_DISP->interrupt_disable(mvi); mvi 193 drivers/scsi/mvsas/mv_init.c stat = MVS_CHIP_DISP->isr_status(mvi, irq); mvi 196 drivers/scsi/mvsas/mv_init.c MVS_CHIP_DISP->interrupt_enable(mvi); mvi 205 drivers/scsi/mvsas/mv_init.c mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[i]; mvi 206 drivers/scsi/mvsas/mv_init.c MVS_CHIP_DISP->isr(mvi, irq, stat); mvi 212 drivers/scsi/mvsas/mv_init.c static int mvs_alloc(struct mvs_info *mvi, struct Scsi_Host *shost) mvi 217 drivers/scsi/mvsas/mv_init.c if (mvi->flags & MVF_FLAG_SOC) mvi 222 drivers/scsi/mvsas/mv_init.c spin_lock_init(&mvi->lock); mvi 223 drivers/scsi/mvsas/mv_init.c for (i = 0; i < mvi->chip->n_phy; i++) { mvi 224 drivers/scsi/mvsas/mv_init.c mvs_phy_init(mvi, i); mvi 225 drivers/scsi/mvsas/mv_init.c mvi->port[i].wide_port_phymap = 0; mvi 226 drivers/scsi/mvsas/mv_init.c mvi->port[i].port_attached = 0; mvi 227 drivers/scsi/mvsas/mv_init.c INIT_LIST_HEAD(&mvi->port[i].list); mvi 230 drivers/scsi/mvsas/mv_init.c mvi->devices[i].taskfileset = MVS_ID_NOT_MAPPED; mvi 231 drivers/scsi/mvsas/mv_init.c mvi->devices[i].dev_type = SAS_PHY_UNUSED; mvi 232 drivers/scsi/mvsas/mv_init.c mvi->devices[i].device_id = i; mvi 233 drivers/scsi/mvsas/mv_init.c mvi->devices[i].dev_status = MVS_DEV_NORMAL; mvi 239 drivers/scsi/mvsas/mv_init.c mvi->tx = dma_alloc_coherent(mvi->dev, mvi 240 drivers/scsi/mvsas/mv_init.c sizeof(*mvi->tx) * MVS_CHIP_SLOT_SZ, mvi 241 drivers/scsi/mvsas/mv_init.c &mvi->tx_dma, GFP_KERNEL); mvi 242 drivers/scsi/mvsas/mv_init.c if (!mvi->tx) mvi 244 drivers/scsi/mvsas/mv_init.c memset(mvi->tx, 0, sizeof(*mvi->tx) * MVS_CHIP_SLOT_SZ); mvi 245 drivers/scsi/mvsas/mv_init.c mvi->rx_fis = dma_alloc_coherent(mvi->dev, MVS_RX_FISL_SZ, mvi 246 drivers/scsi/mvsas/mv_init.c &mvi->rx_fis_dma, GFP_KERNEL); mvi 247 drivers/scsi/mvsas/mv_init.c if (!mvi->rx_fis) mvi 249 drivers/scsi/mvsas/mv_init.c memset(mvi->rx_fis, 0, MVS_RX_FISL_SZ); mvi 251 drivers/scsi/mvsas/mv_init.c mvi->rx = dma_alloc_coherent(mvi->dev, mvi 252 drivers/scsi/mvsas/mv_init.c sizeof(*mvi->rx) * (MVS_RX_RING_SZ + 1), mvi 253 drivers/scsi/mvsas/mv_init.c &mvi->rx_dma, GFP_KERNEL); mvi 254 drivers/scsi/mvsas/mv_init.c if (!mvi->rx) mvi 256 drivers/scsi/mvsas/mv_init.c memset(mvi->rx, 0, sizeof(*mvi->rx) * (MVS_RX_RING_SZ + 1)); mvi 257 drivers/scsi/mvsas/mv_init.c mvi->rx[0] = cpu_to_le32(0xfff); mvi 258 drivers/scsi/mvsas/mv_init.c mvi->rx_cons = 0xfff; mvi 260 drivers/scsi/mvsas/mv_init.c mvi->slot = dma_alloc_coherent(mvi->dev, mvi 261 drivers/scsi/mvsas/mv_init.c sizeof(*mvi->slot) * slot_nr, mvi 262 drivers/scsi/mvsas/mv_init.c &mvi->slot_dma, GFP_KERNEL); mvi 263 drivers/scsi/mvsas/mv_init.c if (!mvi->slot) mvi 265 drivers/scsi/mvsas/mv_init.c memset(mvi->slot, 0, sizeof(*mvi->slot) * slot_nr); mvi 267 drivers/scsi/mvsas/mv_init.c mvi->bulk_buffer = dma_alloc_coherent(mvi->dev, mvi 269 drivers/scsi/mvsas/mv_init.c &mvi->bulk_buffer_dma, GFP_KERNEL); mvi 270 drivers/scsi/mvsas/mv_init.c if (!mvi->bulk_buffer) mvi 273 drivers/scsi/mvsas/mv_init.c mvi->bulk_buffer1 = dma_alloc_coherent(mvi->dev, mvi 275 drivers/scsi/mvsas/mv_init.c &mvi->bulk_buffer_dma1, GFP_KERNEL); mvi 276 drivers/scsi/mvsas/mv_init.c if (!mvi->bulk_buffer1) mvi 279 drivers/scsi/mvsas/mv_init.c sprintf(pool_name, "%s%d", "mvs_dma_pool", mvi->id); mvi 280 drivers/scsi/mvsas/mv_init.c mvi->dma_pool = dma_pool_create(pool_name, &mvi->pdev->dev, mvi 282 drivers/scsi/mvsas/mv_init.c if (!mvi->dma_pool) { mvi 286 drivers/scsi/mvsas/mv_init.c mvi->tags_num = slot_nr; mvi 289 drivers/scsi/mvsas/mv_init.c mvs_tag_init(mvi); mvi 296 drivers/scsi/mvsas/mv_init.c int mvs_ioremap(struct mvs_info *mvi, int bar, int bar_ex) mvi 299 drivers/scsi/mvsas/mv_init.c struct pci_dev *pdev = mvi->pdev; mvi 311 drivers/scsi/mvsas/mv_init.c mvi->regs_ex = ioremap(res_start, res_len); mvi 313 drivers/scsi/mvsas/mv_init.c mvi->regs_ex = (void *)res_start; mvi 314 drivers/scsi/mvsas/mv_init.c if (!mvi->regs_ex) mvi 321 drivers/scsi/mvsas/mv_init.c iounmap(mvi->regs_ex); mvi 322 drivers/scsi/mvsas/mv_init.c mvi->regs_ex = NULL; mvi 327 drivers/scsi/mvsas/mv_init.c mvi->regs = ioremap(res_start, res_len); mvi 329 drivers/scsi/mvsas/mv_init.c if (!mvi->regs) { mvi 330 drivers/scsi/mvsas/mv_init.c if (mvi->regs_ex && (res_flag_ex & IORESOURCE_MEM)) mvi 331 drivers/scsi/mvsas/mv_init.c iounmap(mvi->regs_ex); mvi 332 drivers/scsi/mvsas/mv_init.c mvi->regs_ex = NULL; mvi 350 drivers/scsi/mvsas/mv_init.c struct mvs_info *mvi = NULL; mvi 353 drivers/scsi/mvsas/mv_init.c mvi = kzalloc(sizeof(*mvi) + mvi 356 drivers/scsi/mvsas/mv_init.c if (!mvi) mvi 359 drivers/scsi/mvsas/mv_init.c mvi->pdev = pdev; mvi 360 drivers/scsi/mvsas/mv_init.c mvi->dev = &pdev->dev; mvi 361 drivers/scsi/mvsas/mv_init.c mvi->chip_id = ent->driver_data; mvi 362 drivers/scsi/mvsas/mv_init.c mvi->chip = &mvs_chips[mvi->chip_id]; mvi 363 drivers/scsi/mvsas/mv_init.c INIT_LIST_HEAD(&mvi->wq_list); mvi 365 drivers/scsi/mvsas/mv_init.c ((struct mvs_prv_info *)sha->lldd_ha)->mvi[id] = mvi; mvi 366 drivers/scsi/mvsas/mv_init.c ((struct mvs_prv_info *)sha->lldd_ha)->n_phy = mvi->chip->n_phy; mvi 368 drivers/scsi/mvsas/mv_init.c mvi->id = id; mvi 369 drivers/scsi/mvsas/mv_init.c mvi->sas = sha; mvi 370 drivers/scsi/mvsas/mv_init.c mvi->shost = shost; mvi 372 drivers/scsi/mvsas/mv_init.c mvi->tags = kzalloc(MVS_CHIP_SLOT_SZ>>3, GFP_KERNEL); mvi 373 drivers/scsi/mvsas/mv_init.c if (!mvi->tags) mvi 376 drivers/scsi/mvsas/mv_init.c if (MVS_CHIP_DISP->chip_ioremap(mvi)) mvi 378 drivers/scsi/mvsas/mv_init.c if (!mvs_alloc(mvi, shost)) mvi 379 drivers/scsi/mvsas/mv_init.c return mvi; mvi 381 drivers/scsi/mvsas/mv_init.c mvs_free(mvi); mvi 448 drivers/scsi/mvsas/mv_init.c struct mvs_info *mvi = NULL; mvi 453 drivers/scsi/mvsas/mv_init.c mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[j]; mvi 456 drivers/scsi/mvsas/mv_init.c &mvi->phy[i].sas_phy; mvi 458 drivers/scsi/mvsas/mv_init.c &mvi->port[i].sas_port; mvi 463 drivers/scsi/mvsas/mv_init.c sha->dev = mvi->dev; mvi 465 drivers/scsi/mvsas/mv_init.c sha->sas_addr = &mvi->sas_addr[0]; mvi 469 drivers/scsi/mvsas/mv_init.c if (mvi->flags & MVF_FLAG_SOC) mvi 476 drivers/scsi/mvsas/mv_init.c mvi->shost->cmd_per_lun = MVS_QUEUE_SIZE; mvi 477 drivers/scsi/mvsas/mv_init.c sha->core.shost = mvi->shost; mvi 480 drivers/scsi/mvsas/mv_init.c static void mvs_init_sas_add(struct mvs_info *mvi) mvi 483 drivers/scsi/mvsas/mv_init.c for (i = 0; i < mvi->chip->n_phy; i++) { mvi 484 drivers/scsi/mvsas/mv_init.c mvi->phy[i].dev_sas_addr = 0x5005043011ab0000ULL; mvi 485 drivers/scsi/mvsas/mv_init.c mvi->phy[i].dev_sas_addr = mvi 486 drivers/scsi/mvsas/mv_init.c cpu_to_be64((u64)(*(u64 *)&mvi->phy[i].dev_sas_addr)); mvi 489 drivers/scsi/mvsas/mv_init.c memcpy(mvi->sas_addr, &mvi->phy[0].dev_sas_addr, SAS_ADDR_SIZE); mvi 495 drivers/scsi/mvsas/mv_init.c struct mvs_info *mvi; mvi 542 drivers/scsi/mvsas/mv_init.c mvi = mvs_pci_alloc(pdev, ent, shost, nhost); mvi 543 drivers/scsi/mvsas/mv_init.c if (!mvi) { mvi 548 drivers/scsi/mvsas/mv_init.c memset(&mvi->hba_info_param, 0xFF, mvi 551 drivers/scsi/mvsas/mv_init.c mvs_init_sas_add(mvi); mvi 553 drivers/scsi/mvsas/mv_init.c mvi->instance = nhost; mvi 554 drivers/scsi/mvsas/mv_init.c rc = MVS_CHIP_DISP->chip_init(mvi); mvi 556 drivers/scsi/mvsas/mv_init.c mvs_free(mvi); mvi 581 drivers/scsi/mvsas/mv_init.c MVS_CHIP_DISP->interrupt_enable(mvi); mvi 583 drivers/scsi/mvsas/mv_init.c scsi_scan_host(mvi->shost); mvi 590 drivers/scsi/mvsas/mv_init.c scsi_remove_host(mvi->shost); mvi 603 drivers/scsi/mvsas/mv_init.c struct mvs_info *mvi = NULL; mvi 606 drivers/scsi/mvsas/mv_init.c mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[0]; mvi 613 drivers/scsi/mvsas/mv_init.c sas_remove_host(mvi->shost); mvi 615 drivers/scsi/mvsas/mv_init.c MVS_CHIP_DISP->interrupt_disable(mvi); mvi 616 drivers/scsi/mvsas/mv_init.c free_irq(mvi->pdev->irq, sha); mvi 618 drivers/scsi/mvsas/mv_init.c mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[i]; mvi 619 drivers/scsi/mvsas/mv_init.c mvs_free(mvi); mvi 713 drivers/scsi/mvsas/mv_init.c struct mvs_info *mvi = NULL; mvi 732 drivers/scsi/mvsas/mv_init.c mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[0]; mvi 734 drivers/scsi/mvsas/mv_init.c if (unlikely(!mvi)) mvi 738 drivers/scsi/mvsas/mv_init.c mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[i]; mvi 740 drivers/scsi/mvsas/mv_init.c MVS_CHIP_DISP->tune_interrupt(mvi, mvi 12 drivers/scsi/mvsas/mv_sas.c static int mvs_find_tag(struct mvs_info *mvi, struct sas_task *task, u32 *tag) mvi 23 drivers/scsi/mvsas/mv_sas.c void mvs_tag_clear(struct mvs_info *mvi, u32 tag) mvi 25 drivers/scsi/mvsas/mv_sas.c void *bitmap = mvi->tags; mvi 29 drivers/scsi/mvsas/mv_sas.c void mvs_tag_free(struct mvs_info *mvi, u32 tag) mvi 31 drivers/scsi/mvsas/mv_sas.c mvs_tag_clear(mvi, tag); mvi 34 drivers/scsi/mvsas/mv_sas.c void mvs_tag_set(struct mvs_info *mvi, unsigned int tag) mvi 36 drivers/scsi/mvsas/mv_sas.c void *bitmap = mvi->tags; mvi 40 drivers/scsi/mvsas/mv_sas.c inline int mvs_tag_alloc(struct mvs_info *mvi, u32 *tag_out) mvi 43 drivers/scsi/mvsas/mv_sas.c void *bitmap = mvi->tags; mvi 45 drivers/scsi/mvsas/mv_sas.c index = find_first_zero_bit(bitmap, mvi->tags_num); mvi 47 drivers/scsi/mvsas/mv_sas.c if (tag >= mvi->tags_num) mvi 49 drivers/scsi/mvsas/mv_sas.c mvs_tag_set(mvi, tag); mvi 54 drivers/scsi/mvsas/mv_sas.c void mvs_tag_init(struct mvs_info *mvi) mvi 57 drivers/scsi/mvsas/mv_sas.c for (i = 0; i < mvi->tags_num; ++i) mvi 58 drivers/scsi/mvsas/mv_sas.c mvs_tag_clear(mvi, i); mvi 65 drivers/scsi/mvsas/mv_sas.c struct mvs_info *mvi = NULL; mvi 83 drivers/scsi/mvsas/mv_sas.c mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[hi]; mvi 85 drivers/scsi/mvsas/mv_sas.c return mvi; mvi 93 drivers/scsi/mvsas/mv_sas.c struct mvs_info *mvi = mvi_dev->mvi_info; mvi 107 drivers/scsi/mvsas/mv_sas.c phyno[n] = (j >= mvi->chip->n_phy) ? mvi 108 drivers/scsi/mvsas/mv_sas.c (j - mvi->chip->n_phy) : j; mvi 119 drivers/scsi/mvsas/mv_sas.c struct mvs_device *mvs_find_dev_by_reg_set(struct mvs_info *mvi, mvi 124 drivers/scsi/mvsas/mv_sas.c if (mvi->devices[dev_no].taskfileset == MVS_ID_NOT_MAPPED) mvi 127 drivers/scsi/mvsas/mv_sas.c if (mvi->devices[dev_no].taskfileset == reg_set) mvi 128 drivers/scsi/mvsas/mv_sas.c return &mvi->devices[dev_no]; mvi 133 drivers/scsi/mvsas/mv_sas.c static inline void mvs_free_reg_set(struct mvs_info *mvi, mvi 142 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->free_reg_set(mvi, &dev->taskfileset); mvi 145 drivers/scsi/mvsas/mv_sas.c static inline u8 mvs_assign_reg_set(struct mvs_info *mvi, mvi 150 drivers/scsi/mvsas/mv_sas.c return MVS_CHIP_DISP->assign_reg_set(mvi, &dev->taskfileset); mvi 153 drivers/scsi/mvsas/mv_sas.c void mvs_phys_reset(struct mvs_info *mvi, u32 phy_mask, int hard) mvi 159 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->phy_reset(mvi, no, hard); mvi 169 drivers/scsi/mvsas/mv_sas.c struct mvs_info *mvi = NULL; mvi 177 drivers/scsi/mvsas/mv_sas.c mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[hi]; mvi 181 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->phy_set_link_rate(mvi, phy_id, funcdata); mvi 185 drivers/scsi/mvsas/mv_sas.c tmp = MVS_CHIP_DISP->read_phy_ctl(mvi, phy_id); mvi 188 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->phy_reset(mvi, phy_id, MVS_HARD_RESET); mvi 192 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->phy_enable(mvi, phy_id); mvi 193 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->phy_reset(mvi, phy_id, MVS_SOFT_RESET); mvi 197 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->phy_disable(mvi, phy_id); mvi 207 drivers/scsi/mvsas/mv_sas.c void mvs_set_sas_addr(struct mvs_info *mvi, int port_id, u32 off_lo, mvi 213 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_cfg_addr(mvi, port_id, off_lo); mvi 214 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_cfg_data(mvi, port_id, lo); mvi 215 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_cfg_addr(mvi, port_id, off_hi); mvi 216 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_cfg_data(mvi, port_id, hi); mvi 219 drivers/scsi/mvsas/mv_sas.c static void mvs_bytes_dmaed(struct mvs_info *mvi, int i) mvi 221 drivers/scsi/mvsas/mv_sas.c struct mvs_phy *phy = &mvi->phy[i]; mvi 232 drivers/scsi/mvsas/mv_sas.c sas_ha = mvi->sas; mvi 255 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_cfg_addr(mvi, i, PHYR_PHY_STAT); mvi 256 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_cfg_data(mvi, i, 0x00); mvi 261 drivers/scsi/mvsas/mv_sas.c mv_dprintk("phy %d byte dmaded.\n", i + mvi->id * mvi->chip->n_phy); mvi 265 drivers/scsi/mvsas/mv_sas.c mvi->sas->notify_port_event(sas_phy, mvi 273 drivers/scsi/mvsas/mv_sas.c struct mvs_info *mvi; mvi 280 drivers/scsi/mvsas/mv_sas.c mvi = ((struct mvs_prv_info *)sha->lldd_ha)->mvi[j]; mvi 281 drivers/scsi/mvsas/mv_sas.c for (i = 0; i < mvi->chip->n_phy; ++i) mvi 282 drivers/scsi/mvsas/mv_sas.c mvs_bytes_dmaed(mvi, i); mvi 299 drivers/scsi/mvsas/mv_sas.c static int mvs_task_prep_smp(struct mvs_info *mvi, mvi 303 drivers/scsi/mvsas/mv_sas.c struct sas_ha_struct *sha = mvi->sas; mvi 316 drivers/scsi/mvsas/mv_sas.c struct mvs_slot_info *slot = &mvi->slot_info[tag]; mvi 323 drivers/scsi/mvsas/mv_sas.c elem = dma_map_sg(mvi->dev, sg_req, 1, DMA_TO_DEVICE); mvi 329 drivers/scsi/mvsas/mv_sas.c elem = dma_map_sg(mvi->dev, sg_resp, 1, DMA_FROM_DEVICE); mvi 373 drivers/scsi/mvsas/mv_sas.c if (mvi->flags & MVF_FLAG_SOC) mvi 379 drivers/scsi/mvsas/mv_sas.c slot->tx = mvi->tx_prod; mvi 380 drivers/scsi/mvsas/mv_sas.c mvi->tx[mvi->tx_prod] = cpu_to_le32((TXQ_CMD_SMP << TXQ_CMD_SHIFT) | mvi 402 drivers/scsi/mvsas/mv_sas.c dma_unmap_sg(mvi->dev, &tei->task->smp_task.smp_resp, 1, mvi 405 drivers/scsi/mvsas/mv_sas.c dma_unmap_sg(mvi->dev, &tei->task->smp_task.smp_req, 1, mvi 428 drivers/scsi/mvsas/mv_sas.c static int mvs_task_prep_ata(struct mvs_info *mvi, mvi 446 drivers/scsi/mvsas/mv_sas.c if (mvs_assign_reg_set(mvi, mvi_dev) == MVS_ID_NOT_MAPPED) { mvi 451 drivers/scsi/mvsas/mv_sas.c slot = &mvi->slot_info[tag]; mvi 452 drivers/scsi/mvsas/mv_sas.c slot->tx = mvi->tx_prod; mvi 457 drivers/scsi/mvsas/mv_sas.c mvi->tx[mvi->tx_prod] = cpu_to_le32(del_q); mvi 518 drivers/scsi/mvsas/mv_sas.c if (mvi->flags & MVF_FLAG_SOC) mvi 548 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->dma_fix(mvi, sas_port->phy_mask, mvi 554 drivers/scsi/mvsas/mv_sas.c static int mvs_task_prep_ssp(struct mvs_info *mvi, mvi 575 drivers/scsi/mvsas/mv_sas.c slot = &mvi->slot_info[tag]; mvi 580 drivers/scsi/mvsas/mv_sas.c slot->tx = mvi->tx_prod; mvi 581 drivers/scsi/mvsas/mv_sas.c mvi->tx[mvi->tx_prod] = cpu_to_le32(TXQ_MODE_I | tag | mvi 633 drivers/scsi/mvsas/mv_sas.c if (mvi->flags & MVF_FLAG_SOC) mvi 695 drivers/scsi/mvsas/mv_sas.c static int mvs_task_prep(struct sas_task *task, struct mvs_info *mvi, int is_tmf, mvi 754 drivers/scsi/mvsas/mv_sas.c n_elem = dma_map_sg(mvi->dev, mvi 767 drivers/scsi/mvsas/mv_sas.c rc = mvs_tag_alloc(mvi, &tag); mvi 771 drivers/scsi/mvsas/mv_sas.c slot = &mvi->slot_info[tag]; mvi 777 drivers/scsi/mvsas/mv_sas.c slot->buf = dma_pool_zalloc(mvi->dma_pool, GFP_ATOMIC, &slot->buf_dma); mvi 784 drivers/scsi/mvsas/mv_sas.c tei.hdr = &mvi->slot[tag]; mvi 789 drivers/scsi/mvsas/mv_sas.c rc = mvs_task_prep_smp(mvi, &tei); mvi 792 drivers/scsi/mvsas/mv_sas.c rc = mvs_task_prep_ssp(mvi, &tei, is_tmf, tmf); mvi 797 drivers/scsi/mvsas/mv_sas.c rc = mvs_task_prep_ata(mvi, &tei); mvi 800 drivers/scsi/mvsas/mv_sas.c dev_printk(KERN_ERR, mvi->dev, mvi 821 drivers/scsi/mvsas/mv_sas.c mvi->tx_prod = (mvi->tx_prod + 1) & (MVS_CHIP_SLOT_SZ - 1); mvi 826 drivers/scsi/mvsas/mv_sas.c dma_pool_free(mvi->dma_pool, slot->buf, slot->buf_dma); mvi 828 drivers/scsi/mvsas/mv_sas.c mvs_tag_free(mvi, tag); mvi 831 drivers/scsi/mvsas/mv_sas.c dev_printk(KERN_ERR, mvi->dev, "mvsas prep failed[%d]!\n", rc); mvi 834 drivers/scsi/mvsas/mv_sas.c dma_unmap_sg(mvi->dev, task->scatter, n_elem, mvi 844 drivers/scsi/mvsas/mv_sas.c struct mvs_info *mvi = NULL; mvi 849 drivers/scsi/mvsas/mv_sas.c mvi = ((struct mvs_device *)task->dev->lldd_dev)->mvi_info; mvi 851 drivers/scsi/mvsas/mv_sas.c spin_lock_irqsave(&mvi->lock, flags); mvi 852 drivers/scsi/mvsas/mv_sas.c rc = mvs_task_prep(task, mvi, is_tmf, tmf, &pass); mvi 854 drivers/scsi/mvsas/mv_sas.c dev_printk(KERN_ERR, mvi->dev, "mvsas exec failed[%d]!\n", rc); mvi 857 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->start_delivery(mvi, (mvi->tx_prod - 1) & mvi 859 drivers/scsi/mvsas/mv_sas.c spin_unlock_irqrestore(&mvi->lock, flags); mvi 869 drivers/scsi/mvsas/mv_sas.c static void mvs_slot_free(struct mvs_info *mvi, u32 rx_desc) mvi 872 drivers/scsi/mvsas/mv_sas.c mvs_tag_clear(mvi, slot_idx); mvi 875 drivers/scsi/mvsas/mv_sas.c static void mvs_slot_task_free(struct mvs_info *mvi, struct sas_task *task, mvi 884 drivers/scsi/mvsas/mv_sas.c dma_unmap_sg(mvi->dev, task->scatter, mvi 889 drivers/scsi/mvsas/mv_sas.c dma_unmap_sg(mvi->dev, &task->smp_task.smp_resp, 1, mvi 891 drivers/scsi/mvsas/mv_sas.c dma_unmap_sg(mvi->dev, &task->smp_task.smp_req, 1, mvi 904 drivers/scsi/mvsas/mv_sas.c dma_pool_free(mvi->dma_pool, slot->buf, slot->buf_dma); mvi 912 drivers/scsi/mvsas/mv_sas.c mvs_slot_free(mvi, slot_idx); mvi 915 drivers/scsi/mvsas/mv_sas.c static void mvs_update_wideport(struct mvs_info *mvi, int phy_no) mvi 917 drivers/scsi/mvsas/mv_sas.c struct mvs_phy *phy = &mvi->phy[phy_no]; mvi 923 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_cfg_addr(mvi, no, mvi 925 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_cfg_data(mvi, no, mvi 928 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_cfg_addr(mvi, no, mvi 930 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_cfg_data(mvi, no, mvi 936 drivers/scsi/mvsas/mv_sas.c static u32 mvs_is_phy_ready(struct mvs_info *mvi, int i) mvi 939 drivers/scsi/mvsas/mv_sas.c struct mvs_phy *phy = &mvi->phy[i]; mvi 942 drivers/scsi/mvsas/mv_sas.c tmp = MVS_CHIP_DISP->read_phy_ctl(mvi, i); mvi 954 drivers/scsi/mvsas/mv_sas.c mvs_update_wideport(mvi, i); mvi 964 drivers/scsi/mvsas/mv_sas.c static void *mvs_get_d2h_reg(struct mvs_info *mvi, int i, void *buf) mvi 971 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_cfg_addr(mvi, i, PHYR_SATA_SIG3); mvi 972 drivers/scsi/mvsas/mv_sas.c s[3] = cpu_to_le32(MVS_CHIP_DISP->read_port_cfg_data(mvi, i)); mvi 974 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_cfg_addr(mvi, i, PHYR_SATA_SIG2); mvi 975 drivers/scsi/mvsas/mv_sas.c s[2] = cpu_to_le32(MVS_CHIP_DISP->read_port_cfg_data(mvi, i)); mvi 977 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_cfg_addr(mvi, i, PHYR_SATA_SIG1); mvi 978 drivers/scsi/mvsas/mv_sas.c s[1] = cpu_to_le32(MVS_CHIP_DISP->read_port_cfg_data(mvi, i)); mvi 980 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_cfg_addr(mvi, i, PHYR_SATA_SIG0); mvi 981 drivers/scsi/mvsas/mv_sas.c s[0] = cpu_to_le32(MVS_CHIP_DISP->read_port_cfg_data(mvi, i)); mvi 1001 drivers/scsi/mvsas/mv_sas.c void mvs_update_phyinfo(struct mvs_info *mvi, int i, int get_st) mvi 1003 drivers/scsi/mvsas/mv_sas.c struct mvs_phy *phy = &mvi->phy[i]; mvi 1009 drivers/scsi/mvsas/mv_sas.c phy->irq_status = MVS_CHIP_DISP->read_port_irq_stat(mvi, i); mvi 1010 drivers/scsi/mvsas/mv_sas.c phy->phy_status = mvs_is_phy_ready(mvi, i); mvi 1015 drivers/scsi/mvsas/mv_sas.c struct asd_sas_phy *sas_phy = &mvi->phy[i].sas_phy; mvi 1017 drivers/scsi/mvsas/mv_sas.c oob_done = MVS_CHIP_DISP->oob_done(mvi, i); mvi 1019 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->fix_phy_info(mvi, i, id); mvi 1026 drivers/scsi/mvsas/mv_sas.c i + mvi->id * mvi->chip->n_phy; mvi 1031 drivers/scsi/mvsas/mv_sas.c mvs_get_d2h_reg(mvi, i, id); mvi 1034 drivers/scsi/mvsas/mv_sas.c dev_printk(KERN_DEBUG, mvi->dev, mvi 1036 drivers/scsi/mvsas/mv_sas.c tmp = MVS_CHIP_DISP->read_port_irq_mask(mvi, i); mvi 1037 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_irq_mask(mvi, i, mvi 1064 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->phy_work_around(mvi, i); mvi 1067 drivers/scsi/mvsas/mv_sas.c i + mvi->id * mvi->chip->n_phy, phy->att_dev_info); mvi 1069 drivers/scsi/mvsas/mv_sas.c i + mvi->id * mvi->chip->n_phy, phy->att_dev_sas_addr); mvi 1072 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_irq_stat(mvi, i, phy->irq_status); mvi 1078 drivers/scsi/mvsas/mv_sas.c struct mvs_info *mvi = NULL; int i = 0, hi; mvi 1092 drivers/scsi/mvsas/mv_sas.c mvi = ((struct mvs_prv_info *)sas_ha->lldd_ha)->mvi[hi]; mvi 1093 drivers/scsi/mvsas/mv_sas.c if (i >= mvi->chip->n_phy) mvi 1094 drivers/scsi/mvsas/mv_sas.c port = &mvi->port[i - mvi->chip->n_phy]; mvi 1096 drivers/scsi/mvsas/mv_sas.c port = &mvi->port[i]; mvi 1098 drivers/scsi/mvsas/mv_sas.c spin_lock_irqsave(&mvi->lock, flags); mvi 1105 drivers/scsi/mvsas/mv_sas.c mvs_update_wideport(mvi, sas_phy->id); mvi 1109 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_cfg_addr(mvi, i, PHYR_PHY_STAT); mvi 1110 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_cfg_data(mvi, i, 0x04); mvi 1114 drivers/scsi/mvsas/mv_sas.c spin_unlock_irqrestore(&mvi->lock, flags); mvi 1121 drivers/scsi/mvsas/mv_sas.c struct mvs_info *mvi = phy->mvi; mvi 1125 drivers/scsi/mvsas/mv_sas.c while (phy != &mvi->phy[phy_no]) { mvi 1131 drivers/scsi/mvsas/mv_sas.c mvs_do_release_task(phy->mvi, phy_no, dev); mvi 1146 drivers/scsi/mvsas/mv_sas.c static struct mvs_device *mvs_alloc_dev(struct mvs_info *mvi) mvi 1150 drivers/scsi/mvsas/mv_sas.c if (mvi->devices[dev].dev_type == SAS_PHY_UNUSED) { mvi 1151 drivers/scsi/mvsas/mv_sas.c mvi->devices[dev].device_id = dev; mvi 1152 drivers/scsi/mvsas/mv_sas.c return &mvi->devices[dev]; mvi 1177 drivers/scsi/mvsas/mv_sas.c struct mvs_info *mvi = NULL; mvi 1181 drivers/scsi/mvsas/mv_sas.c mvi = mvs_find_dev_mvi(dev); mvi 1184 drivers/scsi/mvsas/mv_sas.c spin_lock_irqsave(&mvi->lock, flags); mvi 1186 drivers/scsi/mvsas/mv_sas.c mvi_device = mvs_alloc_dev(mvi); mvi 1194 drivers/scsi/mvsas/mv_sas.c mvi_device->mvi_info = mvi; mvi 1220 drivers/scsi/mvsas/mv_sas.c spin_unlock_irqrestore(&mvi->lock, flags); mvi 1233 drivers/scsi/mvsas/mv_sas.c struct mvs_info *mvi; mvi 1240 drivers/scsi/mvsas/mv_sas.c mvi = mvi_dev->mvi_info; mvi 1242 drivers/scsi/mvsas/mv_sas.c spin_lock_irqsave(&mvi->lock, flags); mvi 1246 drivers/scsi/mvsas/mv_sas.c mvs_release_task(mvi, dev); mvi 1247 drivers/scsi/mvsas/mv_sas.c mvs_free_reg_set(mvi, mvi_dev); mvi 1253 drivers/scsi/mvsas/mv_sas.c spin_unlock_irqrestore(&mvi->lock, flags); mvi 1389 drivers/scsi/mvsas/mv_sas.c struct mvs_info *mvi = mvi_dev->mvi_info; mvi 1395 drivers/scsi/mvsas/mv_sas.c spin_lock_irqsave(&mvi->lock, flags); mvi 1396 drivers/scsi/mvsas/mv_sas.c mvs_release_task(mvi, dev); mvi 1397 drivers/scsi/mvsas/mv_sas.c spin_unlock_irqrestore(&mvi->lock, flags); mvi 1410 drivers/scsi/mvsas/mv_sas.c struct mvs_info *mvi = mvi_dev->mvi_info; mvi 1420 drivers/scsi/mvsas/mv_sas.c spin_lock_irqsave(&mvi->lock, flags); mvi 1421 drivers/scsi/mvsas/mv_sas.c mvs_release_task(mvi, dev); mvi 1422 drivers/scsi/mvsas/mv_sas.c spin_unlock_irqrestore(&mvi->lock, flags); mvi 1438 drivers/scsi/mvsas/mv_sas.c struct mvs_info *mvi = mvi_dev->mvi_info; mvi 1441 drivers/scsi/mvsas/mv_sas.c rc = mvs_find_tag(mvi, task, &tag); mvi 1471 drivers/scsi/mvsas/mv_sas.c struct mvs_info *mvi; mvi 1481 drivers/scsi/mvsas/mv_sas.c mvi = mvi_dev->mvi_info; mvi 1495 drivers/scsi/mvsas/mv_sas.c rc = mvs_find_tag(mvi, task, &tag); mvi 1514 drivers/scsi/mvsas/mv_sas.c slot_no = (u32) (slot - mvi->slot_info); mvi 1515 drivers/scsi/mvsas/mv_sas.c spin_lock_irqsave(&mvi->lock, flags); mvi 1516 drivers/scsi/mvsas/mv_sas.c mvs_slot_complete(mvi, slot_no, 1); mvi 1517 drivers/scsi/mvsas/mv_sas.c spin_unlock_irqrestore(&mvi->lock, flags); mvi 1525 drivers/scsi/mvsas/mv_sas.c u32 slot_idx = (u32)(slot - mvi->slot_info); mvi 1528 drivers/scsi/mvsas/mv_sas.c mvi, task, slot, slot_idx); mvi 1530 drivers/scsi/mvsas/mv_sas.c mvs_slot_task_free(mvi, task, slot, slot_idx); mvi 1575 drivers/scsi/mvsas/mv_sas.c static int mvs_sata_done(struct mvs_info *mvi, struct sas_task *task, mvi 1649 drivers/scsi/mvsas/mv_sas.c static int mvs_slot_err(struct mvs_info *mvi, struct sas_task *task, mvi 1652 drivers/scsi/mvsas/mv_sas.c struct mvs_slot_info *slot = &mvi->slot_info[slot_idx]; mvi 1660 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->issue_stop(mvi, type, tfs); mvi 1662 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->command_active(mvi, slot_idx); mvi 1673 drivers/scsi/mvsas/mv_sas.c sas_ssp_task_response(mvi->dev, task, iu); mvi 1690 drivers/scsi/mvsas/mv_sas.c mvs_sata_done(mvi, task, slot_idx, err_dw0); mvi 1700 drivers/scsi/mvsas/mv_sas.c int mvs_slot_complete(struct mvs_info *mvi, u32 rx_desc, u32 flags) mvi 1703 drivers/scsi/mvsas/mv_sas.c struct mvs_slot_info *slot = &mvi->slot_info[slot_idx]; mvi 1736 drivers/scsi/mvsas/mv_sas.c mvs_free_reg_set(mvi, mvi_dev); mvi 1738 drivers/scsi/mvsas/mv_sas.c mvs_slot_task_free(mvi, task, slot, slot_idx); mvi 1760 drivers/scsi/mvsas/mv_sas.c tstat->stat = mvs_slot_err(mvi, task, slot_idx); mvi 1776 drivers/scsi/mvsas/mv_sas.c sas_ssp_task_response(mvi->dev, task, iu); mvi 1795 drivers/scsi/mvsas/mv_sas.c tstat->stat = mvs_sata_done(mvi, task, slot_idx, 0); mvi 1813 drivers/scsi/mvsas/mv_sas.c mvs_free_reg_set(mvi, mvi_dev); mvi 1815 drivers/scsi/mvsas/mv_sas.c mvs_slot_task_free(mvi, task, slot, slot_idx); mvi 1818 drivers/scsi/mvsas/mv_sas.c spin_unlock(&mvi->lock); mvi 1822 drivers/scsi/mvsas/mv_sas.c spin_lock(&mvi->lock); mvi 1827 drivers/scsi/mvsas/mv_sas.c void mvs_do_release_task(struct mvs_info *mvi, mvi 1835 drivers/scsi/mvsas/mv_sas.c phy = &mvi->phy[phy_no]; mvi 1840 drivers/scsi/mvsas/mv_sas.c mvs_int_rx(mvi, false); mvi 1846 drivers/scsi/mvsas/mv_sas.c slot_idx = (u32) (slot - mvi->slot_info); mvi 1854 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->command_active(mvi, slot_idx); mvi 1856 drivers/scsi/mvsas/mv_sas.c mvs_slot_complete(mvi, slot_idx, 1); mvi 1860 drivers/scsi/mvsas/mv_sas.c void mvs_release_task(struct mvs_info *mvi, mvi 1866 drivers/scsi/mvsas/mv_sas.c mvs_do_release_task(mvi, phyno[i], dev); mvi 1880 drivers/scsi/mvsas/mv_sas.c struct mvs_info *mvi = mwq->mvi; mvi 1883 drivers/scsi/mvsas/mv_sas.c struct sas_ha_struct *sas_ha = mvi->sas; mvi 1884 drivers/scsi/mvsas/mv_sas.c struct mvs_phy *phy = &mvi->phy[phy_no]; mvi 1887 drivers/scsi/mvsas/mv_sas.c spin_lock_irqsave(&mvi->lock, flags); mvi 1893 drivers/scsi/mvsas/mv_sas.c tmp = MVS_CHIP_DISP->read_phy_ctl(mvi, phy_no); mvi 1902 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->detect_porttype(mvi, phy_no); mvi 1903 drivers/scsi/mvsas/mv_sas.c mvs_update_phyinfo(mvi, phy_no, 1); mvi 1904 drivers/scsi/mvsas/mv_sas.c mvs_bytes_dmaed(mvi, phy_no); mvi 1916 drivers/scsi/mvsas/mv_sas.c spin_unlock_irqrestore(&mvi->lock, flags); mvi 1920 drivers/scsi/mvsas/mv_sas.c static int mvs_handle_event(struct mvs_info *mvi, void *data, int handler) mvi 1927 drivers/scsi/mvsas/mv_sas.c mwq->mvi = mvi; mvi 1931 drivers/scsi/mvsas/mv_sas.c list_add_tail(&mwq->entry, &mvi->wq_list); mvi 1942 drivers/scsi/mvsas/mv_sas.c struct mvs_info *mvi = phy->mvi; mvi 1945 drivers/scsi/mvsas/mv_sas.c for (phy_no = 0; phy_no < mvi->chip->n_phy; phy_no++) { mvi 1946 drivers/scsi/mvsas/mv_sas.c if (&mvi->phy[phy_no] == phy) { mvi 1948 drivers/scsi/mvsas/mv_sas.c phy_no+mvi->id*mvi->chip->n_phy); mvi 1949 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->phy_reset(mvi, phy_no, MVS_HARD_RESET); mvi 1954 drivers/scsi/mvsas/mv_sas.c void mvs_int_port(struct mvs_info *mvi, int phy_no, u32 events) mvi 1957 drivers/scsi/mvsas/mv_sas.c struct mvs_phy *phy = &mvi->phy[phy_no]; mvi 1959 drivers/scsi/mvsas/mv_sas.c phy->irq_status = MVS_CHIP_DISP->read_port_irq_stat(mvi, phy_no); mvi 1960 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_irq_stat(mvi, phy_no, phy->irq_status); mvi 1961 drivers/scsi/mvsas/mv_sas.c mv_dprintk("phy %d ctrl sts=0x%08X.\n", phy_no+mvi->id*mvi->chip->n_phy, mvi 1962 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->read_phy_ctl(mvi, phy_no)); mvi 1963 drivers/scsi/mvsas/mv_sas.c mv_dprintk("phy %d irq sts = 0x%08X\n", phy_no+mvi->id*mvi->chip->n_phy, mvi 1973 drivers/scsi/mvsas/mv_sas.c phy_no + mvi->id*mvi->chip->n_phy); mvi 1981 drivers/scsi/mvsas/mv_sas.c mvs_do_release_task(mvi, phy_no, NULL); mvi 1983 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->clear_srs_irq(mvi, 0, 1); mvi 1984 drivers/scsi/mvsas/mv_sas.c mvs_handle_event(mvi, mvi 1987 drivers/scsi/mvsas/mv_sas.c ready = mvs_is_phy_ready(mvi, phy_no); mvi 1990 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->stp_reset(mvi, mvi 1993 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->phy_reset(mvi, mvi 2001 drivers/scsi/mvsas/mv_sas.c tmp = MVS_CHIP_DISP->read_port_irq_mask(mvi, phy_no); mvi 2002 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_irq_mask(mvi, phy_no, mvi 2011 drivers/scsi/mvsas/mv_sas.c phy->phy_status = mvs_is_phy_ready(mvi, phy_no); mvi 2015 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->detect_porttype(mvi, phy_no); mvi 2018 drivers/scsi/mvsas/mv_sas.c mvi, phy_no); mvi 2020 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->write_port_irq_mask(mvi, mvi 2023 drivers/scsi/mvsas/mv_sas.c mvs_update_phyinfo(mvi, phy_no, 0); mvi 2025 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->phy_reset(mvi, phy_no, MVS_PHY_TUNE); mvi 2029 drivers/scsi/mvsas/mv_sas.c mvs_bytes_dmaed(mvi, phy_no); mvi 2037 drivers/scsi/mvsas/mv_sas.c phy_no + mvi->id*mvi->chip->n_phy); mvi 2041 drivers/scsi/mvsas/mv_sas.c phy_no + mvi->id*mvi->chip->n_phy); mvi 2042 drivers/scsi/mvsas/mv_sas.c mvs_handle_event(mvi, (void *)(unsigned long)phy_no, mvi 2047 drivers/scsi/mvsas/mv_sas.c int mvs_int_rx(struct mvs_info *mvi, bool self_clear) mvi 2057 drivers/scsi/mvsas/mv_sas.c rx_prod_idx = mvi->rx_cons; mvi 2058 drivers/scsi/mvsas/mv_sas.c mvi->rx_cons = le32_to_cpu(mvi->rx[0]); mvi 2059 drivers/scsi/mvsas/mv_sas.c if (mvi->rx_cons == 0xfff) /* h/w hasn't touched RX ring yet */ mvi 2066 drivers/scsi/mvsas/mv_sas.c if (unlikely(mvi->rx_cons == rx_prod_idx)) mvi 2067 drivers/scsi/mvsas/mv_sas.c mvi->rx_cons = MVS_CHIP_DISP->rx_update(mvi) & RX_RING_SZ_MASK; mvi 2069 drivers/scsi/mvsas/mv_sas.c if (mvi->rx_cons == rx_prod_idx) mvi 2072 drivers/scsi/mvsas/mv_sas.c while (mvi->rx_cons != rx_prod_idx) { mvi 2075 drivers/scsi/mvsas/mv_sas.c rx_desc = le32_to_cpu(mvi->rx[rx_prod_idx + 1]); mvi 2078 drivers/scsi/mvsas/mv_sas.c mvs_slot_complete(mvi, rx_desc, 0); mvi 2083 drivers/scsi/mvsas/mv_sas.c mvs_slot_complete(mvi, rx_desc, 0); mvi 2085 drivers/scsi/mvsas/mv_sas.c mvs_slot_free(mvi, rx_desc); mvi 2090 drivers/scsi/mvsas/mv_sas.c MVS_CHIP_DISP->int_full(mvi); mvi 2098 drivers/scsi/mvsas/mv_sas.c struct mvs_info *mvi = mvs_prv->mvi[0]; mvi 63 drivers/scsi/mvsas/mv_sas.h ((void *) mvi->rx_fis + 0x100 * id) mvi 65 drivers/scsi/mvsas/mv_sas.h ((void *) mvi->rx_fis + mvi->chip->fis_offs + 0x100 * reg_set) mvi 91 drivers/scsi/mvsas/mv_sas.h int (*chip_init)(struct mvs_info *mvi); mvi 92 drivers/scsi/mvsas/mv_sas.h int (*spi_init)(struct mvs_info *mvi); mvi 93 drivers/scsi/mvsas/mv_sas.h int (*chip_ioremap)(struct mvs_info *mvi); mvi 94 drivers/scsi/mvsas/mv_sas.h void (*chip_iounmap)(struct mvs_info *mvi); mvi 95 drivers/scsi/mvsas/mv_sas.h irqreturn_t (*isr)(struct mvs_info *mvi, int irq, u32 stat); mvi 96 drivers/scsi/mvsas/mv_sas.h u32 (*isr_status)(struct mvs_info *mvi, int irq); mvi 97 drivers/scsi/mvsas/mv_sas.h void (*interrupt_enable)(struct mvs_info *mvi); mvi 98 drivers/scsi/mvsas/mv_sas.h void (*interrupt_disable)(struct mvs_info *mvi); mvi 100 drivers/scsi/mvsas/mv_sas.h u32 (*read_phy_ctl)(struct mvs_info *mvi, u32 port); mvi 101 drivers/scsi/mvsas/mv_sas.h void (*write_phy_ctl)(struct mvs_info *mvi, u32 port, u32 val); mvi 103 drivers/scsi/mvsas/mv_sas.h u32 (*read_port_cfg_data)(struct mvs_info *mvi, u32 port); mvi 104 drivers/scsi/mvsas/mv_sas.h void (*write_port_cfg_data)(struct mvs_info *mvi, u32 port, u32 val); mvi 105 drivers/scsi/mvsas/mv_sas.h void (*write_port_cfg_addr)(struct mvs_info *mvi, u32 port, u32 addr); mvi 107 drivers/scsi/mvsas/mv_sas.h u32 (*read_port_vsr_data)(struct mvs_info *mvi, u32 port); mvi 108 drivers/scsi/mvsas/mv_sas.h void (*write_port_vsr_data)(struct mvs_info *mvi, u32 port, u32 val); mvi 109 drivers/scsi/mvsas/mv_sas.h void (*write_port_vsr_addr)(struct mvs_info *mvi, u32 port, u32 addr); mvi 111 drivers/scsi/mvsas/mv_sas.h u32 (*read_port_irq_stat)(struct mvs_info *mvi, u32 port); mvi 112 drivers/scsi/mvsas/mv_sas.h void (*write_port_irq_stat)(struct mvs_info *mvi, u32 port, u32 val); mvi 114 drivers/scsi/mvsas/mv_sas.h u32 (*read_port_irq_mask)(struct mvs_info *mvi, u32 port); mvi 115 drivers/scsi/mvsas/mv_sas.h void (*write_port_irq_mask)(struct mvs_info *mvi, u32 port, u32 val); mvi 117 drivers/scsi/mvsas/mv_sas.h void (*command_active)(struct mvs_info *mvi, u32 slot_idx); mvi 118 drivers/scsi/mvsas/mv_sas.h void (*clear_srs_irq)(struct mvs_info *mvi, u8 reg_set, u8 clear_all); mvi 119 drivers/scsi/mvsas/mv_sas.h void (*issue_stop)(struct mvs_info *mvi, enum mvs_port_type type, mvi 121 drivers/scsi/mvsas/mv_sas.h void (*start_delivery)(struct mvs_info *mvi, u32 tx); mvi 122 drivers/scsi/mvsas/mv_sas.h u32 (*rx_update)(struct mvs_info *mvi); mvi 123 drivers/scsi/mvsas/mv_sas.h void (*int_full)(struct mvs_info *mvi); mvi 124 drivers/scsi/mvsas/mv_sas.h u8 (*assign_reg_set)(struct mvs_info *mvi, u8 *tfs); mvi 125 drivers/scsi/mvsas/mv_sas.h void (*free_reg_set)(struct mvs_info *mvi, u8 *tfs); mvi 129 drivers/scsi/mvsas/mv_sas.h void (*detect_porttype)(struct mvs_info *mvi, int i); mvi 130 drivers/scsi/mvsas/mv_sas.h int (*oob_done)(struct mvs_info *mvi, int i); mvi 131 drivers/scsi/mvsas/mv_sas.h void (*fix_phy_info)(struct mvs_info *mvi, int i, mvi 133 drivers/scsi/mvsas/mv_sas.h void (*phy_work_around)(struct mvs_info *mvi, int i); mvi 134 drivers/scsi/mvsas/mv_sas.h void (*phy_set_link_rate)(struct mvs_info *mvi, u32 phy_id, mvi 137 drivers/scsi/mvsas/mv_sas.h void (*phy_disable)(struct mvs_info *mvi, u32 phy_id); mvi 138 drivers/scsi/mvsas/mv_sas.h void (*phy_enable)(struct mvs_info *mvi, u32 phy_id); mvi 139 drivers/scsi/mvsas/mv_sas.h void (*phy_reset)(struct mvs_info *mvi, u32 phy_id, int hard); mvi 140 drivers/scsi/mvsas/mv_sas.h void (*stp_reset)(struct mvs_info *mvi, u32 phy_id); mvi 141 drivers/scsi/mvsas/mv_sas.h void (*clear_active_cmds)(struct mvs_info *mvi); mvi 142 drivers/scsi/mvsas/mv_sas.h u32 (*spi_read_data)(struct mvs_info *mvi); mvi 143 drivers/scsi/mvsas/mv_sas.h void (*spi_write_data)(struct mvs_info *mvi, u32 data); mvi 144 drivers/scsi/mvsas/mv_sas.h int (*spi_buildcmd)(struct mvs_info *mvi, mvi 151 drivers/scsi/mvsas/mv_sas.h int (*spi_issuecmd)(struct mvs_info *mvi, u32 cmd); mvi 152 drivers/scsi/mvsas/mv_sas.h int (*spi_waitdataready)(struct mvs_info *mvi, u32 timeout); mvi 153 drivers/scsi/mvsas/mv_sas.h void (*dma_fix)(struct mvs_info *mvi, u32 phy_mask, mvi 155 drivers/scsi/mvsas/mv_sas.h void (*tune_interrupt)(struct mvs_info *mvi, u32 time); mvi 156 drivers/scsi/mvsas/mv_sas.h void (*non_spec_ncq_error)(struct mvs_info *mvi); mvi 172 drivers/scsi/mvsas/mv_sas.h #define MVS_MAX_SG (1U << mvi->chip->sg_width) mvi 173 drivers/scsi/mvsas/mv_sas.h #define MVS_CHIP_SLOT_SZ (1U << mvi->chip->slot_width) mvi 175 drivers/scsi/mvsas/mv_sas.h (mvi->chip->fis_offs + (mvi->chip->fis_count * 0x100)) mvi 176 drivers/scsi/mvsas/mv_sas.h #define MVS_CHIP_DISP (mvi->chip->dispatch) mvi 203 drivers/scsi/mvsas/mv_sas.h struct mvs_info *mvi; mvi 405 drivers/scsi/mvsas/mv_sas.h struct mvs_info *mvi[2]; mvi 411 drivers/scsi/mvsas/mv_sas.h struct mvs_info *mvi; mvi 427 drivers/scsi/mvsas/mv_sas.h void mvs_tag_clear(struct mvs_info *mvi, u32 tag); mvi 428 drivers/scsi/mvsas/mv_sas.h void mvs_tag_free(struct mvs_info *mvi, u32 tag); mvi 429 drivers/scsi/mvsas/mv_sas.h void mvs_tag_set(struct mvs_info *mvi, unsigned int tag); mvi 430 drivers/scsi/mvsas/mv_sas.h int mvs_tag_alloc(struct mvs_info *mvi, u32 *tag_out); mvi 431 drivers/scsi/mvsas/mv_sas.h void mvs_tag_init(struct mvs_info *mvi); mvi 433 drivers/scsi/mvsas/mv_sas.h int mvs_ioremap(struct mvs_info *mvi, int bar, int bar_ex); mvi 434 drivers/scsi/mvsas/mv_sas.h void mvs_phys_reset(struct mvs_info *mvi, u32 phy_mask, int hard); mvi 437 drivers/scsi/mvsas/mv_sas.h void mvs_set_sas_addr(struct mvs_info *mvi, int port_id, u32 off_lo, mvi 451 drivers/scsi/mvsas/mv_sas.h int mvs_slot_complete(struct mvs_info *mvi, u32 rx_desc, u32 flags); mvi 454 drivers/scsi/mvsas/mv_sas.h void mvs_release_task(struct mvs_info *mvi, mvi 456 drivers/scsi/mvsas/mv_sas.h void mvs_do_release_task(struct mvs_info *mvi, int phy_no, mvi 458 drivers/scsi/mvsas/mv_sas.h void mvs_int_port(struct mvs_info *mvi, int phy_no, u32 events); mvi 459 drivers/scsi/mvsas/mv_sas.h void mvs_update_phyinfo(struct mvs_info *mvi, int i, int get_st); mvi 460 drivers/scsi/mvsas/mv_sas.h int mvs_int_rx(struct mvs_info *mvi, bool self_clear); mvi 461 drivers/scsi/mvsas/mv_sas.h struct mvs_device *mvs_find_dev_by_reg_set(struct mvs_info *mvi, u8 reg_set);