diff options
| author | Søren Schmidt <sos@FreeBSD.org> | 2005-06-05 18:37:56 +0000 |
|---|---|---|
| committer | Søren Schmidt <sos@FreeBSD.org> | 2005-06-05 18:37:56 +0000 |
| commit | 05c84db123699ef6ff439305e99d96f928da3a9e (patch) | |
| tree | 901accc13672aa502e01a7793ec0a5c4d8371f71 /sys/dev/ata | |
| parent | 5c25ebd529b7db5d477b4d1300d4fedcce91c04e (diff) | |
Notes
Diffstat (limited to 'sys/dev/ata')
| -rw-r--r-- | sys/dev/ata/ata-chipset.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/dev/ata/ata-chipset.c b/sys/dev/ata/ata-chipset.c index 1c0541c5bef14..c640fe2269939 100644 --- a/sys/dev/ata/ata-chipset.c +++ b/sys/dev/ata/ata-chipset.c @@ -417,7 +417,11 @@ ata_ahci_setup_fis(u_int8_t *fis, struct ata_request *request) fis[idx++] = request->u.ata.lba; fis[idx++] = request->u.ata.lba >> 8; fis[idx++] = request->u.ata.lba >> 16; - fis[idx++] = ATA_D_LBA | atadev->unit; + fis[idx] = ATA_D_LBA | atadev->unit; + if (atadev->flags & ATA_D_48BIT_ACTIVE) + idx++; + else + fis[idx++] |= (request->u.ata.lba >> 24 & 0x0f); fis[idx++] = request->u.ata.lba >> 24; fis[idx++] = request->u.ata.lba >> 32; @@ -1498,7 +1502,8 @@ ata_intel_reset(device_t dev) /* ICH6 has 4 SATA ports as master/slave on 2 channels so deal with pairs */ if (ctlr->chip->chipid == ATA_I82801FB_S1 || - ctlr->chip->chipid == ATA_I82801FB_R1) { + ctlr->chip->chipid == ATA_I82801FB_R1 || + ctlr->chip->chipid == ATA_I82801FB_M) { mask = (0x0005 << ch->unit); } else { |
