drivers/input/rmi4/rmi_f11.c
Source file repositories/reference/linux-study-clean/drivers/input/rmi4/rmi_f11.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/input/rmi4/rmi_f11.c- Extension
.c- Size
- 41981 bytes
- Lines
- 1385
- Domain
- Driver Families
- Bucket
- drivers/input
- 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.
- 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/kernel.hlinux/delay.hlinux/device.hlinux/input.hlinux/input/mt.hlinux/rmi.hlinux/slab.hlinux/of.hrmi_driver.hrmi_2d_sensor.h
Detected Declarations
struct f11_2d_sensor_queriesstruct f11_2d_ctrlstruct f11_2d_datastruct f11_dataenum f11_finger_statefunction rmi_f11_rel_pos_reportfunction rmi_f11_abs_pos_processfunction rmi_f11_parse_finger_statefunction rmi_f11_finger_handlerfunction f11_2d_construct_datafunction f11_read_control_regsfunction f11_write_control_regsfunction rmi_f11_get_query_parametersfunction rmi_f11_initializefunction rmi_f11_configfunction rmi_f11_attentionfunction rmi_f11_resumefunction rmi_f11_probe
Annotated Snippet
struct f11_2d_sensor_queries {
/* query1 */
u8 nr_fingers;
bool has_rel;
bool has_abs;
bool has_gestures;
bool has_sensitivity_adjust;
bool configurable;
/* query2 */
u8 nr_x_electrodes;
/* query3 */
u8 nr_y_electrodes;
/* query4 */
u8 max_electrodes;
/* query5 */
u8 abs_data_size;
bool has_anchored_finger;
bool has_adj_hyst;
bool has_dribble;
bool has_bending_correction;
bool has_large_object_suppression;
bool has_jitter_filter;
u8 f11_2d_query6;
/* query 7 */
bool has_single_tap;
bool has_tap_n_hold;
bool has_double_tap;
bool has_early_tap;
bool has_flick;
bool has_press;
bool has_pinch;
bool has_chiral;
bool query7_nonzero;
/* query 8 */
bool has_palm_det;
bool has_rotate;
bool has_touch_shapes;
bool has_scroll_zones;
bool has_individual_scroll_zones;
bool has_mf_scroll;
bool has_mf_edge_motion;
bool has_mf_scroll_inertia;
bool query8_nonzero;
/* Query 9 */
bool has_pen;
bool has_proximity;
bool has_palm_det_sensitivity;
bool has_suppress_on_palm_detect;
bool has_two_pen_thresholds;
bool has_contact_geometry;
bool has_pen_hover_discrimination;
bool has_pen_filters;
/* Query 10 */
u8 nr_touch_shapes;
/* Query 11. */
bool has_z_tuning;
bool has_algorithm_selection;
bool has_w_tuning;
bool has_pitch_info;
bool has_finger_size;
bool has_segmentation_aggressiveness;
bool has_XY_clip;
bool has_drumming_filter;
/* Query 12 */
bool has_gapless_finger;
bool has_gapless_finger_tuning;
bool has_8bit_w;
bool has_adjustable_mapping;
bool has_info2;
bool has_physical_props;
bool has_finger_limit;
bool has_linear_coeff_2;
/* Query 13 */
u8 jitter_window_size;
u8 jitter_filter_type;
Annotation
- Immediate include surface: `linux/kernel.h`, `linux/delay.h`, `linux/device.h`, `linux/input.h`, `linux/input/mt.h`, `linux/rmi.h`, `linux/slab.h`, `linux/of.h`.
- Detected declarations: `struct f11_2d_sensor_queries`, `struct f11_2d_ctrl`, `struct f11_2d_data`, `struct f11_data`, `enum f11_finger_state`, `function rmi_f11_rel_pos_report`, `function rmi_f11_abs_pos_process`, `function rmi_f11_parse_finger_state`, `function rmi_f11_finger_handler`, `function f11_2d_construct_data`.
- Atlas domain: Driver Families / drivers/input.
- Implementation status: source implementation candidate.
- 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.