Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -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_port *ap;
	void __iomem *cmd_addr, *ctl_addr;
	int irq = 0;
	irq_handler_t handler = NULL;

	if (pnp_port_valid(idev, 0) == 0)
		return -ENODEV;

	/* FIXME: Should selected polled PIO here not fail */
	if (pnp_irq_valid(idev, 0) == 0)
		return -ENODEV;
	if (pnp_irq_valid(idev, 0)) {
		irq = pnp_irq(idev, 0);
		handler = ata_interrupt;
	}

	/* allocate host */
	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
		      (unsigned long long)pnp_port_start(idev, 1));

	/* activate */
	return ata_host_activate(host, pnp_irq(idev, 0), ata_interrupt, 0,
	return ata_host_activate(host, irq, handler, 0,
				 &isapnp_sht);
}