aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/ahci.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/ahci.h')
-rw-r--r--drivers/ata/ahci.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
index e5fdeebf9ef0..12c5282e7fca 100644
--- a/drivers/ata/ahci.h
+++ b/drivers/ata/ahci.h
@@ -72,6 +72,7 @@ enum {
72 AHCI_CMD_RESET = (1 << 8), 72 AHCI_CMD_RESET = (1 << 8),
73 AHCI_CMD_CLR_BUSY = (1 << 10), 73 AHCI_CMD_CLR_BUSY = (1 << 10),
74 74
75 RX_FIS_PIO_SETUP = 0x20, /* offset of PIO Setup FIS data */
75 RX_FIS_D2H_REG = 0x40, /* offset of D2H Register FIS data */ 76 RX_FIS_D2H_REG = 0x40, /* offset of D2H Register FIS data */
76 RX_FIS_SDB = 0x58, /* offset of SDB FIS data */ 77 RX_FIS_SDB = 0x58, /* offset of SDB FIS data */
77 RX_FIS_UNK = 0x60, /* offset of Unknown FIS data */ 78 RX_FIS_UNK = 0x60, /* offset of Unknown FIS data */
@@ -201,7 +202,6 @@ enum {
201 AHCI_HFLAG_MV_PATA = (1 << 4), /* PATA port */ 202 AHCI_HFLAG_MV_PATA = (1 << 4), /* PATA port */
202 AHCI_HFLAG_NO_MSI = (1 << 5), /* no PCI MSI */ 203 AHCI_HFLAG_NO_MSI = (1 << 5), /* no PCI MSI */
203 AHCI_HFLAG_NO_PMP = (1 << 6), /* no PMP */ 204 AHCI_HFLAG_NO_PMP = (1 << 6), /* no PMP */
204 AHCI_HFLAG_NO_HOTPLUG = (1 << 7), /* ignore PxSERR.DIAG.N */
205 AHCI_HFLAG_SECT255 = (1 << 8), /* max 255 sectors */ 205 AHCI_HFLAG_SECT255 = (1 << 8), /* max 255 sectors */
206 AHCI_HFLAG_YES_NCQ = (1 << 9), /* force NCQ cap on */ 206 AHCI_HFLAG_YES_NCQ = (1 << 9), /* force NCQ cap on */
207 AHCI_HFLAG_NO_SUSPEND = (1 << 10), /* don't suspend */ 207 AHCI_HFLAG_NO_SUSPEND = (1 << 10), /* don't suspend */
@@ -213,10 +213,8 @@ enum {
213 213
214 /* ap->flags bits */ 214 /* ap->flags bits */
215 215
216 AHCI_FLAG_COMMON = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | 216 AHCI_FLAG_COMMON = ATA_FLAG_SATA | ATA_FLAG_PIO_DMA |
217 ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA | 217 ATA_FLAG_ACPI_SATA | ATA_FLAG_AN,
218 ATA_FLAG_ACPI_SATA | ATA_FLAG_AN |
219 ATA_FLAG_IPM,
220 218
221 ICH_MAP = 0x90, /* ICH MAP register */ 219 ICH_MAP = 0x90, /* ICH MAP register */
222 220
@@ -227,10 +225,14 @@ enum {
227 /* em_ctl bits */ 225 /* em_ctl bits */
228 EM_CTL_RST = (1 << 9), /* Reset */ 226 EM_CTL_RST = (1 << 9), /* Reset */
229 EM_CTL_TM = (1 << 8), /* Transmit Message */ 227 EM_CTL_TM = (1 << 8), /* Transmit Message */
230 EM_CTL_MR = (1 << 0), /* Message Recieved */ 228 EM_CTL_MR = (1 << 0), /* Message Received */
231 EM_CTL_ALHD = (1 << 26), /* Activity LED */ 229 EM_CTL_ALHD = (1 << 26), /* Activity LED */
232 EM_CTL_XMT = (1 << 25), /* Transmit Only */ 230 EM_CTL_XMT = (1 << 25), /* Transmit Only */
233 EM_CTL_SMB = (1 << 24), /* Single Message Buffer */ 231 EM_CTL_SMB = (1 << 24), /* Single Message Buffer */
232 EM_CTL_SGPIO = (1 << 19), /* SGPIO messages supported */
233 EM_CTL_SES = (1 << 18), /* SES-2 messages supported */
234 EM_CTL_SAFTE = (1 << 17), /* SAF-TE messages supported */
235 EM_CTL_LED = (1 << 16), /* LED messages supported */
234 236
235 /* em message type */ 237 /* em message type */
236 EM_MSG_TYPE_LED = (1 << 0), /* LED */ 238 EM_MSG_TYPE_LED = (1 << 0), /* LED */
@@ -283,7 +285,7 @@ struct ahci_port_priv {
283}; 285};
284 286
285struct ahci_host_priv { 287struct ahci_host_priv {
286 void __iomem * mmio; /* bus-independant mem map */ 288 void __iomem * mmio; /* bus-independent mem map */
287 unsigned int flags; /* AHCI_HFLAG_* */ 289 unsigned int flags; /* AHCI_HFLAG_* */
288 u32 cap; /* cap to use */ 290 u32 cap; /* cap to use */
289 u32 cap2; /* cap2 to use */ 291 u32 cap2; /* cap2 to use */
@@ -311,6 +313,8 @@ extern struct device_attribute *ahci_sdev_attrs[];
311 313
312extern struct ata_port_operations ahci_ops; 314extern struct ata_port_operations ahci_ops;
313 315
316void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag,
317 u32 opts);
314void ahci_save_initial_config(struct device *dev, 318void ahci_save_initial_config(struct device *dev,
315 struct ahci_host_priv *hpriv, 319 struct ahci_host_priv *hpriv,
316 unsigned int force_port_map, 320 unsigned int force_port_map,
@@ -326,6 +330,7 @@ int ahci_stop_engine(struct ata_port *ap);
326void ahci_start_engine(struct ata_port *ap); 330void ahci_start_engine(struct ata_port *ap);
327int ahci_check_ready(struct ata_link *link); 331int ahci_check_ready(struct ata_link *link);
328int ahci_kick_engine(struct ata_port *ap); 332int ahci_kick_engine(struct ata_port *ap);
333int ahci_port_resume(struct ata_port *ap);
329void ahci_set_em_messages(struct ahci_host_priv *hpriv, 334void ahci_set_em_messages(struct ahci_host_priv *hpriv,
330 struct ata_port_info *pi); 335 struct ata_port_info *pi);
331int ahci_reset_em(struct ata_host *host); 336int ahci_reset_em(struct ata_host *host);