Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) // SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  * LSAPIC Interrupt Controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  * This takes care of interrupts that are generated by the CPU's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  * internal Streamlined Advanced Programmable Interrupt Controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7)  * (LSAPIC), such as the ITC and IPI interrupts.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8)     *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9)  * Copyright (C) 1999 VA Linux Systems
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)  * Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)  * Copyright (C) 2000 Hewlett-Packard Co
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)  * Copyright (C) 2000 David Mosberger-Tang <davidm@hpl.hp.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #include <linux/sched.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #include <linux/irq.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) static unsigned int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) lsapic_noop_startup (struct irq_data *data)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 	return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) static void
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) lsapic_noop (struct irq_data *data)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	/* nothing to do... */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) static int lsapic_retrigger(struct irq_data *data)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 	ia64_resend_irq(data->irq);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	return 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) struct irq_chip irq_type_ia64_lsapic = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 	.name =			"LSAPIC",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 	.irq_startup =		lsapic_noop_startup,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 	.irq_shutdown =		lsapic_noop,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 	.irq_enable =		lsapic_noop,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 	.irq_disable =		lsapic_noop,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 	.irq_ack =		lsapic_noop,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 	.irq_retrigger =	lsapic_retrigger,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) };