Commit 91e33d31 authored by Alan Cox's avatar Alan Cox Committed by Jeff Garzik

pata_isapnp: Polled devices

If a card has no IRQ then pass no interrupt handler but allow polled
usage.
Signed-off-by: default avatarAlan Cox <alan@redhat.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 22d5c760
...@@ -75,13 +75,16 @@ static int isapnp_init_one(struct pnp_dev *idev, const struct pnp_device_id *dev ...@@ -75,13 +75,16 @@ static int isapnp_init_one(struct pnp_dev *idev, const struct pnp_device_id *dev
struct ata_host *host; struct ata_host *host;
struct ata_port *ap; struct ata_port *ap;
void __iomem *cmd_addr, *ctl_addr; void __iomem *cmd_addr, *ctl_addr;
int irq = 0;
irq_handler_t handler = NULL;
if (pnp_port_valid(idev, 0) == 0) if (pnp_port_valid(idev, 0) == 0)
return -ENODEV; return -ENODEV;
/* FIXME: Should selected polled PIO here not fail */ if (pnp_irq_valid(idev, 0)) {
if (pnp_irq_valid(idev, 0) == 0) irq = pnp_irq(idev, 0);
return -ENODEV; handler = ata_interrupt;
}
/* allocate host */ /* allocate host */
host = ata_host_alloc(&idev->dev, 1); host = ata_host_alloc(&idev->dev, 1);
...@@ -115,7 +118,7 @@ static int isapnp_init_one(struct pnp_dev *idev, const struct pnp_device_id *dev ...@@ -115,7 +118,7 @@ static int isapnp_init_one(struct pnp_dev *idev, const struct pnp_device_id *dev
(unsigned long long)pnp_port_start(idev, 1)); (unsigned long long)pnp_port_start(idev, 1));
/* activate */ /* activate */
return ata_host_activate(host, pnp_irq(idev, 0), ata_interrupt, 0, return ata_host_activate(host, irq, handler, 0,
&isapnp_sht); &isapnp_sht);
} }
......
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