--- /dev/null
+From 749d32237bf39e6576dd95bfdf24e4378e51716c Mon Sep 17 00:00:00 2001
+From: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
+Date: Wed, 19 Mar 2014 12:59:39 +0000
+Subject: ALSA: compress: Pass through return value of open ops callback
+
+From: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
+
+commit 749d32237bf39e6576dd95bfdf24e4378e51716c upstream.
+
+The snd_compr_open function would always return 0 even if the compressed
+ops open function failed, obviously this is incorrect. Looks like this
+was introduced by a small typo in:
+
+commit a0830dbd4e42b38aefdf3fb61ba5019a1a99ea85
+ALSA: Add a reference counter to card instance
+
+This patch returns the value from the compressed op as it should.
+
+Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
+Acked-by: Vinod Koul <vinod.koul@intel.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/core/compress_offload.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/core/compress_offload.c
++++ b/sound/core/compress_offload.c
+@@ -133,7 +133,7 @@ static int snd_compr_open(struct inode *
+ kfree(data);
+ }
+ snd_card_unref(compr->card);
+- return 0;
++ return ret;
+ }
+
+ static int snd_compr_free(struct inode *inode, struct file *f)