mirror of
https://github.com/torvalds/linux.git
synced 2024-12-01 16:41:39 +00:00
[PATCH] sata_nv: kill not-working hotplug code
sata_nv contained hotplug code which is mainly for demonstrating how hotplug event is handled. This patch kills the demo code in prepration for real hotplug implementation. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
ea6e1e94f2
commit
638ebcc81f
@ -64,12 +64,6 @@ enum {
|
||||
NV_INT_STATUS_SDEV_PM = 0x20,
|
||||
NV_INT_STATUS_SDEV_ADDED = 0x40,
|
||||
NV_INT_STATUS_SDEV_REMOVED = 0x80,
|
||||
NV_INT_STATUS_PDEV_HOTPLUG = (NV_INT_STATUS_PDEV_ADDED |
|
||||
NV_INT_STATUS_PDEV_REMOVED),
|
||||
NV_INT_STATUS_SDEV_HOTPLUG = (NV_INT_STATUS_SDEV_ADDED |
|
||||
NV_INT_STATUS_SDEV_REMOVED),
|
||||
NV_INT_STATUS_HOTPLUG = (NV_INT_STATUS_PDEV_HOTPLUG |
|
||||
NV_INT_STATUS_SDEV_HOTPLUG),
|
||||
|
||||
NV_INT_ENABLE = 0x11,
|
||||
NV_INT_ENABLE_CK804 = 0x441,
|
||||
@ -81,12 +75,6 @@ enum {
|
||||
NV_INT_ENABLE_SDEV_PM = 0x20,
|
||||
NV_INT_ENABLE_SDEV_ADDED = 0x40,
|
||||
NV_INT_ENABLE_SDEV_REMOVED = 0x80,
|
||||
NV_INT_ENABLE_PDEV_HOTPLUG = (NV_INT_ENABLE_PDEV_ADDED |
|
||||
NV_INT_ENABLE_PDEV_REMOVED),
|
||||
NV_INT_ENABLE_SDEV_HOTPLUG = (NV_INT_ENABLE_SDEV_ADDED |
|
||||
NV_INT_ENABLE_SDEV_REMOVED),
|
||||
NV_INT_ENABLE_HOTPLUG = (NV_INT_ENABLE_PDEV_HOTPLUG |
|
||||
NV_INT_ENABLE_SDEV_HOTPLUG),
|
||||
|
||||
NV_INT_CONFIG = 0x12,
|
||||
NV_INT_CONFIG_METHD = 0x01, // 0 = INT, 1 = SMI
|
||||
@ -102,12 +90,6 @@ static irqreturn_t nv_interrupt (int irq, void *dev_instance,
|
||||
static u32 nv_scr_read (struct ata_port *ap, unsigned int sc_reg);
|
||||
static void nv_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
|
||||
static void nv_host_stop (struct ata_host_set *host_set);
|
||||
static void nv_enable_hotplug(struct ata_probe_ent *probe_ent);
|
||||
static void nv_disable_hotplug(struct ata_host_set *host_set);
|
||||
static int nv_check_hotplug(struct ata_host_set *host_set);
|
||||
static void nv_enable_hotplug_ck804(struct ata_probe_ent *probe_ent);
|
||||
static void nv_disable_hotplug_ck804(struct ata_host_set *host_set);
|
||||
static int nv_check_hotplug_ck804(struct ata_host_set *host_set);
|
||||
|
||||
enum nv_host_type
|
||||
{
|
||||
@ -158,34 +140,18 @@ static const struct pci_device_id nv_pci_tbl[] = {
|
||||
struct nv_host_desc
|
||||
{
|
||||
enum nv_host_type host_type;
|
||||
void (*enable_hotplug)(struct ata_probe_ent *probe_ent);
|
||||
void (*disable_hotplug)(struct ata_host_set *host_set);
|
||||
int (*check_hotplug)(struct ata_host_set *host_set);
|
||||
|
||||
};
|
||||
static struct nv_host_desc nv_device_tbl[] = {
|
||||
{
|
||||
.host_type = GENERIC,
|
||||
.enable_hotplug = NULL,
|
||||
.disable_hotplug= NULL,
|
||||
.check_hotplug = NULL,
|
||||
},
|
||||
{
|
||||
.host_type = NFORCE2,
|
||||
.enable_hotplug = nv_enable_hotplug,
|
||||
.disable_hotplug= nv_disable_hotplug,
|
||||
.check_hotplug = nv_check_hotplug,
|
||||
},
|
||||
{
|
||||
.host_type = NFORCE3,
|
||||
.enable_hotplug = nv_enable_hotplug,
|
||||
.disable_hotplug= nv_disable_hotplug,
|
||||
.check_hotplug = nv_check_hotplug,
|
||||
},
|
||||
{ .host_type = CK804,
|
||||
.enable_hotplug = nv_enable_hotplug_ck804,
|
||||
.disable_hotplug= nv_disable_hotplug_ck804,
|
||||
.check_hotplug = nv_check_hotplug_ck804,
|
||||
},
|
||||
};
|
||||
|
||||
@ -275,7 +241,6 @@ static irqreturn_t nv_interrupt (int irq, void *dev_instance,
|
||||
struct pt_regs *regs)
|
||||
{
|
||||
struct ata_host_set *host_set = dev_instance;
|
||||
struct nv_host *host = host_set->private_data;
|
||||
unsigned int i;
|
||||
unsigned int handled = 0;
|
||||
unsigned long flags;
|
||||
@ -301,9 +266,6 @@ static irqreturn_t nv_interrupt (int irq, void *dev_instance,
|
||||
|
||||
}
|
||||
|
||||
if (host->host_desc->check_hotplug)
|
||||
handled += host->host_desc->check_hotplug(host_set);
|
||||
|
||||
spin_unlock_irqrestore(&host_set->lock, flags);
|
||||
|
||||
return IRQ_RETVAL(handled);
|
||||
@ -329,10 +291,6 @@ static void nv_host_stop (struct ata_host_set *host_set)
|
||||
{
|
||||
struct nv_host *host = host_set->private_data;
|
||||
|
||||
// Disable hotplug event interrupts.
|
||||
if (host->host_desc->disable_hotplug)
|
||||
host->host_desc->disable_hotplug(host_set);
|
||||
|
||||
kfree(host);
|
||||
|
||||
ata_pci_host_stop(host_set);
|
||||
@ -409,10 +367,6 @@ static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
if (rc != NV_PORTS)
|
||||
goto err_out_iounmap;
|
||||
|
||||
// Enable hotplug event interrupts.
|
||||
if (host->host_desc->enable_hotplug)
|
||||
host->host_desc->enable_hotplug(probe_ent);
|
||||
|
||||
kfree(probe_ent);
|
||||
|
||||
return 0;
|
||||
@ -432,129 +386,6 @@ err_out:
|
||||
return rc;
|
||||
}
|
||||
|
||||
static void nv_enable_hotplug(struct ata_probe_ent *probe_ent)
|
||||
{
|
||||
u8 intr_mask;
|
||||
|
||||
outb(NV_INT_STATUS_HOTPLUG,
|
||||
probe_ent->port[0].scr_addr + NV_INT_STATUS);
|
||||
|
||||
intr_mask = inb(probe_ent->port[0].scr_addr + NV_INT_ENABLE);
|
||||
intr_mask |= NV_INT_ENABLE_HOTPLUG;
|
||||
|
||||
outb(intr_mask, probe_ent->port[0].scr_addr + NV_INT_ENABLE);
|
||||
}
|
||||
|
||||
static void nv_disable_hotplug(struct ata_host_set *host_set)
|
||||
{
|
||||
u8 intr_mask;
|
||||
|
||||
intr_mask = inb(host_set->ports[0]->ioaddr.scr_addr + NV_INT_ENABLE);
|
||||
|
||||
intr_mask &= ~(NV_INT_ENABLE_HOTPLUG);
|
||||
|
||||
outb(intr_mask, host_set->ports[0]->ioaddr.scr_addr + NV_INT_ENABLE);
|
||||
}
|
||||
|
||||
static int nv_check_hotplug(struct ata_host_set *host_set)
|
||||
{
|
||||
u8 intr_status;
|
||||
|
||||
intr_status = inb(host_set->ports[0]->ioaddr.scr_addr + NV_INT_STATUS);
|
||||
|
||||
// Clear interrupt status.
|
||||
outb(0xff, host_set->ports[0]->ioaddr.scr_addr + NV_INT_STATUS);
|
||||
|
||||
if (intr_status & NV_INT_STATUS_HOTPLUG) {
|
||||
if (intr_status & NV_INT_STATUS_PDEV_ADDED)
|
||||
printk(KERN_WARNING "nv_sata: "
|
||||
"Primary device added\n");
|
||||
|
||||
if (intr_status & NV_INT_STATUS_PDEV_REMOVED)
|
||||
printk(KERN_WARNING "nv_sata: "
|
||||
"Primary device removed\n");
|
||||
|
||||
if (intr_status & NV_INT_STATUS_SDEV_ADDED)
|
||||
printk(KERN_WARNING "nv_sata: "
|
||||
"Secondary device added\n");
|
||||
|
||||
if (intr_status & NV_INT_STATUS_SDEV_REMOVED)
|
||||
printk(KERN_WARNING "nv_sata: "
|
||||
"Secondary device removed\n");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void nv_enable_hotplug_ck804(struct ata_probe_ent *probe_ent)
|
||||
{
|
||||
struct pci_dev *pdev = to_pci_dev(probe_ent->dev);
|
||||
u8 intr_mask;
|
||||
u8 regval;
|
||||
|
||||
pci_read_config_byte(pdev, NV_MCP_SATA_CFG_20, ®val);
|
||||
regval |= NV_MCP_SATA_CFG_20_SATA_SPACE_EN;
|
||||
pci_write_config_byte(pdev, NV_MCP_SATA_CFG_20, regval);
|
||||
|
||||
writeb(NV_INT_STATUS_HOTPLUG, probe_ent->mmio_base + NV_INT_STATUS_CK804);
|
||||
|
||||
intr_mask = readb(probe_ent->mmio_base + NV_INT_ENABLE_CK804);
|
||||
intr_mask |= NV_INT_ENABLE_HOTPLUG;
|
||||
|
||||
writeb(intr_mask, probe_ent->mmio_base + NV_INT_ENABLE_CK804);
|
||||
}
|
||||
|
||||
static void nv_disable_hotplug_ck804(struct ata_host_set *host_set)
|
||||
{
|
||||
struct pci_dev *pdev = to_pci_dev(host_set->dev);
|
||||
u8 intr_mask;
|
||||
u8 regval;
|
||||
|
||||
intr_mask = readb(host_set->mmio_base + NV_INT_ENABLE_CK804);
|
||||
|
||||
intr_mask &= ~(NV_INT_ENABLE_HOTPLUG);
|
||||
|
||||
writeb(intr_mask, host_set->mmio_base + NV_INT_ENABLE_CK804);
|
||||
|
||||
pci_read_config_byte(pdev, NV_MCP_SATA_CFG_20, ®val);
|
||||
regval &= ~NV_MCP_SATA_CFG_20_SATA_SPACE_EN;
|
||||
pci_write_config_byte(pdev, NV_MCP_SATA_CFG_20, regval);
|
||||
}
|
||||
|
||||
static int nv_check_hotplug_ck804(struct ata_host_set *host_set)
|
||||
{
|
||||
u8 intr_status;
|
||||
|
||||
intr_status = readb(host_set->mmio_base + NV_INT_STATUS_CK804);
|
||||
|
||||
// Clear interrupt status.
|
||||
writeb(0xff, host_set->mmio_base + NV_INT_STATUS_CK804);
|
||||
|
||||
if (intr_status & NV_INT_STATUS_HOTPLUG) {
|
||||
if (intr_status & NV_INT_STATUS_PDEV_ADDED)
|
||||
printk(KERN_WARNING "nv_sata: "
|
||||
"Primary device added\n");
|
||||
|
||||
if (intr_status & NV_INT_STATUS_PDEV_REMOVED)
|
||||
printk(KERN_WARNING "nv_sata: "
|
||||
"Primary device removed\n");
|
||||
|
||||
if (intr_status & NV_INT_STATUS_SDEV_ADDED)
|
||||
printk(KERN_WARNING "nv_sata: "
|
||||
"Secondary device added\n");
|
||||
|
||||
if (intr_status & NV_INT_STATUS_SDEV_REMOVED)
|
||||
printk(KERN_WARNING "nv_sata: "
|
||||
"Secondary device removed\n");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __init nv_init(void)
|
||||
{
|
||||
return pci_module_init(&nv_pci_driver);
|
||||
|
Loading…
Reference in New Issue
Block a user