aboutsummaryrefslogtreecommitdiff
path: root/sys/cam
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2009-11-17 21:14:02 +0000
committerAlexander Motin <mav@FreeBSD.org>2009-11-17 21:14:02 +0000
commitf6e8afbf7a042a58a86262914287abfef00e1f02 (patch)
treec10742886b2f4c38425fa703b08f029e141c40fe /sys/cam
parent2c588f53445ebe45161c8b356699859ac9aea3ab (diff)
Notes
Diffstat (limited to 'sys/cam')
-rw-r--r--sys/cam/ata/ata_all.c14
-rw-r--r--sys/cam/ata/ata_all.h2
2 files changed, 5 insertions, 11 deletions
diff --git a/sys/cam/ata/ata_all.c b/sys/cam/ata/ata_all.c
index 35b4ca257ede..266dc32ceabf 100644
--- a/sys/cam/ata/ata_all.c
+++ b/sys/cam/ata/ata_all.c
@@ -368,30 +368,24 @@ void
ata_pm_read_cmd(struct ccb_ataio *ataio, int reg, int port)
{
bzero(&ataio->cmd, sizeof(ataio->cmd));
- ataio->cmd.flags = CAM_ATAIO_48BIT | CAM_ATAIO_NEEDRESULT;
+ ataio->cmd.flags = CAM_ATAIO_NEEDRESULT;
ataio->cmd.command = ATA_READ_PM;
ataio->cmd.features = reg;
- ataio->cmd.features_exp = reg >> 8;
ataio->cmd.device = port & 0x0f;
}
void
-ata_pm_write_cmd(struct ccb_ataio *ataio, int reg, int port, uint64_t val)
+ata_pm_write_cmd(struct ccb_ataio *ataio, int reg, int port, uint32_t val)
{
bzero(&ataio->cmd, sizeof(ataio->cmd));
- ataio->cmd.flags = CAM_ATAIO_48BIT | CAM_ATAIO_NEEDRESULT;
+ ataio->cmd.flags = 0;
ataio->cmd.command = ATA_WRITE_PM;
ataio->cmd.features = reg;
+ ataio->cmd.sector_count = val;
ataio->cmd.lba_low = val >> 8;
ataio->cmd.lba_mid = val >> 16;
ataio->cmd.lba_high = val >> 24;
ataio->cmd.device = port & 0x0f;
- ataio->cmd.lba_low_exp = val >> 40;
- ataio->cmd.lba_mid_exp = val >> 48;
- ataio->cmd.lba_high_exp = val >> 56;
- ataio->cmd.features_exp = reg >> 8;
- ataio->cmd.sector_count = val;
- ataio->cmd.sector_count_exp = val >> 32;
}
void
diff --git a/sys/cam/ata/ata_all.h b/sys/cam/ata/ata_all.h
index a86d348b2fcc..b711df7a8f0b 100644
--- a/sys/cam/ata/ata_all.h
+++ b/sys/cam/ata/ata_all.h
@@ -103,7 +103,7 @@ void ata_ncq_cmd(struct ccb_ataio *ataio, uint8_t cmd,
uint64_t lba, uint16_t sector_count);
void ata_reset_cmd(struct ccb_ataio *ataio);
void ata_pm_read_cmd(struct ccb_ataio *ataio, int reg, int port);
-void ata_pm_write_cmd(struct ccb_ataio *ataio, int reg, int port, uint64_t val);
+void ata_pm_write_cmd(struct ccb_ataio *ataio, int reg, int port, uint32_t val);
void ata_bswap(int8_t *buf, int len);
void ata_btrim(int8_t *buf, int len);