sound/hda/codecs/side-codecs/cs35l56_hda.h

Source file repositories/reference/linux-study-clean/sound/hda/codecs/side-codecs/cs35l56_hda.h

File Facts

System
Linux kernel
Corpus path
sound/hda/codecs/side-codecs/cs35l56_hda.h
Extension
.h
Size
1353 bytes
Lines
58
Domain
Driver Families
Bucket
sound/hda
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.

Dependency Surface

Detected Declarations

Annotated Snippet

struct cs35l56_hda {
	struct cs35l56_base base;
	struct hda_codec *codec;
	struct work_struct dsp_work;

	int index;
	int num_amps;
	const char *system_name;
	const char *amp_name;

	struct cs_dsp cs_dsp;
	bool playing;
	bool suspended;
	u8 asp_tx_mask;

	struct snd_kcontrol *posture_ctl;
	struct snd_kcontrol *volume_ctl;
	struct snd_kcontrol *mixer_ctl[4];

#if IS_ENABLED(CONFIG_SND_DEBUG)
	struct dentry *debugfs_root;
#endif
};

static inline struct cs35l56_hda *cs35l56_hda_from_base(struct cs35l56_base *cs35l56_base)
{
	return container_of(cs35l56_base, struct cs35l56_hda, base);
}

extern const struct dev_pm_ops cs35l56_hda_pm_ops;

int cs35l56_hda_common_probe(struct cs35l56_hda *cs35l56, int hid, int id);
void cs35l56_hda_remove(struct device *dev);

#endif /*__CS35L56_HDA_H__*/

Annotation

Implementation Notes