STRUCT ACP63_DEV_DATA(9)
π struct acp63_dev_data(9) π
okay bestie, welcome to the kernel API manual page for struct acp63_dev_data β that's the acp pci driver context, and it is so much more than a struct, it's literally the whole vibe of the ACP PCI driver wrapped up in one little bundle π (also hi, you're reading the struct acp63_dev_data(9) page, manual section 9, slay).
β¨ NAME β¨
struct acp63_dev_data β acp pci driver context π«Ά
πΈ SYNOPSIS πΈ
here's the whole thing, no cap, every single line:
struct acp63_dev_data {
void __iomem *acp63_base;
struct resource *res;
struct acp_hw_ops *hw_ops;
struct platform_device *pdm_dev;
struct platform_device *dmic_codec_dev;
struct platform_device *sdw_dma_dev;
struct platform_device *mach_dev;
struct mutex acp_lock;
struct sdw_amd_acpi_info info;
struct sdw_amd_ctx *sdw;
struct snd_soc_acpi_mach *machines;
bool is_sdw_dev;
bool is_pdm_dev;
bool is_pdm_config;
bool is_sdw_config;
bool sdw_en_stat;
bool acp70_sdw0_wake_event;
bool acp70_sdw1_wake_event;
u32 addr;
u32 reg_range;
u32 acp_rev;
u32 subsystem_vendor;
u32 subsystem_device;
u32 acp_sw_pad_keeper_en;
u32 acp_pad_pulldown_ctrl;
u16 acp63_sdw0_dma_intr_stat[ACP63_SDW0_DMA_MAX_STREAMS];
u16 acp63_sdw1_dma_intr_stat[ACP63_SDW1_DMA_MAX_STREAMS];
u16 acp70_sdw0_dma_intr_stat[ACP70_SDW0_DMA_MAX_STREAMS];
u16 acp70_sdw1_dma_intr_stat[ACP70_SDW1_DMA_MAX_STREAMS];
};
look at her. main character energy honestly π
π§ Members π§
ngl, the page only spells out some of these for you β so here's every member it actually describes, in order, no skipping π
acp63_baseβ the acp mmio base πΊοΈresβ resourcehw_opsβ ACP pci driver platform-specific ops βοΈpdm_devβ ACP PDM controller platform devicemach_devβ platform device for machine driver to support ACP PDM/SoundWire configuration ποΈacp_lockβ used to protect acp common registers π (yes queen, mutual exclusion)infoβ SoundWire AMD information found in ACPI tables πsdwβ SoundWire context for all SoundWire manager instances πis_sdw_devβ flag set totruewhen any SoundWire manager instances are availableis_pdm_devβ flag set totruewhen ACP PDM controller existsis_pdm_configβ flag set totruewhen PDM configuration is selected from BIOSis_sdw_configβ flag set totruewhen SDW configuration is selected from BIOSsdw_en_statβ flag set totruewhen any one of the SoundWire manager instance is enabled βacp70_sdw0_wake_eventβ flag set totruewhen wake irq asserted for SW0 instance β°acp70_sdw1_wake_eventβ flag set totruewhen wake irq asserted for SW1 instance β°addrβ pci ioremap address πreg_rangeβ ACP register rangeacp_revβ ACP PCI revision id π·οΈacp_sw_pad_keeper_enβ store acp SoundWire pad keeper enable register value πacp_pad_pulldown_ctrlβ store acp pad pulldown control register value
and tucked right onto the end of that last one, the page also gives you:
acp63_sdw0-dma_intr_stat: DMA interrupt status array for ACP6.3 platform SoundWire manager-SW0 instance π₯
lowkey a heads up:dmic_codec_dev,sdw_dma_dev,machines,subsystem_vendor,subsystem_device, and theacp63_sdw1_dma_intr_stat/acp70_sdw0_dma_intr_stat/acp70_sdw1_dma_intr_statarrays are all sitting right there in the struct above β the Members list on this page just doesn't give them their own little spotlight moment π they're still in the synopsis tho, don't worry, nothing got deleted.
π¦ SEE ALSO π¦
- Kernel file
./sound/soc/amd/ps/acp63.h struct acp_hw_ops(9)
go read those next bestie, they're giving very much "required reading" πβ¨
and that's the page!! this lil gem lives at ./sound/soc/amd/ps and it's dated October 2026 β mwah, bye, go write some sound driver code πππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms