msic_dcr_read() doesn't really do anything useful, just replace it with
direct calls to dcr_read().

Use dcr_map_reg() in the axon_msi setup code, rather than essentially doing
it by hand.

Signed-off-by: Michael Ellerman <[EMAIL PROTECTED]>
---
 arch/powerpc/platforms/cell/axon_msi.c |   22 +++-------------------
 1 files changed, 3 insertions(+), 19 deletions(-)

diff --git a/arch/powerpc/platforms/cell/axon_msi.c 
b/arch/powerpc/platforms/cell/axon_msi.c
index 26a5e88..57a6149 100644
--- a/arch/powerpc/platforms/cell/axon_msi.c
+++ b/arch/powerpc/platforms/cell/axon_msi.c
@@ -80,18 +80,13 @@ static void msic_dcr_write(struct axon_msic *msic, unsigned 
int dcr_n, u32 val)
        dcr_write(msic->dcr_host, dcr_n, val);
 }
 
-static u32 msic_dcr_read(struct axon_msic *msic, unsigned int dcr_n)
-{
-       return dcr_read(msic->dcr_host, dcr_n);
-}
-
 static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc)
 {
        struct axon_msic *msic = get_irq_data(irq);
        u32 write_offset, msi;
        int idx;
 
-       write_offset = msic_dcr_read(msic, MSIC_WRITE_OFFSET_REG);
+       write_offset = dcr_read(msic->dcr_host, MSIC_WRITE_OFFSET_REG);
        pr_debug("axon_msi: original write_offset 0x%x\n", write_offset);
 
        /* write_offset doesn't wrap properly, so we have to mask it */
@@ -306,7 +301,7 @@ static int axon_msi_notify_reboot(struct notifier_block *nb,
        list_for_each_entry(msic, &axon_msic_list, list) {
                pr_debug("axon_msi: disabling %s\n",
                          msic->irq_host->of_node->full_name);
-               tmp  = msic_dcr_read(msic, MSIC_CTRL_REG);
+               tmp  = dcr_read(msic->dcr_host, MSIC_CTRL_REG);
                tmp &= ~MSIC_CTRL_ENABLE & ~MSIC_CTRL_IRQ_ENABLE;
                msic_dcr_write(msic, MSIC_CTRL_REG, tmp);
        }
@@ -323,7 +318,6 @@ static int axon_msi_setup_one(struct device_node *dn)
        struct page *page;
        struct axon_msic *msic;
        unsigned int virq;
-       int dcr_base, dcr_len;
 
        pr_debug("axon_msi: setting up dn %s\n", dn->full_name);
 
@@ -334,17 +328,7 @@ static int axon_msi_setup_one(struct device_node *dn)
                goto out;
        }
 
-       dcr_base = dcr_resource_start(dn, 0);
-       dcr_len = dcr_resource_len(dn, 0);
-
-       if (dcr_base == 0 || dcr_len == 0) {
-               printk(KERN_ERR
-                      "axon_msi: couldn't parse dcr properties on %s\n",
-                       dn->full_name);
-               goto out;
-       }
-
-       msic->dcr_host = dcr_map(dn, dcr_base, dcr_len);
+       msic->dcr_host = dcr_map_reg(dn, 0);
        if (!DCR_MAP_OK(msic->dcr_host)) {
                printk(KERN_ERR "axon_msi: dcr_map failed for %s\n",
                       dn->full_name);
-- 
1.5.1.3.g7a33b

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to