--- /dev/null
+From 7679e42ec833ed70aa34790a5f39dcb7e5bda4fe Mon Sep 17 00:00:00 2001
+From: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Date: Wed, 22 Feb 2012 15:52:56 +0000
+Subject: ASoC: dapm: Check for bias level when powering down
+
+From: Mark Brown <broonie@opensource.wolfsonmicro.com>
+
+commit 7679e42ec833ed70aa34790a5f39dcb7e5bda4fe upstream.
+
+Recent enhancements in the bias management means that we might not be
+in standby when the CODEC is idle and can have active widgets without
+being in full power mode but the shutdown functionality assumes these
+things. Add checks for the bias level at each stage so that we don't
+do transitions other than the ON->PREPARE->STANDBY->OFF ones that the
+drivers are expecting.
+
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/soc-dapm.c | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+--- a/sound/soc/soc-dapm.c
++++ b/sound/soc/soc-dapm.c
+@@ -2982,9 +2982,13 @@ static void soc_dapm_shutdown_codec(stru
+ * standby.
+ */
+ if (powerdown) {
+- snd_soc_dapm_set_bias_level(dapm, SND_SOC_BIAS_PREPARE);
++ if (dapm->bias_level == SND_SOC_BIAS_ON)
++ snd_soc_dapm_set_bias_level(dapm,
++ SND_SOC_BIAS_PREPARE);
+ dapm_seq_run(dapm, &down_list, 0, false);
+- snd_soc_dapm_set_bias_level(dapm, SND_SOC_BIAS_STANDBY);
++ if (dapm->bias_level == SND_SOC_BIAS_PREPARE)
++ snd_soc_dapm_set_bias_level(dapm,
++ SND_SOC_BIAS_STANDBY);
+ }
+ }
+
+@@ -2997,7 +3001,9 @@ void snd_soc_dapm_shutdown(struct snd_so
+
+ list_for_each_entry(codec, &card->codec_dev_list, list) {
+ soc_dapm_shutdown_codec(&codec->dapm);
+- snd_soc_dapm_set_bias_level(&codec->dapm, SND_SOC_BIAS_OFF);
++ if (codec->dapm.bias_level == SND_SOC_BIAS_STANDBY)
++ snd_soc_dapm_set_bias_level(&codec->dapm,
++ SND_SOC_BIAS_OFF);
+ }
+ }
+
--- /dev/null
+From 5ed80a75b248bfaf840ea6b38f941edcf6ee7dc7 Mon Sep 17 00:00:00 2001
+From: Javier Martin <javier.martin@vista-silicon.com>
+Date: Thu, 23 Feb 2012 15:43:18 +0100
+Subject: ASoC: i.MX SSI: Fix DSP_A format.
+
+From: Javier Martin <javier.martin@vista-silicon.com>
+
+commit 5ed80a75b248bfaf840ea6b38f941edcf6ee7dc7 upstream.
+
+According to i.MX27 Reference Manual (p 1593) TXBIT0 bit selects
+whether the most significant or the less significant part of the
+data word written to the FIFO is transmitted.
+
+As DSP_A is the same as DSP_B with a data offset of 1 bit, it
+doesn't make any sense to remove TXBIT0 bit here.
+
+Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
+Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/imx/imx-ssi.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/soc/imx/imx-ssi.c
++++ b/sound/soc/imx/imx-ssi.c
+@@ -112,7 +112,7 @@ static int imx_ssi_set_dai_fmt(struct sn
+ break;
+ case SND_SOC_DAIFMT_DSP_A:
+ /* data on rising edge of bclk, frame high 1clk before data */
+- strcr |= SSI_STCR_TFSL | SSI_STCR_TEFS;
++ strcr |= SSI_STCR_TFSL | SSI_STCR_TXBIT0 | SSI_STCR_TEFS;
+ break;
+ }
+
--- /dev/null
+From f8f54e190ddb4ed697036b60f5e2ae6dd45b801c Mon Sep 17 00:00:00 2001
+From: Phil Sutter <phil.sutter@viprinet.com>
+Date: Mon, 27 Feb 2012 12:17:04 +0100
+Subject: crypto: mv_cesa - fix final callback not ignoring input data
+
+From: Phil Sutter <phil.sutter@viprinet.com>
+
+commit f8f54e190ddb4ed697036b60f5e2ae6dd45b801c upstream.
+
+Broken by commit 6ef84509f3d439ed2d43ea40080643efec37f54f for users
+passing a request with non-zero 'nbytes' field, like e.g. testmgr.
+
+Signed-off-by: Phil Sutter <phil.sutter@viprinet.com>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/crypto/mv_cesa.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -714,6 +714,7 @@ static int mv_hash_final(struct ahash_re
+ {
+ struct mv_req_hash_ctx *ctx = ahash_request_ctx(req);
+
++ ahash_request_set_crypt(req, NULL, req->result, 0);
+ mv_update_hash_req_ctx(ctx, 1, 0);
+ return mv_handle_req(&req->base);
+ }
--- /dev/null
+From 37891abc8464637964a26ae4b61d307fef831f80 Mon Sep 17 00:00:00 2001
+From: Alan Stern <stern@rowland.harvard.edu>
+Date: Mon, 27 Feb 2012 11:23:45 -0500
+Subject: HID: usbhid: Add NOGET quirk for the AIREN Slim+ keyboard
+
+From: Alan Stern <stern@rowland.harvard.edu>
+
+commit 37891abc8464637964a26ae4b61d307fef831f80 upstream.
+
+This patch (as1531) adds a NOGET quirk for the Slim+ keyboard marketed
+by AIREN. This keyboard seems to have a lot of bugs; NOGET works
+around only one of them.
+
+Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
+Reported-by: okias <d.okias@gmail.com>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/hid-ids.h | 3 +++
+ drivers/hid/usbhid/hid-quirks.c | 1 +
+ 2 files changed, 4 insertions(+)
+
+--- a/drivers/hid/hid-ids.h
++++ b/drivers/hid/hid-ids.h
+@@ -59,6 +59,9 @@
+ #define USB_VENDOR_ID_AIRCABLE 0x16CA
+ #define USB_DEVICE_ID_AIRCABLE1 0x1502
+
++#define USB_VENDOR_ID_AIREN 0x1a2c
++#define USB_DEVICE_ID_AIREN_SLIMPLUS 0x0002
++
+ #define USB_VENDOR_ID_ALCOR 0x058f
+ #define USB_DEVICE_ID_ALCOR_USBRS232 0x9720
+
+--- a/drivers/hid/usbhid/hid-quirks.c
++++ b/drivers/hid/usbhid/hid-quirks.c
+@@ -53,6 +53,7 @@ static const struct hid_blacklist {
+ { USB_VENDOR_ID_PLAYDOTCOM, USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII, HID_QUIRK_MULTI_INPUT },
+ { USB_VENDOR_ID_TOUCHPACK, USB_DEVICE_ID_TOUCHPACK_RTS, HID_QUIRK_MULTI_INPUT },
+
++ { USB_VENDOR_ID_AIREN, USB_DEVICE_ID_AIREN_SLIMPLUS, HID_QUIRK_NOGET },
+ { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_UC100KM, HID_QUIRK_NOGET },
+ { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS124U, HID_QUIRK_NOGET },
+ { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM, HID_QUIRK_NOGET },
--- /dev/null
+From 41f8ad76362e7aefe3a03949c43e23102dae6e0b Mon Sep 17 00:00:00 2001
+From: Boaz Harrosh <bharrosh@panasas.com>
+Date: Wed, 25 Jan 2012 21:42:58 +0200
+Subject: [SCSI] osd_uld: Bump MAX_OSD_DEVICES from 64 to 1,048,576
+
+From: Boaz Harrosh <bharrosh@panasas.com>
+
+commit 41f8ad76362e7aefe3a03949c43e23102dae6e0b upstream.
+
+It used to be that minors where 8 bit. But now they
+are actually 20 bit. So the fix is simplicity itself.
+
+I've tested with 300 devices and all user-mode utils
+work just fine. I have also mechanically added 10,000
+to the ida (so devices are /dev/osd10000, /dev/osd10001 ...)
+and was able to mkfs an exofs filesystem and access osds
+from user-mode.
+
+All the open-osd user-mode code uses the same library
+to access devices through their symbolic names in
+/dev/osdX so I'd say it's pretty safe. (Well tested)
+
+This patch is very important because some of the systems
+that will be deploying the 3.2 pnfs-objects code are larger
+than 64 OSDs and will stop to work properly when reaching
+that number.
+
+Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
+Signed-off-by: James Bottomley <JBottomley@Parallels.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/scsi/osd/osd_uld.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/scsi/osd/osd_uld.c
++++ b/drivers/scsi/osd/osd_uld.c
+@@ -69,10 +69,10 @@
+ #ifndef SCSI_OSD_MAJOR
+ # define SCSI_OSD_MAJOR 260
+ #endif
+-#define SCSI_OSD_MAX_MINOR 64
++#define SCSI_OSD_MAX_MINOR MINORMASK
+
+ static const char osd_name[] = "osd";
+-static const char *osd_version_string = "open-osd 0.2.0";
++static const char *osd_version_string = "open-osd 0.2.1";
+
+ MODULE_AUTHOR("Boaz Harrosh <bharrosh@panasas.com>");
+ MODULE_DESCRIPTION("open-osd Upper-Layer-Driver osd.ko");
--- /dev/null
+From b24823e61bfd93d0e72088e4f5245287582ed289 Mon Sep 17 00:00:00 2001
+From: Alexandre Bounine <alexandre.bounine@idt.com>
+Date: Mon, 5 Mar 2012 14:59:21 -0800
+Subject: rapidio/tsi721: fix queue wrapping bug in inbound doorbell handler
+
+From: Alexandre Bounine <alexandre.bounine@idt.com>
+
+commit b24823e61bfd93d0e72088e4f5245287582ed289 upstream.
+
+Fix a bug that causes a kernel panic when the number of received doorbells
+is larger than number of entries in the inbound doorbell queue (current
+default value = 512).
+
+Another possible indication for this bug is large number of spurious
+doorbells reported by tsi721 driver after reaching the queue size maximum.
+
+Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com>
+Cc: Chul Kim <chul.kim@idt.com>
+Cc: Matt Porter <mporter@kernel.crashing.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/rapidio/devices/tsi721.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/drivers/rapidio/devices/tsi721.c
++++ b/drivers/rapidio/devices/tsi721.c
+@@ -410,13 +410,14 @@ static void tsi721_db_dpc(struct work_st
+ */
+ mport = priv->mport;
+
+- wr_ptr = ioread32(priv->regs + TSI721_IDQ_WP(IDB_QUEUE));
+- rd_ptr = ioread32(priv->regs + TSI721_IDQ_RP(IDB_QUEUE));
++ wr_ptr = ioread32(priv->regs + TSI721_IDQ_WP(IDB_QUEUE)) % IDB_QSIZE;
++ rd_ptr = ioread32(priv->regs + TSI721_IDQ_RP(IDB_QUEUE)) % IDB_QSIZE;
+
+ while (wr_ptr != rd_ptr) {
+ idb_entry = (u64 *)(priv->idb_base +
+ (TSI721_IDB_ENTRY_SIZE * rd_ptr));
+ rd_ptr++;
++ rd_ptr %= IDB_QSIZE;
+ idb.msg = *idb_entry;
+ *idb_entry = 0;
+
--- /dev/null
+From 7b3cc67d4445995a025a4b55a7dc687b6829b4ca Mon Sep 17 00:00:00 2001
+From: Steffen Maier <maier@linux.vnet.ibm.com>
+Date: Fri, 2 Mar 2012 17:32:58 +0100
+Subject: S390: qdio: fix handler function arguments for zfcp data router
+
+From: Steffen Maier <maier@linux.vnet.ibm.com>
+
+commit 7b3cc67d4445995a025a4b55a7dc687b6829b4ca upstream.
+
+Git commit 25f269f17316549e "[S390] qdio: EQBS retry after CCQ 96"
+introduced a regression in regard to the zfcp data router.
+Revoke the incorrect simplification of the function call arguments
+for the qdio handler to make the zfcp hardware data router working
+again.
+
+This is applicable to 3.2+ kernels.
+
+Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
+Reviewed-by: Jan Glauber <jang@linux.vnet.ibm.com>
+Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/s390/cio/qdio_main.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/s390/cio/qdio_main.c
++++ b/drivers/s390/cio/qdio_main.c
+@@ -167,7 +167,7 @@ again:
+ DBF_ERROR("%4x EQBS ERROR", SCH_NO(q));
+ DBF_ERROR("%3d%3d%2d", count, tmp_count, nr);
+ q->handler(q->irq_ptr->cdev, QDIO_ERROR_ACTIVATE_CHECK_CONDITION,
+- 0, -1, -1, q->irq_ptr->int_parm);
++ q->nr, q->first_to_kick, count, q->irq_ptr->int_parm);
+ return 0;
+ }
+
+@@ -215,7 +215,7 @@ again:
+ DBF_ERROR("%4x SQBS ERROR", SCH_NO(q));
+ DBF_ERROR("%3d%3d%2d", count, tmp_count, nr);
+ q->handler(q->irq_ptr->cdev, QDIO_ERROR_ACTIVATE_CHECK_CONDITION,
+- 0, -1, -1, q->irq_ptr->int_parm);
++ q->nr, q->first_to_kick, count, q->irq_ptr->int_parm);
+ return 0;
+ }
+
kprobes-return-proper-error-code-from-register_kprobe.patch
mm-thp-fix-bug-on-mm-nr_ptes.patch
iwlwifi-fix-key-removal.patch
+tty-powerpc-early-udbg-consoles-can-t-be-modules.patch
+s390-qdio-fix-handler-function-arguments-for-zfcp-data-router.patch
+rapidio-tsi721-fix-queue-wrapping-bug-in-inbound-doorbell-handler.patch
+hid-usbhid-add-noget-quirk-for-the-airen-slim-keyboard.patch
+crypto-mv_cesa-fix-final-callback-not-ignoring-input-data.patch
+osd_uld-bump-max_osd_devices-from-64-to-1-048-576.patch
+viafb-select-hw-scaling-on-vx900-for-iga2.patch
+viafb-fix-iga1-modesetting-on-vx900.patch
+asoc-dapm-check-for-bias-level-when-powering-down.patch
+asoc-i.mx-ssi-fix-dsp_a-format.patch
--- /dev/null
+From f21c6d4a49179f91fd70a41382382f08c780d425 Mon Sep 17 00:00:00 2001
+From: Stephen Rothwell <sfr@canb.auug.org.au>
+Date: Mon, 20 Feb 2012 07:22:38 +1100
+Subject: tty/powerpc: early udbg consoles can't be modules
+
+From: Stephen Rothwell <sfr@canb.auug.org.au>
+
+commit f21c6d4a49179f91fd70a41382382f08c780d425 upstream.
+
+Fixes these build errors:
+
+ERROR: ".udbg_printf" [drivers/tty/ehv_bytechan.ko] undefined!
+ERROR: ".register_early_udbg_console" [drivers/tty/ehv_bytechan.ko] undefined!
+ERROR: "udbg_putc" [drivers/tty/ehv_bytechan.ko] undefined!
+
+Cc: Timur Tabi <timur@freescale.com>
+Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/tty/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/tty/Kconfig
++++ b/drivers/tty/Kconfig
+@@ -365,7 +365,7 @@ config PPC_EPAPR_HV_BYTECHAN
+
+ config PPC_EARLY_DEBUG_EHV_BC
+ bool "Early console (udbg) support for ePAPR hypervisors"
+- depends on PPC_EPAPR_HV_BYTECHAN
++ depends on PPC_EPAPR_HV_BYTECHAN=y
+ help
+ Select this option to enable early console (a.k.a. "udbg") support
+ via an ePAPR byte channel. You also need to choose the byte channel
--- /dev/null
+From e29206381a1436e0f47c0f5b9a23159a03c57715 Mon Sep 17 00:00:00 2001
+From: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
+Date: Wed, 22 Feb 2012 18:53:08 +0000
+Subject: viafb: fix IGA1 modesetting on VX900
+
+From: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
+
+commit e29206381a1436e0f47c0f5b9a23159a03c57715 upstream.
+
+Even if the documentation calls this bit "Reserved" it has to be set
+to 0 for correct modesetting on IGA1.
+
+Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/video/via/hw.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/video/via/hw.c
++++ b/drivers/video/via/hw.c
+@@ -1810,6 +1810,9 @@ static void hw_init(void)
+ break;
+ }
+
++ /* magic required on VX900 for correct modesetting on IGA1 */
++ via_write_reg_mask(VIACR, 0x45, 0x00, 0x01);
++
+ /* probably this should go to the scaling code one day */
+ via_write_reg_mask(VIACR, 0xFD, 0, 0x80); /* VX900 hw scale on IGA2 */
+ viafb_write_regx(scaling_parameters, ARRAY_SIZE(scaling_parameters));
--- /dev/null
+From 050f0e02c8dc38b2b4f2df345ac760d22ca5c7ba Mon Sep 17 00:00:00 2001
+From: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
+Date: Wed, 22 Feb 2012 18:53:07 +0000
+Subject: viafb: select HW scaling on VX900 for IGA2
+
+From: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
+
+commit 050f0e02c8dc38b2b4f2df345ac760d22ca5c7ba upstream.
+
+VX900 can do hardware scaling for both IGAs in contrast to previous
+hardware which could do it only for IGA2. This patch ensures that
+we set the parameter for IGA2 and not for IGA1. This fixes hardware
+scaling on VX900 until we have the infrastructure to support it for
+both IGAs.
+
+Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/video/via/hw.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/video/via/hw.c
++++ b/drivers/video/via/hw.c
+@@ -1811,6 +1811,7 @@ static void hw_init(void)
+ }
+
+ /* probably this should go to the scaling code one day */
++ via_write_reg_mask(VIACR, 0xFD, 0, 0x80); /* VX900 hw scale on IGA2 */
+ viafb_write_regx(scaling_parameters, ARRAY_SIZE(scaling_parameters));
+
+ /* Fill VPIT Parameters */