sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c

Source file repositories/reference/linux-study-clean/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c

File Facts

System
Linux kernel
Corpus path
sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c
Extension
.c
Size
22658 bytes
Lines
735
Domain
Driver Families
Bucket
sound/soc
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.

Dependency Surface

Detected Declarations

Annotated Snippet

if (q6dsp_audio_fe_dais[i].id == id) {
			*dai_name = q6dsp_audio_fe_dais[i].name;
			ret = 0;
			break;
		}
	}

	return ret;
}
EXPORT_SYMBOL_GPL(q6dsp_audio_ports_of_xlate_dai_name);

struct snd_soc_dai_driver *q6dsp_audio_ports_set_config(struct device *dev,
				struct q6dsp_audio_port_dai_driver_config *cfg,
				int *num_dais)
{
	int i;

	for (i = 0; i  < ARRAY_SIZE(q6dsp_audio_fe_dais); i++) {
		switch (q6dsp_audio_fe_dais[i].id) {
		case HDMI_RX:
		case DISPLAY_PORT_RX:
			q6dsp_audio_fe_dais[i].ops = cfg->q6hdmi_ops;
			break;
		case DISPLAY_PORT_RX_1 ... DISPLAY_PORT_RX_7:
			q6dsp_audio_fe_dais[i].ops = cfg->q6hdmi_ops;
			break;
		case SLIMBUS_0_RX ... SLIMBUS_6_TX:
			q6dsp_audio_fe_dais[i].ops = cfg->q6slim_ops;
			break;
		case SENARY_MI2S_RX ... SENARY_MI2S_TX:
		case QUINARY_MI2S_RX ... QUINARY_MI2S_TX:
		case PRIMARY_MI2S_RX ... QUATERNARY_MI2S_TX:
		case LPI_MI2S_RX_0 ... LPI_MI2S_TX_4:
			q6dsp_audio_fe_dais[i].ops = cfg->q6i2s_ops;
			break;
		case PRIMARY_TDM_RX_0 ... QUINARY_TDM_TX_7:
			q6dsp_audio_fe_dais[i].ops = cfg->q6tdm_ops;
			break;
		case WSA_CODEC_DMA_RX_0 ... RX_CODEC_DMA_RX_7:
			q6dsp_audio_fe_dais[i].ops = cfg->q6dma_ops;
			break;
		case USB_RX:
			q6dsp_audio_fe_dais[i].ops = cfg->q6usb_ops;
			break;
		default:
			break;
		}
	}

	*num_dais = ARRAY_SIZE(q6dsp_audio_fe_dais);
	return q6dsp_audio_fe_dais;
}
EXPORT_SYMBOL_GPL(q6dsp_audio_ports_set_config);

Annotation

Implementation Notes