Lines Matching +full:udma +full:- +full:c
2 * pata_hpt3x3 - HPT3x3 driver
3 * (c) Copyright 2005-2006 Red Hat
9 * linux/drivers/ide/pci/hpt34x.c Version 0.40 Sept 10, 2002
10 * Copyright (C) 1998-2000 Andre Hedrick <andre@linux-ide.org>
28 * hpt3x3_set_piomode - PIO setup
33 * all we have to do is clear the MWDMA and UDMA bits then load the
39 struct pci_dev *pdev = to_pci_dev(ap->host->dev); in hpt3x3_set_piomode()
41 int dn = 2 * ap->port_no + adev->devno; in hpt3x3_set_piomode()
47 r1 |= (adev->pio_mode - XFER_PIO_0) << (3 * dn); in hpt3x3_set_piomode()
48 r2 &= ~(0x11 << dn); /* Clear MWDMA and UDMA bits */ in hpt3x3_set_piomode()
56 * hpt3x3_set_dmamode - DMA timing setup
60 * Set up the channel for MWDMA or UDMA modes. Much the same as with
61 * PIO, load the mode number and then set MWDMA or UDMA flag.
63 * 0x44 : bit 0-2 master mode, 3-5 slave mode, etc
64 * 0x48 : bit 4/0 DMA/UDMA bit 5/1 for slave etc
69 struct pci_dev *pdev = to_pci_dev(ap->host->dev); in hpt3x3_set_dmamode()
71 int dn = 2 * ap->port_no + adev->devno; in hpt3x3_set_dmamode()
72 int mode_num = adev->dma_mode & 0x0F; in hpt3x3_set_dmamode()
79 r2 &= ~(0x11 << dn); /* Clear MWDMA and UDMA bits */ in hpt3x3_set_dmamode()
81 if (adev->dma_mode >= XFER_UDMA_0) in hpt3x3_set_dmamode()
91 * hpt3x3_freeze - DMA workaround
100 void __iomem *mmio = ap->ioaddr.bmdma_addr; in hpt3x3_freeze()
109 * hpt3x3_bmdma_setup - DMA workaround
118 struct ata_port *ap = qc->ap; in hpt3x3_bmdma_setup()
119 u8 r = ioread8(ap->ioaddr.bmdma_addr + ATA_DMA_STATUS); in hpt3x3_bmdma_setup()
121 iowrite8(r, ap->ioaddr.bmdma_addr + ATA_DMA_STATUS); in hpt3x3_bmdma_setup()
126 * hpt3x3_atapi_dma - ATAPI DMA check
129 * Just say no - we don't do ATAPI DMA
157 * hpt3x3_init_chipset - chip setup
177 * hpt3x3_init_one - Initialise an HPT343/363
207 ata_print_version_once(&pdev->dev, DRV_VERSION); in hpt3x3_init_one()
209 host = ata_host_alloc_pinfo(&pdev->dev, ppi, 2); in hpt3x3_init_one()
211 return -ENOMEM; in hpt3x3_init_one()
219 if (rc == -EBUSY) in hpt3x3_init_one()
223 host->iomap = pcim_iomap_table(pdev); in hpt3x3_init_one()
224 rc = dma_set_mask_and_coherent(&pdev->dev, ATA_DMA_MASK); in hpt3x3_init_one()
228 base = host->iomap[4]; /* Bus mastering base */ in hpt3x3_init_one()
230 for (i = 0; i < host->n_ports; i++) { in hpt3x3_init_one()
231 struct ata_port *ap = host->ports[i]; in hpt3x3_init_one()
232 struct ata_ioports *ioaddr = &ap->ioaddr; in hpt3x3_init_one()
234 ioaddr->cmd_addr = base + offset_cmd[i]; in hpt3x3_init_one()
235 ioaddr->altstatus_addr = in hpt3x3_init_one()
236 ioaddr->ctl_addr = base + offset_ctl[i]; in hpt3x3_init_one()
237 ioaddr->scr_addr = NULL; in hpt3x3_init_one()
239 ioaddr->bmdma_addr = base + 8 * i; in hpt3x3_init_one()
241 ata_port_pbar_desc(ap, 4, -1, "ioport"); in hpt3x3_init_one()
245 return ata_host_activate(host, pdev->irq, ata_bmdma_interrupt, in hpt3x3_init_one()
286 MODULE_DESCRIPTION("low-level driver for the Highpoint HPT343/363");