[PATCH 1/4] powerpc: fsl_msi doesn't need it's own of_node
Jin Zhengxiong
Jason.Jin at freescale.com
Thu Jul 17 20:48:59 EST 2008
Ack, Tested the patch set on Freescale board and working good.
Thanks
Jason Jin
> -----Original Message-----
> From: Michael Ellerman [mailto:michael at ellerman.id.au]
> Sent: Tuesday, July 15, 2008 10:46 PM
> To: Benjamin Herrenschmidt
> Cc: linuxppc-dev at ozlabs.org; Olof Johannsson; Gala Kumar; Jin
> Zhengxiong
> Subject: [PATCH 1/4] powerpc: fsl_msi doesn't need it's own of_node
>
> The FSL MSI code keeps a pointer to the of_node from the
> device it represents. However it also has an irq_host, which
> contains a pointer to the of_node, so use that one instead.
>
> Signed-off-by: Michael Ellerman <michael at ellerman.id.au>
> ---
> arch/powerpc/sysdev/fsl_msi.c | 12 +++++-------
> arch/powerpc/sysdev/fsl_msi.h | 3 ---
> 2 files changed, 5 insertions(+), 10 deletions(-)
>
> diff --git a/arch/powerpc/sysdev/fsl_msi.c
> b/arch/powerpc/sysdev/fsl_msi.c index 2c5187c..d49fa99 100644
> --- a/arch/powerpc/sysdev/fsl_msi.c
> +++ b/arch/powerpc/sysdev/fsl_msi.c
> @@ -108,7 +108,8 @@ static int fsl_msi_free_dt_hwirqs(struct
> fsl_msi *msi)
> bitmap_allocate_region(msi->fsl_msi_bitmap, 0,
> get_count_order(NR_MSI_IRQS));
>
> - p = of_get_property(msi->of_node, "msi-available-ranges", &len);
> + p = of_get_property(msi->irqhost->of_node,
> "msi-available-ranges",
> + &len);
>
> if (!p) {
> /* No msi-available-ranges property,
> @@ -120,7 +121,7 @@ static int fsl_msi_free_dt_hwirqs(struct
> fsl_msi *msi)
>
> if ((len % (2 * sizeof(u32))) != 0) {
> printk(KERN_WARNING "fsl_msi: Malformed
> msi-available-ranges "
> - "property on %s\n", msi->of_node->full_name);
> + "property on %s\n",
> msi->irqhost->of_node->full_name);
> return -EINVAL;
> }
>
> @@ -317,14 +318,11 @@ static int __devinit
> fsl_of_msi_probe(struct of_device *dev,
> goto error_out;
> }
>
> - msi->of_node = of_node_get(dev->node);
> + msi->irqhost = irq_alloc_host(dev->node, IRQ_HOST_MAP_LINEAR,
> + NR_MSI_IRQS,
> &fsl_msi_host_ops, 0);
>
> - msi->irqhost = irq_alloc_host(of_node_get(dev->node),
> - IRQ_HOST_MAP_LINEAR,
> - NR_MSI_IRQS, &fsl_msi_host_ops, 0);
> if (msi->irqhost == NULL) {
> dev_err(&dev->dev, "No memory for MSI irqhost\n");
> - of_node_put(dev->node);
> err = -ENOMEM;
> goto error_out;
> }
> diff --git a/arch/powerpc/sysdev/fsl_msi.h
> b/arch/powerpc/sysdev/fsl_msi.h index a653468..6574550 100644
> --- a/arch/powerpc/sysdev/fsl_msi.h
> +++ b/arch/powerpc/sysdev/fsl_msi.h
> @@ -22,9 +22,6 @@
> #define FSL_PIC_IP_IPIC 0x00000002
>
> struct fsl_msi {
> - /* Device node of the MSI interrupt*/
> - struct device_node *of_node;
> -
> struct irq_host *irqhost;
>
> unsigned long cascade_irq;
> --
> 1.5.5
>
>
More information about the Linuxppc-dev
mailing list