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

Mark Lord
2007-11-07T14:09:42Z

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@linux-sh.org> 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