Deleted Added
full compact
28c28
< * $FreeBSD: head/sys/dev/ata/ata-dma.c 56138 2000-01-17 02:04:19Z sos $
---
> * $FreeBSD: head/sys/dev/ata/ata-dma.c 56558 2000-01-24 20:45:24Z sos $
56d55
< #define MIN(a,b) ((a)>(b)?(b):(a))
68c67
< int32_t devno = (scp->unit << 1) + ((device == ATA_MASTER) ? 0 : 1);
---
> int32_t devno = (scp->unit << 1) + ATA_DEV(device);
70d68
< void *dmatab;
80,81c78
< printf("ata%d: simplex device, DMA on primary channel only\n",
< scp->lun);
---
> ata_printf(scp, device, "simplex device, DMA on primary only\n");
86,87c83,84
< if (!(dmatab = malloc(PAGE_SIZE, M_DEVBUF, M_NOWAIT)))
< return -1;
---
> if (!scp->dmatab[ATA_DEV(device)]) {
> void *dmatab;
89,94c86,94
< if (((uintptr_t)dmatab >> PAGE_SHIFT) ^
< (((uintptr_t)dmatab + PAGE_SIZE - 1) >> PAGE_SHIFT)) {
< printf("ata%d-%s: dmatab crosses page boundary, no DMA\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave");
< free(dmatab, M_DEVBUF);
< return -1;
---
> if (!(dmatab = malloc(PAGE_SIZE, M_DEVBUF, M_NOWAIT)))
> return -1;
> if (((uintptr_t)dmatab >> PAGE_SHIFT) ^
> (((uintptr_t)dmatab + PAGE_SIZE - 1) >> PAGE_SHIFT)) {
> ata_printf(scp, device, "dmatab crosses page boundary, no DMA\n");
> free(dmatab, M_DEVBUF);
> return -1;
> }
> scp->dmatab[ATA_DEV(device)] = dmatab;
96d95
< scp->dmatab[(device == ATA_MASTER) ? 0 : 1] = dmatab;
110,114c109,112
< printf("ata%d-%s: %s setting up UDMA2 mode on %s chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success",
< (scp->chiptype == 0x24118086) ? "ICH" :
< (scp->chiptype == 0x24218086) ? "ICH0" :"PIIX4");
---
> ata_printf(scp, device, "%s setting up UDMA2 mode on %s chip\n",
> (error) ? "failed" : "success",
> (scp->chiptype == 0x24118086) ? "ICH" :
> (scp->chiptype == 0x24218086) ? "ICH0" :"PIIX4");
121c119
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_UDMA2;
---
> scp->mode[ATA_DEV(device)] = ATA_UDMA2;
150,155c148,152
< printf("ata%d-%s: %s setting up WDMA2 mode on %s chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success",
< (scp->chiptype == 0x70108086) ? "PIIX3" :
< (scp->chiptype == 0x24118086) ? "ICH" :
< (scp->chiptype == 0x24218086) ? "ICH0" :"PIIX4");
---
> ata_printf(scp, device, "%s setting up WDMA2 mode on %s chip\n",
> (error) ? "failed" : "success",
> (scp->chiptype == 0x70108086) ? "PIIX3" :
> (scp->chiptype == 0x24118086) ? "ICH" :
> (scp->chiptype == 0x24218086) ? "ICH0" :"PIIX4");
181c178
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_WDMA2;
---
> scp->mode[ATA_DEV(device)] = ATA_WDMA2;
203,205c200,202
< printf("ata%d-%s: %s setting up WDMA2 mode on PIIX chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success");
---
> ata_printf(scp, device,
> "%s setting up WDMA2 mode on PIIX chip\n",
> (error) ? "failed" : "success");
207c204
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_WDMA2;
---
> scp->mode[ATA_DEV(device)] = ATA_WDMA2;
216,217c213,214
< printf("ata%d: Aladdin: two atapi devices on this channel, "
< "DMA disabled\n", scp->lun);
---
> ata_printf(scp, device,
> "Aladdin: two atapi devices on this channel, no DMA\n");
226,228c223,225
< printf("ata%d-%s: %s setting up UDMA2 mode on Aladdin chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success");
---
> ata_printf(scp, device,
> "%s setting up UDMA2 mode on Aladdin chip\n",
> (error) ? "failed" : "success");
236c233
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_UDMA2;
---
> scp->mode[ATA_DEV(device)] = ATA_UDMA2;
244,246c241,243
< printf("ata%d-%s: %s setting up WDMA2 mode on Aladdin chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success");
---
> ata_printf(scp, device,
> "%s setting up WDMA2 mode on Aladdin chip\n",
> (error) ? "failed" : "success");
251c248
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_WDMA2;
---
> scp->mode[ATA_DEV(device)] = ATA_WDMA2;
266,268c263,264
< printf("ata%d-%s: %s setting up UDMA4 mode on VIA chip\n",
< scp->lun, (device == ATA_MASTER) ? "master":"slave",
< (error) ? "failed" : "success");
---
> ata_printf(scp, device, "%s setting up UDMA4 mode on VIA chip\n",
> (error) ? "failed" : "success");
271c267
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_UDMA4;
---
> scp->mode[ATA_DEV(device)] = ATA_UDMA4;
279,281c275,277
< printf("ata%d-%s: %s setting up UDMA2 mode on VIA chip\n",
< scp->lun, (device == ATA_MASTER) ? "master":"slave",
< (error) ? "failed" : "success");
---
> ata_printf(scp, device,
> "%s setting up UDMA2 mode on VIA chip\n",
> (error) ? "failed" : "success");
284c280
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_UDMA2;
---
> scp->mode[ATA_DEV(device)] = ATA_UDMA2;
295,297c291,293
< printf("ata%d-%s: %s setting up UDMA4 mode on AMD chip\n",
< scp->lun, (device == ATA_MASTER) ? "master":"slave",
< (error) ? "failed" : "success");
---
> ata_printf(scp, device,
> "%s setting up UDMA4 mode on AMD chip\n",
> (error) ? "failed" : "success");
300c296
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_UDMA4;
---
> scp->mode[ATA_DEV(device)] = ATA_UDMA4;
313,316c309,311
< printf("ata%d-%s: %s setting up UDMA2 mode on %s chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success",
< (scp->chiptype == 0x74091022) ? "AMD" : "VIA");
---
> ata_printf(scp, device, "%s setting up UDMA2 mode on %s chip\n",
> (error) ? "failed" : "success",
> (scp->chiptype == 0x74091022) ? "AMD" : "VIA");
319c314
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_UDMA2;
---
> scp->mode[ATA_DEV(device)] = ATA_UDMA2;
327,330c322,324
< printf("ata%d-%s: %s setting up WDMA2 mode on %s chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success",
< (scp->chiptype == 0x74091022) ? "AMD" : "VIA");
---
> ata_printf(scp, device, "%s setting up WDMA2 mode on %s chip\n",
> (error) ? "failed" : "success",
> (scp->chiptype == 0x74091022) ? "AMD" : "VIA");
334c328
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_WDMA2;
---
> scp->mode[ATA_DEV(device)] = ATA_WDMA2;
346,348c340,342
< printf("ata%d-%s: %s setting up UDMA2 mode on SiS chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success");
---
> ata_printf(scp, device,
> "%s setting up UDMA2 mode on SiS chip\n",
> (error) ? "failed" : "success");
351c345
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_UDMA2;
---
> scp->mode[ATA_DEV(device)] = ATA_UDMA2;
359,361c353,355
< printf("ata%d-%s: %s setting up WDMA2 mode on SiS chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success");
---
> ata_printf(scp, device,
> "%s setting up WDMA2 mode on SiS chip\n",
> (error) ? "failed" : "success");
364c358
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_WDMA2;
---
> scp->mode[ATA_DEV(device)] = ATA_WDMA2;
383,385c377,379
< printf("ata%d-%s: %s setting up UDMA4 mode on Promise chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success");
---
> ata_printf(scp, device,
> "%s setting up UDMA4 mode on Promise chip\n",
> (error) ? "failed" : "success");
389c383
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_UDMA4;
---
> scp->mode[ATA_DEV(device)] = ATA_UDMA4;
397,399c391,393
< printf("ata%d-%s: %s setting up UDMA2 mode on Promise chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success");
---
> ata_printf(scp, device,
> "%s setting up UDMA2 mode on Promise chip\n",
> (error) ? "failed" : "success");
402c396
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_UDMA2;
---
> scp->mode[ATA_DEV(device)] = ATA_UDMA2;
410,412c404,406
< printf("ata%d-%s: %s setting up WDMA2 mode on Promise chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success");
---
> ata_printf(scp, device,
> "%s setting up WDMA2 mode on Promise chip\n",
> (error) ? "failed" : "success");
415c409
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_WDMA2;
---
> scp->mode[ATA_DEV(device)] = ATA_WDMA2;
423,426c417,420
< printf("ata%d-%s: %s setting up PIO%d mode on Promise chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success",
< (apiomode >= 0) ? apiomode : 0);
---
> ata_printf(scp, device,
> "%s setting up PIO%d mode on Promise chip\n",
> (error) ? "failed" : "success",
> (apiomode >= 0) ? apiomode : 0);
443,445c437,439
< printf("ata%d-%s: %s setting up UDMA4 mode on HPT366 chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success");
---
> ata_printf(scp, device,
> "%s setting up UDMA4 mode on HPT366 chip\n",
> (error) ? "failed" : "success");
448c442
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_UDMA4;
---
> scp->mode[ATA_DEV(device)] = ATA_UDMA4;
456,458c450,452
< printf("ata%d-%s: %s setting up UDMA2 mode on HPT366 chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success");
---
> ata_printf(scp, device,
> "%s setting up UDMA2 mode on HPT366 chip\n",
> (error) ? "failed" : "success");
461c455
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_UDMA2;
---
> scp->mode[ATA_DEV(device)] = ATA_UDMA2;
469,471c463,465
< printf("ata%d-%s: %s setting up WDMA2 mode on HPT366 chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success");
---
> ata_printf(scp, device,
> "%s setting up WDMA2 mode on HPT366 chip\n",
> (error) ? "failed" : "success");
474c468
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_WDMA2;
---
> scp->mode[ATA_DEV(device)] = ATA_WDMA2;
482,485c476,478
< printf("ata%d-%s: %s setting up PIO%d mode on HPT366 chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success",
< (apiomode >= 0) ? apiomode : 0);
---
> ata_printf(scp, device, "%s setting up PIO%d mode on HPT366 chip\n",
> (error) ? "failed" : "success",
> (apiomode >= 0) ? apiomode : 0);
508,510c501,503
< printf("ata%d-%s: %s setting up WDMA2 mode on generic chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success");
---
> ata_printf(scp, device,
> "%s setting up WDMA2 mode on generic chip\n",
> (error) ? "failed" : "success");
512c505
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ATA_WDMA2;
---
> scp->mode[ATA_DEV(device)] = ATA_WDMA2;
517d509
< free(dmatab, M_DEVBUF);
521,523c513,514
< printf("ata%d-%s: %s setting up PIO%d mode on generic chip\n",
< scp->lun, (device == ATA_MASTER) ? "master" : "slave",
< (error) ? "failed" : "success", (apiomode >= 0) ? apiomode : 0);
---
> ata_printf(scp, device, "%s setting up PIO%d mode on generic chip\n",
> (error) ? "failed" : "success",(apiomode>=0) ? apiomode : 0);
525c516
< scp->mode[(device == ATA_MASTER) ? 0 : 1] = ata_pio2mode(apiomode);
---
> scp->mode[ATA_DEV(device)] = ata_pio2mode(apiomode);
541,542c532
< printf("ata%d-%s: zero length DMA transfer attempted\n",
< scp->lun, ((device == ATA_MASTER) ? "master" : "slave"));
---
> ata_printf(scp, device, "zero length DMA transfer attempted\n");
546c536
< dmatab = scp->dmatab[(device == ATA_MASTER) ? 0 : 1];
---
> dmatab = scp->dmatab[ATA_DEV(device)];
548c538
< dma_count = MIN(count, (PAGE_SIZE - ((uintptr_t)data & PAGE_MASK)));
---
> dma_count = min(count, (PAGE_SIZE - ((uintptr_t)data & PAGE_MASK)));
557,558c547
< printf("ata%d-%s: too many segments in DMA table\n",
< scp->lun, (device ? "slave" : "master"));
---
> ata_printf(scp, device, "too many segments in DMA table\n");
562,564c551,553
< dma_count = MIN(count, PAGE_SIZE);
< data += MIN(count, PAGE_SIZE);
< count -= MIN(count, PAGE_SIZE);
---
> dma_count = min(count, PAGE_SIZE);
> data += min(count, PAGE_SIZE);
> count -= min(count, PAGE_SIZE);