diff options
author | marius <marius@FreeBSD.org> | 2009-12-13 00:13:21 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2009-12-13 00:13:21 +0000 |
commit | a5e96095fd9e7a98547d786c434545920adf7749 (patch) | |
tree | e6b56d7e21baf0dcd15d85b8d9a5cd3cf2293ac3 /sys | |
parent | 061d83630fb0102adca3019da245fcd087618408 (diff) | |
download | FreeBSD-src-a5e96095fd9e7a98547d786c434545920adf7749.zip FreeBSD-src-a5e96095fd9e7a98547d786c434545920adf7749.tar.gz |
Unbreak the ata_atapi() usage. Since r200171 the mode setting functions
get a ata_device type device passed instead of a ata_channel one, thus
ata_atapi() has to be adjusted accordingly.
Reviewed by: mav
MFC after: 3 days
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/ata/ata-all.c | 7 | ||||
-rw-r--r-- | sys/dev/ata/ata-all.h | 2 | ||||
-rw-r--r-- | sys/dev/ata/chipsets/ata-ite.c | 4 |
3 files changed, 6 insertions, 7 deletions
diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c index 2fc5987..6bbff47 100644 --- a/sys/dev/ata/ata-all.c +++ b/sys/dev/ata/ata-all.c @@ -1150,12 +1150,11 @@ ata_satarev2str(int rev) } int -ata_atapi(device_t dev) +ata_atapi(device_t dev, int target) { - struct ata_channel *ch = device_get_softc(device_get_parent(dev)); - struct ata_device *atadev = device_get_softc(dev); + struct ata_channel *ch = device_get_softc(dev); - return (ch->devices & (ATA_ATAPI_MASTER << atadev->unit)); + return (ch->devices & (ATA_ATAPI_MASTER << target)); } int diff --git a/sys/dev/ata/ata-all.h b/sys/dev/ata/ata-all.h index 32f095e..23dc458 100644 --- a/sys/dev/ata/ata-all.h +++ b/sys/dev/ata/ata-all.h @@ -622,7 +622,7 @@ void ata_udelay(int interval); char *ata_unit2str(struct ata_device *atadev); const char *ata_mode2str(int mode); const char *ata_satarev2str(int rev); -int ata_atapi(device_t dev); +int ata_atapi(device_t dev, int target); int ata_pmode(struct ata_params *ap); int ata_wmode(struct ata_params *ap); int ata_umode(struct ata_params *ap); diff --git a/sys/dev/ata/chipsets/ata-ite.c b/sys/dev/ata/chipsets/ata-ite.c index 250ca64..f8bc57d 100644 --- a/sys/dev/ata/chipsets/ata-ite.c +++ b/sys/dev/ata/chipsets/ata-ite.c @@ -212,12 +212,12 @@ ata_ite_8213_setmode(device_t dev, int target, int mode) reg40 |= 0x4033; /* Set PIO/WDMA timings. */ if (target == 0) { - reg40 |= (ata_atapi(dev) ? 0x04 : 0x00); + reg40 |= (ata_atapi(dev, target) ? 0x04 : 0x00); mask40 = 0x3300; new40 = timings[ata_mode2idx(piomode)] << 8; } else { - reg40 |= (ata_atapi(dev) ? 0x40 : 0x00); + reg40 |= (ata_atapi(dev, target) ? 0x40 : 0x00); mask44 = 0x0f; new44 = ((timings[ata_mode2idx(piomode)] & 0x30) >> 2) | (timings[ata_mode2idx(piomode)] & 0x03); |