drivers/staging/media/atomisp/pci/ia_css_irq.h
Source file repositories/reference/linux-study-clean/drivers/staging/media/atomisp/pci/ia_css_irq.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/staging/media/atomisp/pci/ia_css_irq.h- Extension
.h- Size
- 9280 bytes
- Lines
- 226
- Domain
- Driver Families
- Bucket
- drivers/staging
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
ia_css_err.hia_css_pipe_public.hia_css_input_port.hlinux/bits.h
Detected Declarations
struct ia_css_irqenum ia_css_irq_typeenum ia_css_irq_infoenum ia_css_rx_irq_info
Annotated Snippet
struct ia_css_irq {
enum ia_css_irq_info type; /** Interrupt type. */
unsigned int sw_irq_0_val; /** In case of SW interrupt 0, value. */
unsigned int sw_irq_1_val; /** In case of SW interrupt 1, value. */
unsigned int sw_irq_2_val; /** In case of SW interrupt 2, value. */
struct ia_css_pipe *pipe;
/** The image pipe that generated the interrupt. */
};
/* @brief Obtain interrupt information.
*
* @param[out] info Pointer to the interrupt info. The interrupt
* information wil be written to this info.
* @return If an error is encountered during the interrupt info
* and no interrupt could be translated successfully, this
* will return IA_CSS_INTERNAL_ERROR. Otherwise
* 0.
*
* This function is expected to be executed after an interrupt has been sent
* to the IA from the CSS. This function returns information about the interrupt
* which is needed by the IA code to properly handle the interrupt. This
* information includes the image pipe, buffer type etc.
*/
int
ia_css_irq_translate(unsigned int *info);
/* @brief Get CSI receiver error info.
*
* @param[out] irq_bits Pointer to the interrupt bits. The interrupt
* bits will be written this info.
* This will be the error bits that are enabled in the CSI
* receiver error register.
* @return None
*
* This function should be used whenever a CSI receiver error interrupt is
* generated. It provides the detailed information (bits) on the exact error
* that occurred.
*
*@deprecated {this function is DEPRECATED since it only works on CSI port 1.
* Use the function below instead and specify the appropriate port.}
*/
void
ia_css_rx_get_irq_info(unsigned int *irq_bits);
/* @brief Get CSI receiver error info.
*
* @param[in] port Input port identifier.
* @param[out] irq_bits Pointer to the interrupt bits. The interrupt
* bits will be written this info.
* This will be the error bits that are enabled in the CSI
* receiver error register.
* @return None
*
* This function should be used whenever a CSI receiver error interrupt is
* generated. It provides the detailed information (bits) on the exact error
* that occurred.
*/
void
ia_css_rx_port_get_irq_info(enum mipi_port_id port, unsigned int *irq_bits);
/* @brief Clear CSI receiver error info.
*
* @param[in] irq_bits The bits that should be cleared from the CSI receiver
* interrupt bits register.
* @return None
*
* This function should be called after ia_css_rx_get_irq_info has been called
* and the error bits have been interpreted. It is advised to use the return
* value of that function as the argument to this function to make sure no new
* error bits get overwritten.
*
* @deprecated{this function is DEPRECATED since it only works on CSI port 1.
* Use the function below instead and specify the appropriate port.}
*/
void
ia_css_rx_clear_irq_info(unsigned int irq_bits);
/* @brief Clear CSI receiver error info.
*
* @param[in] port Input port identifier.
* @param[in] irq_bits The bits that should be cleared from the CSI receiver
* interrupt bits register.
* @return None
*
* This function should be called after ia_css_rx_get_irq_info has been called
* and the error bits have been interpreted. It is advised to use the return
* value of that function as the argument to this function to make sure no new
* error bits get overwritten.
*/
void
Annotation
- Immediate include surface: `ia_css_err.h`, `ia_css_pipe_public.h`, `ia_css_input_port.h`, `linux/bits.h`.
- Detected declarations: `struct ia_css_irq`, `enum ia_css_irq_type`, `enum ia_css_irq_info`, `enum ia_css_rx_irq_info`.
- Atlas domain: Driver Families / drivers/staging.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.