fsl_msi.c (a44dca1717ce2c2381339e21c07d1731a63a7888) fsl_msi.c (cad5cef62a5a0c525d39118d2e94b6e2034d5e05)
1/*
2 * Copyright (C) 2007-2011 Freescale Semiconductor, Inc.
3 *
4 * Author: Tony Li <tony.li@freescale.com>
5 * Jason Jin <Jason.jin@freescale.com>
6 *
7 * The hwirq alloc and free code reuse from sysdev/mpic_msi.c
8 *

--- 319 unchanged lines hidden (view full) ---

328 msi_bitmap_free(&msi->bitmap);
329 if ((msi->feature & FSL_PIC_IP_MASK) != FSL_PIC_IP_VMPIC)
330 iounmap(msi->msi_regs);
331 kfree(msi);
332
333 return 0;
334}
335
1/*
2 * Copyright (C) 2007-2011 Freescale Semiconductor, Inc.
3 *
4 * Author: Tony Li <tony.li@freescale.com>
5 * Jason Jin <Jason.jin@freescale.com>
6 *
7 * The hwirq alloc and free code reuse from sysdev/mpic_msi.c
8 *

--- 319 unchanged lines hidden (view full) ---

328 msi_bitmap_free(&msi->bitmap);
329 if ((msi->feature & FSL_PIC_IP_MASK) != FSL_PIC_IP_VMPIC)
330 iounmap(msi->msi_regs);
331 kfree(msi);
332
333 return 0;
334}
335
336static int __devinit fsl_msi_setup_hwirq(struct fsl_msi *msi,
337 struct platform_device *dev,
338 int offset, int irq_index)
336static int fsl_msi_setup_hwirq(struct fsl_msi *msi, struct platform_device *dev,
337 int offset, int irq_index)
339{
340 struct fsl_msi_cascade_data *cascade_data = NULL;
341 int virt_msir;
342
343 virt_msir = irq_of_parse_and_map(dev->dev.of_node, irq_index);
344 if (virt_msir == NO_IRQ) {
345 dev_err(&dev->dev, "%s: Cannot translate IRQ index %d\n",
346 __func__, irq_index);

--- 11 unchanged lines hidden (view full) ---

358 cascade_data->msi_data = msi;
359 irq_set_handler_data(virt_msir, cascade_data);
360 irq_set_chained_handler(virt_msir, fsl_msi_cascade);
361
362 return 0;
363}
364
365static const struct of_device_id fsl_of_msi_ids[];
338{
339 struct fsl_msi_cascade_data *cascade_data = NULL;
340 int virt_msir;
341
342 virt_msir = irq_of_parse_and_map(dev->dev.of_node, irq_index);
343 if (virt_msir == NO_IRQ) {
344 dev_err(&dev->dev, "%s: Cannot translate IRQ index %d\n",
345 __func__, irq_index);

--- 11 unchanged lines hidden (view full) ---

357 cascade_data->msi_data = msi;
358 irq_set_handler_data(virt_msir, cascade_data);
359 irq_set_chained_handler(virt_msir, fsl_msi_cascade);
360
361 return 0;
362}
363
364static const struct of_device_id fsl_of_msi_ids[];
366static int __devinit fsl_of_msi_probe(struct platform_device *dev)
365static int fsl_of_msi_probe(struct platform_device *dev)
367{
368 const struct of_device_id *match;
369 struct fsl_msi *msi;
370 struct resource res;
371 int err, i, j, irq_index, count;
372 int rc;
373 const u32 *p;
374 const struct fsl_msi_feature *features;

--- 164 unchanged lines hidden ---
366{
367 const struct of_device_id *match;
368 struct fsl_msi *msi;
369 struct resource res;
370 int err, i, j, irq_index, count;
371 int rc;
372 const u32 *p;
373 const struct fsl_msi_feature *features;

--- 164 unchanged lines hidden ---