From 5b2599a07eaee53d713fb68f5343eba88fa249c0 Mon Sep 17 00:00:00 2001 From: Clemens Ladisch Date: Tue, 15 Mar 2011 07:55:50 +0100 Subject: ALSA: firewire-lib: allocate DMA buffer separately For correct cache coherency on some architectures, DMA buffers must be allocated in a different cache line than data that is concurrently used by the CPU. Signed-off-by: Clemens Ladisch Signed-off-by: Takashi Iwai --- sound/firewire/iso-resources.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'sound/firewire/iso-resources.c') diff --git a/sound/firewire/iso-resources.c b/sound/firewire/iso-resources.c index 6f2b5f8651fd..775dbd5f3445 100644 --- a/sound/firewire/iso-resources.c +++ b/sound/firewire/iso-resources.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include "iso-resources.h" @@ -22,12 +23,18 @@ * If the device does not support all channel numbers, change @r->channels_mask * after calling this function. */ -void fw_iso_resources_init(struct fw_iso_resources *r, struct fw_unit *unit) +int fw_iso_resources_init(struct fw_iso_resources *r, struct fw_unit *unit) { + r->buffer = kmalloc(2 * 4, GFP_KERNEL); + if (!r->buffer) + return -ENOMEM; + r->channels_mask = ~0uLL; r->unit = fw_unit_get(unit); mutex_init(&r->mutex); r->allocated = false; + + return 0; } /** @@ -37,6 +44,7 @@ void fw_iso_resources_init(struct fw_iso_resources *r, struct fw_unit *unit) void fw_iso_resources_destroy(struct fw_iso_resources *r) { WARN_ON(r->allocated); + kfree(r->buffer); mutex_destroy(&r->mutex); fw_unit_put(r->unit); } -- cgit v1.2.3