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

2007-11-08 Thread Jeff Garzik
On Thu, Nov 08, 2007 at 11:14:56AM +0900, Paul Mundt 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 an invalid IRQ.
> 
> Signed-off-by: Paul Mundt <[EMAIL PROTECTED]>
> 

applied 1-2

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


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

2007-11-08 Thread Alan Cox
On Thu, 8 Nov 2007 11:14:56 +0900
Paul Mundt <[EMAIL PROTECTED]> 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 an invalid IRQ.
> 
> Signed-off-by: Paul Mundt <[EMAIL PROTECTED]>

Acked-by: Alan Cox <[EMAIL PROTECTED]>


May need to tweak polled isapnp support (or add it) to avoid the WARN but
I will take care of it
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2007-11-08 Thread Alan Cox
On Thu, 8 Nov 2007 11:14:56 +0900
Paul Mundt [EMAIL PROTECTED] 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 an invalid IRQ.
 
 Signed-off-by: Paul Mundt [EMAIL PROTECTED]

Acked-by: Alan Cox [EMAIL PROTECTED]


May need to tweak polled isapnp support (or add it) to avoid the WARN but
I will take care of it
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2007-11-08 Thread Jeff Garzik
On Thu, Nov 08, 2007 at 11:14:56AM +0900, Paul Mundt 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 an invalid IRQ.
 
 Signed-off-by: Paul Mundt [EMAIL PROTECTED]
 

applied 1-2

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


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

2007-11-07 Thread Paul Mundt
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 an invalid IRQ.

Signed-off-by: Paul Mundt <[EMAIL PROTECTED]>

---

 drivers/ata/libata-core.c |   10 ++
 1 file changed, 10 insertions(+)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index ec3ce12..89fd0e9 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -7178,6 +7178,10 @@ int ata_host_register(struct ata_host *host, struct 
scsi_host_template *sht)
  * request IRQ and register it.  This helper takes necessasry
  * arguments and performs the three steps in one go.
  *
+ * An invalid IRQ skips the IRQ registration and expects the host to
+ * have set polling mode on the port. In this case, @irq_handler
+ * should be NULL.
+ *
  * LOCKING:
  * Inherited from calling layer (may sleep).
  *
@@ -7194,6 +7198,12 @@ int ata_host_activate(struct ata_host *host, int irq,
if (rc)
return rc;
 
+   /* Special case for polling mode */
+   if (!irq) {
+   WARN_ON(irq_handler);
+   return ata_host_register(host, sht);
+   }
+
rc = devm_request_irq(host->dev, irq, irq_handler, irq_flags,
  dev_driver_string(host->dev), host);
if (rc)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2007-11-07 Thread Paul Mundt
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 an invalid IRQ.

Signed-off-by: Paul Mundt [EMAIL PROTECTED]

---

 drivers/ata/libata-core.c |   10 ++
 1 file changed, 10 insertions(+)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index ec3ce12..89fd0e9 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -7178,6 +7178,10 @@ int ata_host_register(struct ata_host *host, struct 
scsi_host_template *sht)
  * request IRQ and register it.  This helper takes necessasry
  * arguments and performs the three steps in one go.
  *
+ * An invalid IRQ skips the IRQ registration and expects the host to
+ * have set polling mode on the port. In this case, @irq_handler
+ * should be NULL.
+ *
  * LOCKING:
  * Inherited from calling layer (may sleep).
  *
@@ -7194,6 +7198,12 @@ int ata_host_activate(struct ata_host *host, int irq,
if (rc)
return rc;
 
+   /* Special case for polling mode */
+   if (!irq) {
+   WARN_ON(irq_handler);
+   return ata_host_register(host, sht);
+   }
+
rc = devm_request_irq(host-dev, irq, irq_handler, irq_flags,
  dev_driver_string(host-dev), host);
if (rc)
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/