--- /dev/null
+From 796718925159523919a589ecbd6d1811c22ef55f Mon Sep 17 00:00:00 2001
+From: Daniel Mack <zonque@gmail.com>
+Date: Thu, 16 May 2013 15:25:01 +0200
+Subject: ASoC: davinci: fix sample rotation
+
+From: Daniel Mack <zonque@gmail.com>
+
+commit 796718925159523919a589ecbd6d1811c22ef55f upstream.
+
+McASP serial audio engine needs different rotation values on TX and RX
+channels. Commit dde109fb462 ("ASoC: McASP: Fix data rotation for
+playback. Enables 24bit audio playback") changed the calculation to fix
+the playback format, but broke the capture stream by doing it for both
+TXFMT and RXFMT.
+
+Signed-off-by: Daniel Mack <zonque@gmail.com>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Lingzhu Xiang <lxiang@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/davinci/davinci-mcasp.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+--- a/sound/soc/davinci/davinci-mcasp.c
++++ b/sound/soc/davinci/davinci-mcasp.c
+@@ -626,7 +626,8 @@ static int davinci_config_channel_size(s
+ int word_length)
+ {
+ u32 fmt;
+- u32 rotate = (word_length / 4) & 0x7;
++ u32 tx_rotate = (word_length / 4) & 0x7;
++ u32 rx_rotate = (32 - word_length) / 4;
+ u32 mask = (1ULL << word_length) - 1;
+
+ /*
+@@ -647,9 +648,9 @@ static int davinci_config_channel_size(s
+ RXSSZ(fmt), RXSSZ(0x0F));
+ mcasp_mod_bits(dev->base + DAVINCI_MCASP_TXFMT_REG,
+ TXSSZ(fmt), TXSSZ(0x0F));
+- mcasp_mod_bits(dev->base + DAVINCI_MCASP_TXFMT_REG, TXROT(rotate),
++ mcasp_mod_bits(dev->base + DAVINCI_MCASP_TXFMT_REG, TXROT(tx_rotate),
+ TXROT(7));
+- mcasp_mod_bits(dev->base + DAVINCI_MCASP_RXFMT_REG, RXROT(rotate),
++ mcasp_mod_bits(dev->base + DAVINCI_MCASP_RXFMT_REG, RXROT(rx_rotate),
+ RXROT(7));
+ mcasp_set_reg(dev->base + DAVINCI_MCASP_TXMASK_REG, mask);
+ mcasp_set_reg(dev->base + DAVINCI_MCASP_RXMASK_REG, mask);
--- /dev/null
+From 450d1e40d597dd71843457c73d372c4b4f2a83eb Mon Sep 17 00:00:00 2001
+From: Or Gerlitz <ogerlitz@mellanox.com>
+Date: Wed, 1 May 2013 13:25:26 +0000
+Subject: IB/iser: Return error to upper layers on EAGAIN registration failures
+
+From: Or Gerlitz <ogerlitz@mellanox.com>
+
+commit 450d1e40d597dd71843457c73d372c4b4f2a83eb upstream.
+
+Commit 819a087316a6 ("IB/iser: Avoid error prints on EAGAIN
+registration failures") not only eliminated the error print on that
+case, but rather also modified the code such that it doesn't return
+any error to upper layers. As a result a wrong mapping was used. Fix
+this to correctly return the error in that case.
+
+Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
+Signed-off-by: Roland Dreier <roland@purestorage.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/infiniband/ulp/iser/iser_memory.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/infiniband/ulp/iser/iser_memory.c
++++ b/drivers/infiniband/ulp/iser/iser_memory.c
+@@ -416,8 +416,9 @@ int iser_reg_rdma_mem(struct iscsi_iser_
+ for (i=0 ; i<ib_conn->page_vec->length ; i++)
+ iser_err("page_vec[%d] = 0x%llx\n", i,
+ (unsigned long long) ib_conn->page_vec->pages[i]);
+- return err;
+ }
++ if (err)
++ return err;
+ }
+ return 0;
+ }