summaryrefslogtreecommitdiffstats
path: root/sound/firewire/cmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/firewire/cmp.c')
-rw-r--r--sound/firewire/cmp.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/sound/firewire/cmp.c b/sound/firewire/cmp.c
index 9da40d9..d31a403 100644
--- a/sound/firewire/cmp.c
+++ b/sound/firewire/cmp.c
@@ -152,6 +152,24 @@ int cmp_connection_init(struct cmp_connection *c,
EXPORT_SYMBOL(cmp_connection_init);
/**
+ * cmp_connection_check_used - check connection is already esablished or not
+ * @c: the connection manager to be checked
+ */
+int cmp_connection_check_used(struct cmp_connection *c, bool *used)
+{
+ __be32 pcr;
+ int err;
+
+ err = snd_fw_transaction(
+ c->resources.unit, TCODE_READ_QUADLET_REQUEST,
+ pcr_address(c), &pcr, 4, 0);
+ if (err >= 0)
+ *used = (pcr & cpu_to_be32(PCR_BCAST_CONN | PCR_P2P_CONN_MASK));
+ return err;
+}
+EXPORT_SYMBOL(cmp_connection_check_used);
+
+/**
* cmp_connection_destroy - free connection manager resources
* @c: the connection manager
*/
OpenPOWER on IntegriCloud