sound/soc/codecs/lpass-rx-macro.c
Source file repositories/reference/linux-study-clean/sound/soc/codecs/lpass-rx-macro.c
File Facts
- System
- Linux kernel
- Corpus path
sound/soc/codecs/lpass-rx-macro.c- Extension
.c- Size
- 137826 bytes
- Lines
- 4036
- Domain
- Driver Families
- Bucket
- sound/soc
- 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.
- 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/cleanup.hlinux/module.hlinux/init.hlinux/io.hlinux/platform_device.hlinux/pm_runtime.hlinux/clk.hsound/soc.hsound/pcm.hsound/pcm_params.hsound/soc-dapm.hsound/tlv.hlinux/of_clk.hlinux/clk-provider.hlpass-macro-common.h
Detected Declarations
struct comp_coeff_valstruct interp_sample_ratestruct rx_macrostruct wcd_iir_filter_ctlfunction rx_is_wronly_registerfunction rx_is_volatile_registerfunction rx_pre_2_5_is_rw_registerfunction rx_2_5_is_rw_registerfunction rx_is_rw_registerfunction rx_is_writeable_registerfunction rx_is_readable_registerfunction rx_macro_int_dem_inp_mux_putfunction rx_macro_set_prim_interpolator_ratefunction for_each_set_bitfunction rx_macro_set_mix_interpolator_ratefunction for_each_set_bitfunction rx_macro_set_interpolator_ratefunction rx_macro_hw_paramsfunction rx_macro_get_channel_mapfunction rx_macro_digital_mutefunction for_each_set_bitfunction rx_macro_mclk_enablefunction rx_macro_mclk_eventfunction rx_macro_adie_lbfunction rx_macro_enable_main_pathfunction rx_macro_config_companderfunction rx_macro_load_compander_coefffunction rx_macro_enable_softclip_clkfunction rx_macro_config_softclipfunction rx_macro_config_aux_hpffunction rx_macro_enable_clsh_blockfunction rx_macro_config_classhfunction rx_macro_hd2_controlfunction rx_macro_get_companderfunction rx_macro_set_companderfunction rx_macro_mux_getfunction rx_macro_mux_putfunction rx_macro_get_ear_modefunction rx_macro_put_ear_modefunction rx_macro_get_hph_hd2_modefunction rx_macro_put_hph_hd2_modefunction rx_macro_get_hph_pwr_modefunction rx_macro_put_hph_pwr_modefunction rx_macro_soft_clip_enable_getfunction rx_macro_soft_clip_enable_putfunction rx_macro_aux_hpf_mode_getfunction rx_macro_aux_hpf_mode_putfunction rx_macro_hphdelay_lutbypass
Annotated Snippet
struct comp_coeff_val {
u8 lsb;
u8 msb;
};
enum {
HPH_ULP,
HPH_LOHIFI,
HPH_MODE_MAX,
};
static const struct comp_coeff_val comp_coeff_table[HPH_MODE_MAX][COMP_MAX_COEFF] = {
{
{0x40, 0x00},
{0x4C, 0x00},
{0x5A, 0x00},
{0x6B, 0x00},
{0x7F, 0x00},
{0x97, 0x00},
{0xB3, 0x00},
{0xD5, 0x00},
{0xFD, 0x00},
{0x2D, 0x01},
{0x66, 0x01},
{0xA7, 0x01},
{0xF8, 0x01},
{0x57, 0x02},
{0xC7, 0x02},
{0x4B, 0x03},
{0xE9, 0x03},
{0xA3, 0x04},
{0x7D, 0x05},
{0x90, 0x06},
{0xD1, 0x07},
{0x49, 0x09},
{0x00, 0x0B},
{0x01, 0x0D},
{0x59, 0x0F},
},
{
{0x40, 0x00},
{0x4C, 0x00},
{0x5A, 0x00},
{0x6B, 0x00},
{0x80, 0x00},
{0x98, 0x00},
{0xB4, 0x00},
{0xD5, 0x00},
{0xFE, 0x00},
{0x2E, 0x01},
{0x66, 0x01},
{0xA9, 0x01},
{0xF8, 0x01},
{0x56, 0x02},
{0xC4, 0x02},
{0x4F, 0x03},
{0xF0, 0x03},
{0xAE, 0x04},
{0x8B, 0x05},
{0x8E, 0x06},
{0xBC, 0x07},
{0x56, 0x09},
{0x0F, 0x0B},
{0x13, 0x0D},
{0x6F, 0x0F},
},
};
enum {
INTERP_HPHL,
INTERP_HPHR,
INTERP_AUX,
INTERP_MAX
};
enum {
RX_MACRO_RX0,
RX_MACRO_RX1,
RX_MACRO_RX2,
RX_MACRO_RX3,
RX_MACRO_RX4,
RX_MACRO_RX5,
RX_MACRO_PORTS_MAX
};
enum {
RX_MACRO_COMP1, /* HPH_L */
RX_MACRO_COMP2, /* HPH_R */
RX_MACRO_COMP_MAX
};
Annotation
- Immediate include surface: `linux/cleanup.h`, `linux/module.h`, `linux/init.h`, `linux/io.h`, `linux/platform_device.h`, `linux/pm_runtime.h`, `linux/clk.h`, `sound/soc.h`.
- Detected declarations: `struct comp_coeff_val`, `struct interp_sample_rate`, `struct rx_macro`, `struct wcd_iir_filter_ctl`, `function rx_is_wronly_register`, `function rx_is_volatile_register`, `function rx_pre_2_5_is_rw_register`, `function rx_2_5_is_rw_register`, `function rx_is_rw_register`, `function rx_is_writeable_register`.
- Atlas domain: Driver Families / sound/soc.
- 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.