Commit 40f21b11 authored by Mark Lord's avatar Mark Lord Committed by Jeff Garzik

sata_mv: cosmetic preparations for IRQ coalescing

Various cosmetic changes in preparation for the IRQ coalescing feature.

Note that the various MV_IRQ_COAL_* definitions are restored/renamed
in the folloup patch which adds IRQ coalescing to the driver.
Signed-off-by: default avatarMark Lord <mlord@pobox.com>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent 9223d01b
/* /*
* sata_mv.c - Marvell SATA support * sata_mv.c - Marvell SATA support
* *
* Copyright 2008: Marvell Corporation, all rights reserved. * Copyright 2008-2009: Marvell Corporation, all rights reserved.
* Copyright 2005: EMC Corporation, all rights reserved. * Copyright 2005: EMC Corporation, all rights reserved.
* Copyright 2005 Red Hat, Inc. All rights reserved. * Copyright 2005 Red Hat, Inc. All rights reserved.
* *
* Originally written by Brett Russ.
* Extensive overhaul and enhancement by Mark Lord <mlord@pobox.com>.
*
* Please ALWAYS copy linux-ide@vger.kernel.org on emails. * Please ALWAYS copy linux-ide@vger.kernel.org on emails.
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -25,8 +28,6 @@ ...@@ -25,8 +28,6 @@
/* /*
* sata_mv TODO list: * sata_mv TODO list:
* *
* --> Errata workaround for NCQ device errors.
*
* --> More errata workarounds for PCI-X. * --> More errata workarounds for PCI-X.
* *
* --> Complete a full errata audit for all chipsets to identify others. * --> Complete a full errata audit for all chipsets to identify others.
...@@ -68,6 +69,16 @@ ...@@ -68,6 +69,16 @@
#define DRV_NAME "sata_mv" #define DRV_NAME "sata_mv"
#define DRV_VERSION "1.26" #define DRV_VERSION "1.26"
/*
* module options
*/
static int msi;
#ifdef CONFIG_PCI
module_param(msi, int, S_IRUGO);
MODULE_PARM_DESC(msi, "Enable use of PCI MSI (0=off, 1=on)");
#endif
enum { enum {
/* BAR's are enumerated in terms of pci_resource_start() terms */ /* BAR's are enumerated in terms of pci_resource_start() terms */
MV_PRIMARY_BAR = 0, /* offset 0x10: memory space */ MV_PRIMARY_BAR = 0, /* offset 0x10: memory space */
...@@ -78,12 +89,6 @@ enum { ...@@ -78,12 +89,6 @@ enum {
MV_MINOR_REG_AREA_SZ = 0x2000, /* 8KB */ MV_MINOR_REG_AREA_SZ = 0x2000, /* 8KB */
MV_PCI_REG_BASE = 0, MV_PCI_REG_BASE = 0,
MV_IRQ_COAL_REG_BASE = 0x18000, /* 6xxx part only */
MV_IRQ_COAL_CAUSE = (MV_IRQ_COAL_REG_BASE + 0x08),
MV_IRQ_COAL_CAUSE_LO = (MV_IRQ_COAL_REG_BASE + 0x88),
MV_IRQ_COAL_CAUSE_HI = (MV_IRQ_COAL_REG_BASE + 0x8c),
MV_IRQ_COAL_THRESHOLD = (MV_IRQ_COAL_REG_BASE + 0xcc),
MV_IRQ_COAL_TIME_THRESHOLD = (MV_IRQ_COAL_REG_BASE + 0xd0),
MV_SATAHC0_REG_BASE = 0x20000, MV_SATAHC0_REG_BASE = 0x20000,
MV_FLASH_CTL_OFS = 0x1046c, MV_FLASH_CTL_OFS = 0x1046c,
...@@ -115,16 +120,14 @@ enum { ...@@ -115,16 +120,14 @@ enum {
/* Host Flags */ /* Host Flags */
MV_FLAG_DUAL_HC = (1 << 30), /* two SATA Host Controllers */ MV_FLAG_DUAL_HC = (1 << 30), /* two SATA Host Controllers */
MV_FLAG_IRQ_COALESCE = (1 << 29), /* IRQ coalescing capability */
MV_COMMON_FLAGS = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | MV_COMMON_FLAGS = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
ATA_FLAG_MMIO | ATA_FLAG_PIO_POLLING, ATA_FLAG_MMIO | ATA_FLAG_PIO_POLLING,
MV_GEN_I_FLAGS = MV_COMMON_FLAGS | ATA_FLAG_NO_ATAPI, MV_GEN_I_FLAGS = MV_COMMON_FLAGS | ATA_FLAG_NO_ATAPI,
MV_GEN_II_FLAGS = MV_COMMON_FLAGS | MV_FLAG_IRQ_COALESCE | MV_GEN_II_FLAGS = MV_COMMON_FLAGS | ATA_FLAG_NCQ |
ATA_FLAG_PMP | ATA_FLAG_ACPI_SATA | ATA_FLAG_PMP | ATA_FLAG_ACPI_SATA,
ATA_FLAG_NCQ,
MV_GEN_IIE_FLAGS = MV_GEN_II_FLAGS | ATA_FLAG_AN, MV_GEN_IIE_FLAGS = MV_GEN_II_FLAGS | ATA_FLAG_AN,
...@@ -179,16 +182,16 @@ enum { ...@@ -179,16 +182,16 @@ enum {
PCI_HC_MAIN_IRQ_MASK_OFS = 0x1d64, PCI_HC_MAIN_IRQ_MASK_OFS = 0x1d64,
SOC_HC_MAIN_IRQ_CAUSE_OFS = 0x20020, SOC_HC_MAIN_IRQ_CAUSE_OFS = 0x20020,
SOC_HC_MAIN_IRQ_MASK_OFS = 0x20024, SOC_HC_MAIN_IRQ_MASK_OFS = 0x20024,
ERR_IRQ = (1 << 0), /* shift by port # */ ERR_IRQ = (1 << 0), /* shift by (2 * port #) */
DONE_IRQ = (1 << 1), /* shift by port # */ DONE_IRQ = (1 << 1), /* shift by (2 * port #) */
HC0_IRQ_PEND = 0x1ff, /* bits 0-8 = HC0's ports */ HC0_IRQ_PEND = 0x1ff, /* bits 0-8 = HC0's ports */
HC_SHIFT = 9, /* bits 9-17 = HC1's ports */ HC_SHIFT = 9, /* bits 9-17 = HC1's ports */
PCI_ERR = (1 << 18), PCI_ERR = (1 << 18),
TRAN_LO_DONE = (1 << 19), /* 6xxx: IRQ coalescing */ TRAN_COAL_LO_DONE = (1 << 19), /* transaction coalescing */
TRAN_HI_DONE = (1 << 20), /* 6xxx: IRQ coalescing */ TRAN_COAL_HI_DONE = (1 << 20), /* transaction coalescing */
PORTS_0_3_COAL_DONE = (1 << 8), PORTS_0_3_COAL_DONE = (1 << 8), /* HC0 IRQ coalescing */
PORTS_4_7_COAL_DONE = (1 << 17), PORTS_4_7_COAL_DONE = (1 << 17), /* HC1 IRQ coalescing */
PORTS_0_7_COAL_DONE = (1 << 21), /* 6xxx: IRQ coalescing */ ALL_PORTS_COAL_DONE = (1 << 21), /* GEN_II(E) IRQ coalescing */
GPIO_INT = (1 << 22), GPIO_INT = (1 << 22),
SELF_INT = (1 << 23), SELF_INT = (1 << 23),
TWSI_INT = (1 << 24), TWSI_INT = (1 << 24),
...@@ -3704,12 +3707,6 @@ static struct pci_driver mv_pci_driver = { ...@@ -3704,12 +3707,6 @@ static struct pci_driver mv_pci_driver = {
.remove = ata_pci_remove_one, .remove = ata_pci_remove_one,
}; };
/*
* module options
*/
static int msi; /* Use PCI msi; either zero (off, default) or non-zero */
/* move to PCI layer or libata core? */ /* move to PCI layer or libata core? */
static int pci_go_64(struct pci_dev *pdev) static int pci_go_64(struct pci_dev *pdev)
{ {
...@@ -3891,10 +3888,5 @@ MODULE_DEVICE_TABLE(pci, mv_pci_tbl); ...@@ -3891,10 +3888,5 @@ MODULE_DEVICE_TABLE(pci, mv_pci_tbl);
MODULE_VERSION(DRV_VERSION); MODULE_VERSION(DRV_VERSION);
MODULE_ALIAS("platform:" DRV_NAME); MODULE_ALIAS("platform:" DRV_NAME);
#ifdef CONFIG_PCI
module_param(msi, int, 0444);
MODULE_PARM_DESC(msi, "Enable use of PCI MSI (0=off, 1=on)");
#endif
module_init(mv_init); module_init(mv_init);
module_exit(mv_exit); module_exit(mv_exit);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment