drivers/parport/parport_ip32.c
Source file repositories/reference/linux-study-clean/drivers/parport/parport_ip32.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/parport/parport_ip32.c- Extension
.c- Size
- 67732 bytes
- Lines
- 2227
- Domain
- Driver Families
- Bucket
- drivers/parport
- Inferred role
- Driver Families: exported/initcall integration point
- Status
- integration 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.
- Exports symbols or registers init work; inspect boot/module ordering and who consumes the exported contract.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/completion.hlinux/delay.hlinux/dma-mapping.hlinux/err.hlinux/init.hlinux/interrupt.hlinux/jiffies.hlinux/kernel.hlinux/module.hlinux/parport.hlinux/sched/signal.hlinux/slab.hlinux/spinlock.hlinux/stddef.hlinux/types.hasm/io.hasm/ip32/ip32_ints.hasm/ip32/mace.h
Detected Declarations
struct parport_ip32_regsstruct parport_ip32_privatestruct parport_ip32_dma_dataenum parport_ip32_irq_modefunction parport_ip32_dump_statefunction parport_ip32_dma_setup_contextfunction parport_ip32_dma_interruptfunction parport_ip32_merr_interruptfunction parport_ip32_dma_startfunction parport_ip32_dma_startfunction parport_ip32_dma_get_residuefunction parport_ip32_dma_registerfunction parport_ip32_dma_unregisterfunction parport_ip32_wakeupfunction parport_ip32_interruptfunction parport_ip32_read_econtrolfunction parport_ip32_write_econtrolfunction parport_ip32_frob_econtrolfunction statefunction parport_ip32_read_datafunction parport_ip32_write_datafunction parport_ip32_read_statusfunction __parport_ip32_read_controlfunction __parport_ip32_write_controlfunction __parport_ip32_frob_controlfunction parport_ip32_read_controlfunction parport_ip32_write_controlfunction __parport_ip32_frob_controlfunction parport_ip32_disable_irqfunction parport_ip32_enable_irqfunction parport_ip32_data_forwardfunction parport_ip32_data_reversefunction parport_ip32_init_statefunction parport_ip32_save_statefunction parport_ip32_restore_statefunction parport_ip32_clear_epp_timeoutfunction parport_ip32_epp_readfunction parport_ip32_epp_writefunction parport_ip32_epp_read_datafunction parport_ip32_epp_write_datafunction parport_ip32_epp_read_addrfunction parport_ip32_epp_write_addrfunction cond_reschedfunction parport_ip32_fwp_wait_pollingfunction parport_ip32_fwp_wait_interruptfunction parport_ip32_fifo_write_block_piofunction parport_ip32_fifo_write_block_dmafunction parport_ip32_fifo_write_block
Annotated Snippet
module_init(parport_ip32_init);
module_exit(parport_ip32_exit);
module_param(verbose_probing, bool, S_IRUGO);
MODULE_PARM_DESC(verbose_probing, "Log chit-chat during initialization");
module_param(features, uint, S_IRUGO);
MODULE_PARM_DESC(features,
"Bit mask of features to enable"
", bit 0: IRQ support"
", bit 1: DMA support"
", bit 2: hardware SPP mode"
", bit 3: hardware EPP mode"
", bit 4: hardware ECP mode");
Annotation
- Immediate include surface: `linux/completion.h`, `linux/delay.h`, `linux/dma-mapping.h`, `linux/err.h`, `linux/init.h`, `linux/interrupt.h`, `linux/jiffies.h`, `linux/kernel.h`.
- Detected declarations: `struct parport_ip32_regs`, `struct parport_ip32_private`, `struct parport_ip32_dma_data`, `enum parport_ip32_irq_mode`, `function parport_ip32_dump_state`, `function parport_ip32_dma_setup_context`, `function parport_ip32_dma_interrupt`, `function parport_ip32_merr_interrupt`, `function parport_ip32_dma_start`, `function parport_ip32_dma_start`.
- Atlas domain: Driver Families / drivers/parport.
- Implementation status: integration implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.