summaryrefslogtreecommitdiffstats
path: root/drivers/firewire/core-card.c
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2012-03-18 19:06:39 +0100
committerStefan Richter <stefanr@s5r6.in-berlin.de>2012-03-18 22:15:39 +0100
commitd1bbd20972936b9b178fda3eb1ec417cb27fdc01 (patch)
tree5d2e29adbc6f0e8ad0dd07b7624e2ad07181303e /drivers/firewire/core-card.c
parentfirewire: prevent dropping of completed iso packet header data (diff)
downloadlinux-d1bbd20972936b9b178fda3eb1ec417cb27fdc01.tar.xz
linux-d1bbd20972936b9b178fda3eb1ec417cb27fdc01.zip
firewire: allow explicit flushing of iso packet completions
Extend the kernel and userspace APIs to allow reporting all currently completed isochronous packets, even if the next interrupt packet has not yet been reached. This is required to determine the status of the packets at the end of a paused or stopped stream, and useful for more precise synchronization of audio streams. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/core-card.c')
-rw-r--r--drivers/firewire/core-card.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/firewire/core-card.c b/drivers/firewire/core-card.c
index b19db0f6a254..cc595eba7ba9 100644
--- a/drivers/firewire/core-card.c
+++ b/drivers/firewire/core-card.c
@@ -650,6 +650,11 @@ static void dummy_flush_queue_iso(struct fw_iso_context *ctx)
{
}
+static int dummy_flush_iso_completions(struct fw_iso_context *ctx)
+{
+ return -ENODEV;
+}
+
static const struct fw_card_driver dummy_driver_template = {
.read_phy_reg = dummy_read_phy_reg,
.update_phy_reg = dummy_update_phy_reg,
@@ -662,6 +667,7 @@ static const struct fw_card_driver dummy_driver_template = {
.set_iso_channels = dummy_set_iso_channels,
.queue_iso = dummy_queue_iso,
.flush_queue_iso = dummy_flush_queue_iso,
+ .flush_iso_completions = dummy_flush_iso_completions,
};
void fw_card_release(struct kref *kref)