summaryrefslogtreecommitdiff
path: root/sys/dev/ata/ata-sata.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/ata/ata-sata.c')
-rw-r--r--sys/dev/ata/ata-sata.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/sys/dev/ata/ata-sata.c b/sys/dev/ata/ata-sata.c
index b00bf01e50851..5f5daa48f3f4e 100644
--- a/sys/dev/ata/ata-sata.c
+++ b/sys/dev/ata/ata-sata.c
@@ -246,11 +246,10 @@ ata_sata_setmode(device_t dev, int mode)
int
ata_request2fis_h2d(struct ata_request *request, u_int8_t *fis)
{
- struct ata_device *atadev = device_get_softc(request->dev);
if (request->flags & ATA_R_ATAPI) {
fis[0] = 0x27; /* host to device */
- fis[1] = 0x80 | (atadev->unit & 0x0f);
+ fis[1] = 0x80 | (request->unit & 0x0f);
fis[2] = ATA_PACKET_CMD;
if (request->flags & (ATA_R_READ | ATA_R_WRITE))
fis[3] = ATA_F_DMA;
@@ -263,16 +262,15 @@ ata_request2fis_h2d(struct ata_request *request, u_int8_t *fis)
return 20;
}
else {
- ata_modify_if_48bit(request);
fis[0] = 0x27; /* host to device */
- fis[1] = 0x80 | (atadev->unit & 0x0f);
+ fis[1] = 0x80 | (request->unit & 0x0f);
fis[2] = request->u.ata.command;
fis[3] = request->u.ata.feature;
fis[4] = request->u.ata.lba;
fis[5] = request->u.ata.lba >> 8;
fis[6] = request->u.ata.lba >> 16;
fis[7] = ATA_D_LBA;
- if (!(atadev->flags & ATA_D_48BIT_ACTIVE))
+ if (!(request->flags & ATA_R_48BIT))
fis[7] |= (ATA_D_IBM | (request->u.ata.lba >> 24 & 0x0f));
fis[8] = request->u.ata.lba >> 24;
fis[9] = request->u.ata.lba >> 32;
@@ -339,9 +337,6 @@ ata_pm_identify(device_t dev)
pm_chipid, pm_revision, pm_ports);
}
- /* realloc space for needed DMA slots */
- ch->dma.dma_slots = pm_ports;
-
/* reset all ports and register if anything connected */
for (port=0; port < pm_ports; port++) {
u_int32_t signature;