Lines Matching refs:drvp
487 struct ata_drive_datas *drvp; in atabus_thread() local
489 drvp = &chp->ch_drive[i]; in atabus_thread()
491 if (drvp->drive_flags & ATA_DRIVE_TH_RESET) { in atabus_thread()
814 ata_get_params(struct ata_drive_datas *drvp, uint8_t flags, in ata_get_params() argument
818 struct ata_channel *chp = drvp->chnl_softc; in ata_get_params()
836 if (drvp->drive_type == ATA_DRIVET_ATA) { in ata_get_params()
841 } else if (drvp->drive_type == ATA_DRIVET_ATAPI) { in ata_get_params()
855 (*atac->atac_bustype_ata->ata_exec_command)(drvp, xfer); in ata_get_params()
887 ((drvp->drive_type == ATA_DRIVET_ATAPI) ? in ata_get_params()
917 ata_set_mode(struct ata_drive_datas *drvp, uint8_t mode, uint8_t flags) in ata_set_mode() argument
921 struct ata_channel *chp = drvp->chnl_softc; in ata_set_mode()
940 (*atac->atac_bustype_ata->ata_exec_command)(drvp, xfer); in ata_set_mode()
956 ata_dmaerr(struct ata_drive_datas *drvp, int flags) in ata_dmaerr() argument
958 ata_channel_lock_owned(drvp->chnl_softc); in ata_dmaerr()
967 drvp->n_dmaerrs++; in ata_dmaerr()
968 if (drvp->n_dmaerrs >= NERRS_MAX && drvp->n_xfers <= NXFER) { in ata_dmaerr()
970 ata_downgrade_mode(drvp, flags); in ata_dmaerr()
971 drvp->n_dmaerrs = NERRS_MAX-1; in ata_dmaerr()
977 aprint_error_dev(drvp->drv_softc, in ata_dmaerr()
979 drvp->n_dmaerrs, drvp->n_xfers); in ata_dmaerr()
982 drvp->n_xfers = 0; in ata_dmaerr()
985 if (drvp->n_xfers > NXFER) { in ata_dmaerr()
986 drvp->n_dmaerrs = 1; /* just got an error */ in ata_dmaerr()
987 drvp->n_xfers = 1; /* restart counting from this error */ in ata_dmaerr()
1158 struct ata_drive_datas * const drvp = &chp->ch_drive[xfer->c_drive]; in atastart() local
1168 ? drvp->drv_openings : ATA_MAX_OPENINGS; in atastart()
1195 if (drvp->drive_flags & ATA_DRIVE_RESET) { in atastart()
1196 drvp->drive_flags &= ~ATA_DRIVE_RESET; in atastart()
1197 drvp->state = 0; in atastart()
1409 struct ata_drive_datas *drvp = &chp->ch_drive[xfer->c_drive]; in ata_timo_xfer_check() local
1421 device_printf(drvp->drv_softc, in ata_timo_xfer_check()
1432 device_printf(drvp->drv_softc, in ata_timo_xfer_check()
1468 ata_kill_pending(struct ata_drive_datas *drvp) in ata_kill_pending() argument
1470 struct ata_channel * const chp = drvp->chnl_softc; in ata_kill_pending()
1480 if (xfer->c_drive != drvp->drive) in ata_kill_pending()
1501 if (xfer->c_drive == drvp->drive) { in ata_kill_pending()
1512 drvp->drive_flags |= ATA_DRIVE_WAITDRAIN; in ata_kill_pending()
1558 struct ata_drive_datas *drvp; in ata_thread_run() local
1581 drvp = &chp->ch_drive[drive]; in ata_thread_run()
1583 if (drvp->drive_flags & ATA_DRIVE_TH_RESET) { in ata_thread_run()
1587 drvp->drive_flags |= ATA_DRIVE_TH_RESET; in ata_thread_run()
1643 drvp = &chp->ch_drive[drive]; in ata_thread_run()
1644 (*atac->atac_bustype_ata->ata_reset_drive)(drvp, flags, NULL); in ata_thread_run()
1645 drvp->state = 0; in ata_thread_run()
1718 struct ata_drive_datas *drvp; in ata_print_modes() local
1722 drvp = &chp->ch_drive[drive]; in ata_print_modes()
1723 if (drvp->drive_type == ATA_DRIVET_NONE || in ata_print_modes()
1724 drvp->drv_softc == NULL) in ata_print_modes()
1727 device_xname(drvp->drv_softc), in ata_print_modes()
1729 chp->ch_channel, drvp->drive, drvp->PIO_mode); in ata_print_modes()
1731 if (drvp->drive_flags & ATA_DRIVE_DMA) in ata_print_modes()
1732 aprint_verbose(", DMA mode %d", drvp->DMA_mode); in ata_print_modes()
1734 if (drvp->drive_flags & ATA_DRIVE_UDMA) { in ata_print_modes()
1735 aprint_verbose(", Ultra-DMA mode %d", drvp->UDMA_mode); in ata_print_modes()
1736 if (drvp->UDMA_mode == 2) in ata_print_modes()
1738 else if (drvp->UDMA_mode == 4) in ata_print_modes()
1740 else if (drvp->UDMA_mode == 5) in ata_print_modes()
1742 else if (drvp->UDMA_mode == 6) in ata_print_modes()
1750 || (drvp->drive_flags & (ATA_DRIVE_DMA | ATA_DRIVE_UDMA)) in ata_print_modes()
1759 if (drvp->drive_flags & ATA_DRIVE_NCQ) { in ata_print_modes()
1762 (drvp->drive_flags & ATA_DRIVE_NCQ_PRIO) in ata_print_modes()
1764 } else if (drvp->drive_flags & ATA_DRIVE_WFUA) in ata_print_modes()
1780 ata_downgrade_mode(struct ata_drive_datas *drvp, int flags) in ata_downgrade_mode() argument
1782 struct ata_channel *chp = drvp->chnl_softc; in ata_downgrade_mode()
1784 device_t drv_dev = drvp->drv_softc; in ata_downgrade_mode()
1787 ata_channel_lock_owned(drvp->chnl_softc); in ata_downgrade_mode()
1790 if ((drvp->drive_flags & ATA_DRIVE_MODE) == 0 || in ata_downgrade_mode()
1803 if ((drvp->drive_flags & ATA_DRIVE_UDMA) && drvp->UDMA_mode >= 2) { in ata_downgrade_mode()
1804 drvp->UDMA_mode--; in ata_downgrade_mode()
1807 drvp->UDMA_mode); in ata_downgrade_mode()
1814 else if (drvp->drive_flags & (ATA_DRIVE_DMA | ATA_DRIVE_UDMA)) { in ata_downgrade_mode()
1815 drvp->drive_flags &= ~(ATA_DRIVE_DMA | ATA_DRIVE_UDMA); in ata_downgrade_mode()
1816 drvp->PIO_mode = drvp->PIO_cap; in ata_downgrade_mode()
1819 drvp->PIO_mode); in ata_downgrade_mode()
1836 ata_probe_caps(struct ata_drive_datas *drvp) in ata_probe_caps() argument
1839 struct ata_channel *chp = drvp->chnl_softc; in ata_probe_caps()
1841 device_t drv_dev = drvp->drv_softc; in ata_probe_caps()
1846 if (ata_get_params(drvp, AT_WAIT, ¶ms) != CMD_OK) { in ata_probe_caps()
1858 drvp->drive_flags |= ATA_DRIVE_CAP32; in ata_probe_caps()
1860 ata_get_params(drvp, AT_WAIT, ¶ms2); in ata_probe_caps()
1864 drvp->drive_flags &= ~ATA_DRIVE_CAP32; in ata_probe_caps()
1877 drvp->ata_vers = i; in ata_probe_caps()
1885 if (drvp->drive_type == ATA_DRIVET_ATAPI) in ata_probe_caps()
1886 drvp->PIO_mode = 3; in ata_probe_caps()
1916 if (ata_set_mode(drvp, 0x08 | (i + 3), in ata_probe_caps()
1931 drvp->PIO_mode = i + 3; in ata_probe_caps()
1932 drvp->PIO_cap = i + 3; in ata_probe_caps()
1944 drvp->drive_flags |= ATA_DRIVE_MODE; in ata_probe_caps()
1953 if (ata_set_mode(drvp, 0x20 | i, AT_WAIT) in ata_probe_caps()
1967 drvp->DMA_mode = i; in ata_probe_caps()
1968 drvp->DMA_cap = i; in ata_probe_caps()
1970 drvp->drive_flags |= ATA_DRIVE_DMA; in ata_probe_caps()
1985 if (ata_set_mode(drvp, 0x40 | i, in ata_probe_caps()
2008 drvp->UDMA_mode = i; in ata_probe_caps()
2009 drvp->UDMA_cap = i; in ata_probe_caps()
2011 drvp->drive_flags |= ATA_DRIVE_UDMA; in ata_probe_caps()
2021 drvp->drive_flags &= ~ATA_DRIVE_NOSTREAM; in ata_probe_caps()
2022 if (drvp->drive_type == ATA_DRIVET_ATAPI) { in ata_probe_caps()
2024 drvp->drive_flags |= ATA_DRIVE_NOSTREAM; in ata_probe_caps()
2027 drvp->drive_flags |= ATA_DRIVE_NOSTREAM; in ata_probe_caps()
2032 if (drvp->ata_vers == 0) { in ata_probe_caps()
2034 if (drvp->drive_flags & ATA_DRIVE_UDMA) in ata_probe_caps()
2035 drvp->ata_vers = 4; /* should be at last ATA-4 */ in ata_probe_caps()
2038 if (drvp->PIO_cap > 2) in ata_probe_caps()
2039 drvp->ata_vers = 2; /* should be at last ATA-2 */ in ata_probe_caps()
2044 drvp->PIO_mode = in ata_probe_caps()
2046 drvp->drive_flags |= ATA_DRIVE_MODE; in ata_probe_caps()
2058 drvp->drive_flags &= ~ATA_DRIVE_DMA; in ata_probe_caps()
2060 drvp->DMA_mode = (cf_flags & ATA_CONFIG_DMA_MODES) >> in ata_probe_caps()
2062 drvp->drive_flags |= ATA_DRIVE_DMA | ATA_DRIVE_MODE; in ata_probe_caps()
2071 if (drvp->drive_flags & ATA_DRIVE_DMA) { in ata_probe_caps()
2074 drvp->drive_flags |= ATA_DRIVE_WFUA; in ata_probe_caps()
2082 drvp->drv_openings = 1; in ata_probe_caps()
2085 drvp->drive_flags |= ATA_DRIVE_NCQ; in ata_probe_caps()
2086 drvp->drv_openings = in ata_probe_caps()
2088 aprint_verbose("%s NCQ (%d tags)", sep, drvp->drv_openings); in ata_probe_caps()
2092 drvp->drive_flags |= ATA_DRIVE_NCQ_PRIO; in ata_probe_caps()
2107 drvp->drive_flags &= ~ATA_DRIVE_UDMA; in ata_probe_caps()
2109 drvp->UDMA_mode = (cf_flags & ATA_CONFIG_UDMA_MODES) >> in ata_probe_caps()
2111 drvp->drive_flags |= ATA_DRIVE_UDMA | ATA_DRIVE_MODE; in ata_probe_caps()