irq-common.c 616 B

12345678910111213141516171819202122232425262728293031
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * Copyright (C) BitBox Ltd 2010
  4. */
  5. #include <linux/module.h>
  6. #include <linux/irq.h>
  7. #include <linux/platform_data/asoc-imx-ssi.h>
  8. #include "irq-common.h"
  9. int mxc_set_irq_fiq(unsigned int irq, unsigned int type)
  10. {
  11. struct irq_chip_generic *gc;
  12. struct mxc_extra_irq *exirq;
  13. int ret;
  14. ret = -ENOSYS;
  15. gc = irq_get_chip_data(irq);
  16. if (gc && gc->private) {
  17. exirq = gc->private;
  18. if (exirq->set_irq_fiq) {
  19. struct irq_data *d = irq_get_irq_data(irq);
  20. ret = exirq->set_irq_fiq(irqd_to_hwirq(d), type);
  21. }
  22. }
  23. return ret;
  24. }
  25. EXPORT_SYMBOL(mxc_set_irq_fiq);