mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 08:38:45 +02:00 
			
		
		
		
	 135d405232
			
		
	
	
		135d405232
		
	
	
	
	
		
			
			This patch adds support for threaded IRQs and handlers through irq::ThreadedRegistration and the irq::ThreadedHandler trait. Threaded interrupts are more permissive in the sense that further processing is possible in a kthread. This means that said execution takes place outside of interrupt context, which is rather restrictive in many ways. Registering a threaded irq is dependent upon having an IrqRequest that was previously allocated by a given device. This will be introduced in subsequent patches. Tested-by: Joel Fernandes <joelagnelf@nvidia.com> Tested-by: Dirk Behme <dirk.behme@de.bosch.com> Reviewed-by: Alice Ryhl <aliceryhl@google.com> Signed-off-by: Daniel Almeida <daniel.almeida@collabora.com> Link: https://lore.kernel.org/r/20250811-topics-tyr-request_irq2-v9-4-0485dcd9bcbf@collabora.com [ Add now available intra-doc links back in. - Danilo ] Signed-off-by: Danilo Krummrich <dakr@kernel.org>
		
			
				
	
	
		
			24 lines
		
	
	
	
		
			698 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
	
		
			698 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0
 | |
| 
 | |
| //! IRQ abstractions.
 | |
| //!
 | |
| //! An IRQ is an interrupt request from a device. It is used to get the CPU's
 | |
| //! attention so it can service a hardware event in a timely manner.
 | |
| //!
 | |
| //! The current abstractions handle IRQ requests and handlers, i.e.: it allows
 | |
| //! drivers to register a handler for a given IRQ line.
 | |
| //!
 | |
| //! C header: [`include/linux/device.h`](srctree/include/linux/interrupt.h)
 | |
| 
 | |
| /// Flags to be used when registering IRQ handlers.
 | |
| mod flags;
 | |
| 
 | |
| /// IRQ allocation and handling.
 | |
| mod request;
 | |
| 
 | |
| pub use flags::Flags;
 | |
| 
 | |
| pub use request::{
 | |
|     Handler, IrqRequest, IrqReturn, Registration, ThreadedHandler, ThreadedIrqReturn,
 | |
|     ThreadedRegistration,
 | |
| };
 |