Lines Matching +full:pio +full:- +full:mode
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
4 * Copyright (c) 1998 - 2008 Søren Schmidt <sos@FreeBSD.org>
48 #include <dev/ata/ata-all.h>
49 #include <dev/ata/ata-pci.h>
56 static int ata_acard_850_setmode(device_t dev, int target, int mode);
57 static int ata_acard_86X_setmode(device_t dev, int target, int mode);
80 if (!(ctlr->chip = ata_match_chip(dev, ids))) in ata_acard_probe()
84 ctlr->chipinit = ata_acard_chipinit; in ata_acard_probe()
96 ctlr->ch_attach = ata_acard_ch_attach; in ata_acard_chipinit()
97 ctlr->ch_detach = ata_pci_ch_detach; in ata_acard_chipinit()
98 if (ctlr->chip->cfg1 == ATP_OLD) { in ata_acard_chipinit()
99 ctlr->setmode = ata_acard_850_setmode; in ata_acard_chipinit()
101 ctlr->channels = 1; in ata_acard_chipinit()
105 ctlr->setmode = ata_acard_86X_setmode; in ata_acard_chipinit()
118 ch->hw.status = ata_acard_status; in ata_acard_ch_attach()
119 ch->flags |= ATA_NO_ATAPI_DMA; in ata_acard_ch_attach()
128 if (ch->dma.flags & ATA_DMA_ACTIVE) { in ata_acard_status()
149 ata_acard_850_setmode(device_t dev, int target, int mode) in ata_acard_850_setmode() argument
154 int devno = (ch->unit << 1) + target; in ata_acard_850_setmode()
156 mode = min(mode, ctlr->chip->max_dma); in ata_acard_850_setmode()
157 /* XXX SOS missing WDMA0+1 + PIO modes */ in ata_acard_850_setmode()
158 if (mode >= ATA_WDMA2) { in ata_acard_850_setmode()
162 if (mode >= ATA_UDMA0) in ata_acard_850_setmode()
163 reg54 |= (((mode & ATA_MODE_MASK) + 1) << (devno << 1)); in ata_acard_850_setmode()
168 /* we could set PIO mode timings, but we assume the BIOS did that */ in ata_acard_850_setmode()
169 return (mode); in ata_acard_850_setmode()
173 ata_acard_86X_setmode(device_t dev, int target, int mode) in ata_acard_86X_setmode() argument
178 int devno = (ch->unit << 1) + target; in ata_acard_86X_setmode()
180 mode = min(mode, ctlr->chip->max_dma); in ata_acard_86X_setmode()
181 /* XXX SOS missing WDMA0+1 + PIO modes */ in ata_acard_86X_setmode()
182 if (mode >= ATA_WDMA2) { in ata_acard_86X_setmode()
186 if (mode >= ATA_UDMA0) in ata_acard_86X_setmode()
187 reg44 |= (((mode & ATA_MODE_MASK) + 1) << (devno << 2)); in ata_acard_86X_setmode()
192 /* we could set PIO mode timings, but we assume the BIOS did that */ in ata_acard_86X_setmode()
193 return (mode); in ata_acard_86X_setmode()