Qing Zhang
b2c4c3969f
irqchip/loongson-liointc: irqchip add 2.0 version
...
Add IO interrupt controller support for Loongson-2K1000, different
from the Loongson-3A series is that Loongson-2K1000 has 64 interrupt
sources, 0-31 correspond to the device tree liointc0 device node, and
the other correspond to liointc1 node.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Signed-off-by: Qing Zhang <zhangqing@loongson.cn >
Tested-by: Ming Wang <wangming01@loongson.cn >
Acked-by: Marc Zyngier <maz@kernel.org >
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
2021-03-25 10:44:01 +01:00
Qing Zhang
76e0c88dbd
MIPS: Loongson64: Move loongson_system_configuration to loongson.h
...
The purpose of separating loongson_system_configuration from boot_param.h
is to keep the other structure consistent with the firmware.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Signed-off-by: Qing Zhang <zhangqing@loongson.cn >
Acked-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
2021-03-12 11:09:58 +01:00
Huacai Chen
4cc99d0375
irqchip/loongson-liointc: Fix build warnings
...
Fix build warnings as below:
>> drivers/irqchip/irq-loongson-liointc.c:134:12: warning: no previous prototype for 'liointc_of_init' [-Wmissing-prototypes]
134 | int __init liointc_of_init(struct device_node *node,
| ^~~~~~~~~~~~~~~
Fixes: dbb1522679 ("irqchip: Add driver for Loongson I/O Local Interrupt Controller")
Reported-by: kernel test robot <lkp@intel.com >
Signed-off-by: Huacai Chen <chenhuacai@kernel.org >
Signed-off-by: Marc Zyngier <maz@kernel.org >
Link: https://lore.kernel.org/r/20210105025651.772024-1-chenhuacai@loongson.cn
2021-01-05 10:51:14 +00:00
Huacai Chen
c9c73a0541
irqchip/loongson-liointc: Fix misuse of gc->mask_cache
...
In gc->mask_cache bits, 1 means enabled and 0 means disabled, but in the
loongson-liointc driver mask_cache is misused by reverting its meaning.
This patch fix the bug and update the comments as well.
Fixes: dbb1522679 ("irqchip: Add driver for Loongson I/O Local Interrupt Controller")
Signed-off-by: Huacai Chen <chenhc@lemote.com >
Signed-off-by: Marc Zyngier <maz@kernel.org >
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/1596099090-23516-4-git-send-email-chenhc@lemote.com
2020-07-30 12:57:51 +01:00
Tiezhu Yang
fa03587cad
irqchip/loongson-liointc: Fix potential dead lock
...
In the function liointc_set_type(), we need to call the function
irq_gc_unlock_irqrestore() before returning.
Fixes: dbb1522679 ("irqchip: Add driver for Loongson I/O Local Interrupt Controller")
Reported-by: Jianmin Lv <lvjianmin@loongson.cn >
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn >
Signed-off-by: Marc Zyngier <maz@kernel.org >
Link: https://lore.kernel.org/r/1594087972-21715-8-git-send-email-yangtiezhu@loongson.cn
2020-07-17 13:41:42 +01:00
Jiaxun Yang
be09ef09e2
irqchip: loongson-liointc: Workaround LPC IRQ Errata
...
The 1.0 version of that controller has a bug that status bit
of LPC IRQ sometimes doesn't get set correctly.
So we can always blame LPC IRQ when spurious interrupt happens
at the parent interrupt line which LPC IRQ supposed to route
to.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Co-developed-by: Huacai Chen <chenhc@lemote.com >
Signed-off-by: Huacai Chen <chenhc@lemote.com >
Reviewed-by: Marc Zyngier <maz@kernel.org >
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
2020-03-25 10:56:00 +01:00
Jiaxun Yang
dbb1522679
irqchip: Add driver for Loongson I/O Local Interrupt Controller
...
This controller appeared on Loongson family of chips as the primary
package interrupt source.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com >
Co-developed-by: Huacai Chen <chenhc@lemote.com >
Signed-off-by: Huacai Chen <chenhc@lemote.com >
Reviewed-by: Marc Zyngier <maz@kernel.org >
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de >
2020-03-25 10:53:47 +01:00