diff options
| author | Tejun Heo <htejun@gmail.com> | 2006-05-15 08:03:50 -0400 |
|---|---|---|
| committer | Tejun Heo <htejun@gmail.com> | 2006-05-15 08:03:50 -0400 |
| commit | dd410ff12925fc49df3174b18e43598b2b2b621f (patch) | |
| tree | 782f1127a074fbb70e90ac46b5e97e42aceddc9d | |
| parent | a6e6ce8e8dc907a2cf2b994b0ea4099423f046bf (diff) | |
[PATCH] ahci: clean up AHCI constants in preparation for NCQ
* Rename CMD_TBL_HDR to CMD_TBL_HDR_SZ as it's size not offset.
* Define MAX_CMDS and CMD_SZ and use them in calculation of other
constants.
* Define CMD_TBL_AR_SZ as product of CMD_TBL_SZ and MAX_CMDS, and use
it when calculating PRIV_DMA_SZ.
* CMD_SLOT_SZ is also dependent on MAX_CMDS but hasn't been changed
because I didn't want to change the value used by the original code
(32 commands). Later NCQ change will bump MAX_CMDS to 32 anyway and
the hard coded 32 can be changed to MAX_CMDS then.
* Reorder HOST_CAP_* flags.
Signed-off-by: Tejun Heo <htejun@gmail.com>
| -rw-r--r-- | drivers/scsi/ahci.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/scsi/ahci.c b/drivers/scsi/ahci.c index 35487e30b0ff..b25373f530ac 100644 --- a/drivers/scsi/ahci.c +++ b/drivers/scsi/ahci.c | |||
| @@ -56,12 +56,15 @@ enum { | |||
| 56 | AHCI_MAX_SG = 168, /* hardware max is 64K */ | 56 | AHCI_MAX_SG = 168, /* hardware max is 64K */ |
| 57 | AHCI_DMA_BOUNDARY = 0xffffffff, | 57 | AHCI_DMA_BOUNDARY = 0xffffffff, |
| 58 | AHCI_USE_CLUSTERING = 0, | 58 | AHCI_USE_CLUSTERING = 0, |
| 59 | AHCI_CMD_SLOT_SZ = 32 * 32, | 59 | AHCI_MAX_CMDS = 1, |
| 60 | AHCI_CMD_SZ = 32, | ||
| 61 | AHCI_CMD_SLOT_SZ = 32 * AHCI_CMD_SZ, | ||
| 60 | AHCI_RX_FIS_SZ = 256, | 62 | AHCI_RX_FIS_SZ = 256, |
| 61 | AHCI_CMD_TBL_HDR = 0x80, | ||
| 62 | AHCI_CMD_TBL_CDB = 0x40, | 63 | AHCI_CMD_TBL_CDB = 0x40, |
| 63 | AHCI_CMD_TBL_SZ = AHCI_CMD_TBL_HDR + (AHCI_MAX_SG * 16), | 64 | AHCI_CMD_TBL_HDR_SZ = 0x80, |
| 64 | AHCI_PORT_PRIV_DMA_SZ = AHCI_CMD_SLOT_SZ + AHCI_CMD_TBL_SZ + | 65 | AHCI_CMD_TBL_SZ = AHCI_CMD_TBL_HDR_SZ + (AHCI_MAX_SG * 16), |
| 66 | AHCI_CMD_TBL_AR_SZ = AHCI_CMD_TBL_SZ * AHCI_MAX_CMDS, | ||
| 67 | AHCI_PORT_PRIV_DMA_SZ = AHCI_CMD_SLOT_SZ + AHCI_CMD_TBL_AR_SZ + | ||
| 65 | AHCI_RX_FIS_SZ, | 68 | AHCI_RX_FIS_SZ, |
| 66 | AHCI_IRQ_ON_SG = (1 << 31), | 69 | AHCI_IRQ_ON_SG = (1 << 31), |
| 67 | AHCI_CMD_ATAPI = (1 << 5), | 70 | AHCI_CMD_ATAPI = (1 << 5), |
| @@ -89,8 +92,8 @@ enum { | |||
| 89 | HOST_AHCI_EN = (1 << 31), /* AHCI enabled */ | 92 | HOST_AHCI_EN = (1 << 31), /* AHCI enabled */ |
| 90 | 93 | ||
| 91 | /* HOST_CAP bits */ | 94 | /* HOST_CAP bits */ |
| 92 | HOST_CAP_64 = (1 << 31), /* PCI DAC (64-bit DMA) support */ | ||
| 93 | HOST_CAP_CLO = (1 << 24), /* Command List Override support */ | 95 | HOST_CAP_CLO = (1 << 24), /* Command List Override support */ |
| 96 | HOST_CAP_64 = (1 << 31), /* PCI DAC (64-bit DMA) support */ | ||
| 94 | 97 | ||
| 95 | /* registers for each SATA port */ | 98 | /* registers for each SATA port */ |
| 96 | PORT_LST_ADDR = 0x00, /* command list DMA addr */ | 99 | PORT_LST_ADDR = 0x00, /* command list DMA addr */ |
| @@ -398,7 +401,7 @@ static int ahci_port_start(struct ata_port *ap) | |||
| 398 | pp->cmd_tbl = mem; | 401 | pp->cmd_tbl = mem; |
| 399 | pp->cmd_tbl_dma = mem_dma; | 402 | pp->cmd_tbl_dma = mem_dma; |
| 400 | 403 | ||
| 401 | pp->cmd_tbl_sg = mem + AHCI_CMD_TBL_HDR; | 404 | pp->cmd_tbl_sg = mem + AHCI_CMD_TBL_HDR_SZ; |
| 402 | 405 | ||
| 403 | ap->private_data = pp; | 406 | ap->private_data = pp; |
| 404 | 407 | ||
