mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2024-12-29 09:12:07 +00:00
ALSA: hda: intel-nhlt: add intel_nhlt_ssp_device_type() function
Add a helper function intel_nhlt_ssp_device_type() to detect the type of specific SSP port. The result is nhlt_device_type enum type which could be NHLT_DEVICE_BT or NHLT_DEVICE_I2S. Signed-off-by: Brent Lu <brent.lu@intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Message-ID: <20231127120657.19764-2-peter.ujfalusi@linux.intel.com>
This commit is contained in:
parent
9f2347842b
commit
02545bc575
@ -143,6 +143,9 @@ intel_nhlt_get_endpoint_blob(struct device *dev, struct nhlt_acpi_table *nhlt,
|
|||||||
u32 bus_id, u8 link_type, u8 vbps, u8 bps,
|
u32 bus_id, u8 link_type, u8 vbps, u8 bps,
|
||||||
u8 num_ch, u32 rate, u8 dir, u8 dev_type);
|
u8 num_ch, u32 rate, u8 dir, u8 dev_type);
|
||||||
|
|
||||||
|
int intel_nhlt_ssp_device_type(struct device *dev, struct nhlt_acpi_table *nhlt,
|
||||||
|
u8 virtual_bus_id);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
static inline struct nhlt_acpi_table *intel_nhlt_init(struct device *dev)
|
static inline struct nhlt_acpi_table *intel_nhlt_init(struct device *dev)
|
||||||
@ -184,6 +187,13 @@ intel_nhlt_get_endpoint_blob(struct device *dev, struct nhlt_acpi_table *nhlt,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int intel_nhlt_ssp_device_type(struct device *dev,
|
||||||
|
struct nhlt_acpi_table *nhlt,
|
||||||
|
u8 virtual_bus_id)
|
||||||
|
{
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -343,3 +343,29 @@ intel_nhlt_get_endpoint_blob(struct device *dev, struct nhlt_acpi_table *nhlt,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(intel_nhlt_get_endpoint_blob);
|
EXPORT_SYMBOL(intel_nhlt_get_endpoint_blob);
|
||||||
|
|
||||||
|
int intel_nhlt_ssp_device_type(struct device *dev, struct nhlt_acpi_table *nhlt,
|
||||||
|
u8 virtual_bus_id)
|
||||||
|
{
|
||||||
|
struct nhlt_endpoint *epnt;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (!nhlt)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
epnt = (struct nhlt_endpoint *)nhlt->desc;
|
||||||
|
for (i = 0; i < nhlt->endpoint_count; i++) {
|
||||||
|
/* for SSP link the virtual bus id is the SSP port number */
|
||||||
|
if (epnt->linktype == NHLT_LINK_SSP &&
|
||||||
|
epnt->virtual_bus_id == virtual_bus_id) {
|
||||||
|
dev_dbg(dev, "SSP%d: dev_type=%d\n", virtual_bus_id,
|
||||||
|
epnt->device_type);
|
||||||
|
return epnt->device_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
epnt = (struct nhlt_endpoint *)((u8 *)epnt + epnt->length);
|
||||||
|
}
|
||||||
|
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(intel_nhlt_ssp_device_type);
|
||||||
|
Loading…
Reference in New Issue
Block a user