Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4031826b3ca40982880f6b9f2282c7d7fad60d77
Commit:     4031826b3ca40982880f6b9f2282c7d7fad60d77
Parent:     aa2e09da2a332e748532aa2a71b090e7e7c3203d
Author:     Tejun Heo <[EMAIL PROTECTED]>
AuthorDate: Tue Jul 3 01:38:47 2007 +0900
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Tue Jul 3 10:06:35 2007 -0400

    libata: fix assigned IRQ reporting
    
    host->irq and host->irq2 should be set before ata_host_register() for
    IRQ reporting to work.  Move up host->irq assignment in
    ata_host_activate() and add it to ata_pci_init_one() native path and
    pata_cs5520.
    
    The port info printing in ata_host_register() doesn't fit all the
    different controllers.  It should probably be moved out to LLDs with
    some helpers in the future.
    
    Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/ata/libata-core.c |    6 +++---
 drivers/ata/libata-sff.c  |    5 +++--
 drivers/ata/pata_cs5520.c |    5 +++++
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 2407f84..981b397 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -6423,14 +6423,14 @@ int ata_host_activate(struct ata_host *host, int irq,
        if (rc)
                return rc;
 
+       /* Used to print device info at probe */
+       host->irq = irq;
+
        rc = ata_host_register(host, sht);
        /* if failed, just free the IRQ and leave ports alone */
        if (rc)
                devm_free_irq(host->dev, irq, host);
 
-       /* Used to print device info at probe */
-       host->irq = irq;
-
        return rc;
 }
 
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index ce84805..fa1c22c 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -1065,10 +1065,11 @@ int ata_pci_init_one(struct pci_dev *pdev,
        if (rc)
                goto err_out;
 
-       if (!legacy_mode)
+       if (!legacy_mode) {
                rc = devm_request_irq(dev, pdev->irq, pi->port_ops->irq_handler,
                                      IRQF_SHARED, DRV_NAME, host);
-       else {
+               host->irq = pdev->irq;
+       } else {
                irq_handler_t handler[2] = { host->ops->irq_handler,
                                             host->ops->irq_handler };
                unsigned int irq_flags[2] = { IRQF_SHARED, IRQF_SHARED };
diff --git a/drivers/ata/pata_cs5520.c b/drivers/ata/pata_cs5520.c
index 1aabe15..00cf013 100644
--- a/drivers/ata/pata_cs5520.c
+++ b/drivers/ata/pata_cs5520.c
@@ -284,6 +284,11 @@ static int __devinit cs5520_init_one(struct pci_dev *pdev, 
const struct pci_devi
                                      ata_interrupt, 0, DRV_NAME, host);
                if (rc)
                        return rc;
+
+               if (i == 0)
+                       host->irq = irq[0];
+               else
+                       host->irq2 = irq[1];
        }
 
        return ata_host_register(host, &cs5520_sht);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to