Lines Matching +full:dma +full:- +full:33 +full:bits
1 // SPDX-License-Identifier: GPL-2.0-only
3 * pata_radisys.c - Intel PATA/SATA controllers
11 * of the original PIIX. It does however support UDMA 33/66 per channel
30 * radisys_set_piomode - Initialize host controller PATA PIO timings
42 unsigned int pio = adev->pio_mode - XFER_PIO_0; in radisys_set_piomode()
43 struct pci_dev *dev = to_pci_dev(ap->host->dev); in radisys_set_piomode()
48 * See Intel Document 298600-004 for the timing programming rules in radisys_set_piomode()
69 drive timing bits */ in radisys_set_piomode()
71 idetm_data |= (control << (4 * adev->devno)); in radisys_set_piomode()
77 ap->private_data = adev; in radisys_set_piomode()
81 * radisys_set_dmamode - Initialize host controller PATA DMA timings
93 struct pci_dev *dev = to_pci_dev(ap->host->dev); in radisys_set_dmamode()
112 if (adev->dma_mode < XFER_UDMA_0) { in radisys_set_dmamode()
113 unsigned int mwdma = adev->dma_mode - XFER_MW_DMA_0; in radisys_set_dmamode()
117 int pio = needed_pio[mwdma] - XFER_PIO_0; in radisys_set_dmamode()
123 if (adev->pio_mode < needed_pio[mwdma]) in radisys_set_dmamode()
126 /* Mask out the relevant control and timing bits we will load. Also in radisys_set_dmamode()
130 idetm_data |= control << (4 * adev->devno); in radisys_set_dmamode()
133 udma_enable &= ~(1 << adev->devno); in radisys_set_dmamode()
137 /* UDMA66 on: UDMA 33 and 66 are switchable via register 0x4A */ in radisys_set_dmamode()
141 if (adev->xfer_mode == XFER_UDMA_2) in radisys_set_dmamode()
142 udma_mode &= ~(2 << (adev->devno * 4)); in radisys_set_dmamode()
144 udma_mode |= (2 << (adev->devno * 4)); in radisys_set_dmamode()
148 udma_enable |= (1 << adev->devno); in radisys_set_dmamode()
154 ap->private_data = adev; in radisys_set_dmamode()
158 * radisys_qc_issue - command issue
170 struct ata_port *ap = qc->ap; in radisys_qc_issue()
171 struct ata_device *adev = qc->dev; in radisys_qc_issue()
173 if (adev != ap->private_data) { in radisys_qc_issue()
175 if (adev->dma_mode < XFER_UDMA_0 || !ata_dma_enabled(adev)) { in radisys_qc_issue()
178 else if (adev->pio_mode) in radisys_qc_issue()
200 * radisys_init_one - Register PIIX ATA PCI device with kernel services
211 * Zero on success, or -ERRNO value.
225 ata_print_version_once(&pdev->dev, DRV_VERSION); in radisys_init_one()
250 MODULE_DESCRIPTION("SCSI low-level driver for Radisys R82600 controllers");