From: Greg Kroah-Hartman Date: Wed, 7 Mar 2012 18:37:50 +0000 (-0800) Subject: 3.2-stable patches X-Git-Tag: v3.0.24~28 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c6885701c97e085ed226d53f08d9dbcd488f7623;p=thirdparty%2Fkernel%2Fstable-queue.git 3.2-stable patches added patches: asoc-dapm-check-for-bias-level-when-powering-down.patch asoc-i.mx-ssi-fix-dsp_a-format.patch crypto-mv_cesa-fix-final-callback-not-ignoring-input-data.patch hid-usbhid-add-noget-quirk-for-the-airen-slim-keyboard.patch osd_uld-bump-max_osd_devices-from-64-to-1-048-576.patch rapidio-tsi721-fix-queue-wrapping-bug-in-inbound-doorbell-handler.patch s390-qdio-fix-handler-function-arguments-for-zfcp-data-router.patch tty-powerpc-early-udbg-consoles-can-t-be-modules.patch viafb-fix-iga1-modesetting-on-vx900.patch viafb-select-hw-scaling-on-vx900-for-iga2.patch --- diff --git a/queue-3.2/asoc-dapm-check-for-bias-level-when-powering-down.patch b/queue-3.2/asoc-dapm-check-for-bias-level-when-powering-down.patch new file mode 100644 index 00000000000..29cd7182f33 --- /dev/null +++ b/queue-3.2/asoc-dapm-check-for-bias-level-when-powering-down.patch @@ -0,0 +1,52 @@ +From 7679e42ec833ed70aa34790a5f39dcb7e5bda4fe Mon Sep 17 00:00:00 2001 +From: Mark Brown +Date: Wed, 22 Feb 2012 15:52:56 +0000 +Subject: ASoC: dapm: Check for bias level when powering down + +From: Mark Brown + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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); + } + } + diff --git a/queue-3.2/asoc-i.mx-ssi-fix-dsp_a-format.patch b/queue-3.2/asoc-i.mx-ssi-fix-dsp_a-format.patch new file mode 100644 index 00000000000..a7158c0279a --- /dev/null +++ b/queue-3.2/asoc-i.mx-ssi-fix-dsp_a-format.patch @@ -0,0 +1,36 @@ +From 5ed80a75b248bfaf840ea6b38f941edcf6ee7dc7 Mon Sep 17 00:00:00 2001 +From: Javier Martin +Date: Thu, 23 Feb 2012 15:43:18 +0100 +Subject: ASoC: i.MX SSI: Fix DSP_A format. + +From: Javier Martin + +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 +Acked-by: Sascha Hauer +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + 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; + } + diff --git a/queue-3.2/crypto-mv_cesa-fix-final-callback-not-ignoring-input-data.patch b/queue-3.2/crypto-mv_cesa-fix-final-callback-not-ignoring-input-data.patch new file mode 100644 index 00000000000..72f30745a18 --- /dev/null +++ b/queue-3.2/crypto-mv_cesa-fix-final-callback-not-ignoring-input-data.patch @@ -0,0 +1,30 @@ +From f8f54e190ddb4ed697036b60f5e2ae6dd45b801c Mon Sep 17 00:00:00 2001 +From: Phil Sutter +Date: Mon, 27 Feb 2012 12:17:04 +0100 +Subject: crypto: mv_cesa - fix final callback not ignoring input data + +From: Phil Sutter + +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 +Signed-off-by: Herbert Xu +Signed-off-by: Greg Kroah-Hartman + +--- + 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); + } diff --git a/queue-3.2/hid-usbhid-add-noget-quirk-for-the-airen-slim-keyboard.patch b/queue-3.2/hid-usbhid-add-noget-quirk-for-the-airen-slim-keyboard.patch new file mode 100644 index 00000000000..d0315e1a100 --- /dev/null +++ b/queue-3.2/hid-usbhid-add-noget-quirk-for-the-airen-slim-keyboard.patch @@ -0,0 +1,45 @@ +From 37891abc8464637964a26ae4b61d307fef831f80 Mon Sep 17 00:00:00 2001 +From: Alan Stern +Date: Mon, 27 Feb 2012 11:23:45 -0500 +Subject: HID: usbhid: Add NOGET quirk for the AIREN Slim+ keyboard + +From: Alan Stern + +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 +Reported-by: okias +Signed-off-by: Jiri Kosina +Signed-off-by: Greg Kroah-Hartman + +--- + 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 }, diff --git a/queue-3.2/osd_uld-bump-max_osd_devices-from-64-to-1-048-576.patch b/queue-3.2/osd_uld-bump-max_osd_devices-from-64-to-1-048-576.patch new file mode 100644 index 00000000000..9719f288b59 --- /dev/null +++ b/queue-3.2/osd_uld-bump-max_osd_devices-from-64-to-1-048-576.patch @@ -0,0 +1,50 @@ +From 41f8ad76362e7aefe3a03949c43e23102dae6e0b Mon Sep 17 00:00:00 2001 +From: Boaz Harrosh +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 + +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 +Signed-off-by: James Bottomley +Signed-off-by: Greg Kroah-Hartman + +--- + 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 "); + MODULE_DESCRIPTION("open-osd Upper-Layer-Driver osd.ko"); diff --git a/queue-3.2/rapidio-tsi721-fix-queue-wrapping-bug-in-inbound-doorbell-handler.patch b/queue-3.2/rapidio-tsi721-fix-queue-wrapping-bug-in-inbound-doorbell-handler.patch new file mode 100644 index 00000000000..5532b6276a3 --- /dev/null +++ b/queue-3.2/rapidio-tsi721-fix-queue-wrapping-bug-in-inbound-doorbell-handler.patch @@ -0,0 +1,46 @@ +From b24823e61bfd93d0e72088e4f5245287582ed289 Mon Sep 17 00:00:00 2001 +From: Alexandre Bounine +Date: Mon, 5 Mar 2012 14:59:21 -0800 +Subject: rapidio/tsi721: fix queue wrapping bug in inbound doorbell handler + +From: Alexandre Bounine + +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 +Cc: Chul Kim +Cc: Matt Porter +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + 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; + diff --git a/queue-3.2/s390-qdio-fix-handler-function-arguments-for-zfcp-data-router.patch b/queue-3.2/s390-qdio-fix-handler-function-arguments-for-zfcp-data-router.patch new file mode 100644 index 00000000000..81d044f75f0 --- /dev/null +++ b/queue-3.2/s390-qdio-fix-handler-function-arguments-for-zfcp-data-router.patch @@ -0,0 +1,46 @@ +From 7b3cc67d4445995a025a4b55a7dc687b6829b4ca Mon Sep 17 00:00:00 2001 +From: Steffen Maier +Date: Fri, 2 Mar 2012 17:32:58 +0100 +Subject: S390: qdio: fix handler function arguments for zfcp data router + +From: Steffen Maier + +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 +Reviewed-by: Jan Glauber +Signed-off-by: Martin Schwidefsky +Signed-off-by: Greg Kroah-Hartman + +--- + 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; + } + diff --git a/queue-3.2/series b/queue-3.2/series index 50de1e82069..48a4e2b946f 100644 --- a/queue-3.2/series +++ b/queue-3.2/series @@ -35,3 +35,13 @@ ath9k_hw-prevent-writes-to-const-data-on-ar9160.patch 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 diff --git a/queue-3.2/tty-powerpc-early-udbg-consoles-can-t-be-modules.patch b/queue-3.2/tty-powerpc-early-udbg-consoles-can-t-be-modules.patch new file mode 100644 index 00000000000..a9573cf93b0 --- /dev/null +++ b/queue-3.2/tty-powerpc-early-udbg-consoles-can-t-be-modules.patch @@ -0,0 +1,34 @@ +From f21c6d4a49179f91fd70a41382382f08c780d425 Mon Sep 17 00:00:00 2001 +From: Stephen Rothwell +Date: Mon, 20 Feb 2012 07:22:38 +1100 +Subject: tty/powerpc: early udbg consoles can't be modules + +From: Stephen Rothwell + +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 +Signed-off-by: Stephen Rothwell +Signed-off-by: Greg Kroah-Hartman + +--- + 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 diff --git a/queue-3.2/viafb-fix-iga1-modesetting-on-vx900.patch b/queue-3.2/viafb-fix-iga1-modesetting-on-vx900.patch new file mode 100644 index 00000000000..ad525c5b5c8 --- /dev/null +++ b/queue-3.2/viafb-fix-iga1-modesetting-on-vx900.patch @@ -0,0 +1,31 @@ +From e29206381a1436e0f47c0f5b9a23159a03c57715 Mon Sep 17 00:00:00 2001 +From: Florian Tobias Schandinat +Date: Wed, 22 Feb 2012 18:53:08 +0000 +Subject: viafb: fix IGA1 modesetting on VX900 + +From: Florian Tobias Schandinat + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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)); diff --git a/queue-3.2/viafb-select-hw-scaling-on-vx900-for-iga2.patch b/queue-3.2/viafb-select-hw-scaling-on-vx900-for-iga2.patch new file mode 100644 index 00000000000..b344d0b3668 --- /dev/null +++ b/queue-3.2/viafb-select-hw-scaling-on-vx900-for-iga2.patch @@ -0,0 +1,32 @@ +From 050f0e02c8dc38b2b4f2df345ac760d22ca5c7ba Mon Sep 17 00:00:00 2001 +From: Florian Tobias Schandinat +Date: Wed, 22 Feb 2012 18:53:07 +0000 +Subject: viafb: select HW scaling on VX900 for IGA2 + +From: Florian Tobias Schandinat + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 */