Re: [PATCH 1/2] libata: Support PIO polling-only hosts.

From: Mark Lord
Date: Wed Nov 07 2007 - 09:09:43 EST


Paul Mundt wrote:
On Wed, Nov 07, 2007 at 01:09:40PM +0000, Alan Cox wrote:
On Wed, 7 Nov 2007 17:10:52 +0900
Paul Mundt <lethal@xxxxxxxxxxxx> wrote:
By default ata_host_activate() expects a valid IRQ in order to
successfully register the host. This patch enables a special case
for registering polling-only hosts that either don't have IRQs
or have buggy IRQ generation (either in terms of handling or
sensing), which otherwise work fine.

Hosts that want to use polling mode can simply set ATA_FLAG_PIO_POLLING
and pass in a NULL IRQ handler or invalid (< 0) IRQ.
NAK

Zero is "no IRQ", please use that for polling not "< 0"

However, platform_get_irq() will happily return IRQ#0, and it's a valid
vector on plenty of machines. NO_IRQ is also < 0 on at least FR-V, ARM,
blackin, PA-RISC, some PowerPC, and even IDE.

Too bad. The Penultimate Penguin wants zero to continue to mean "no IRQ".

Dig into the archives for multiple threads on this exact topic.
The end result is that "0" means "no IRQ". If your physical IRQ actually
is the number 0, then reencode it to some other value for this purpose.

Yes, a bit of pain, but that's how many parts of the kernel expect it,
and in the end it's no more overall hassle than doing it differently might
have been.

Cheers
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/