]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 7 Jul 2014 17:50:56 +0000 (10:50 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 7 Jul 2014 17:50:56 +0000 (10:50 -0700)
added patches:
drm-radeon-only-apply-hdmi-bpc-pll-flags-when-encoder-mode-is-hdmi.patch
mtd-elbc-nand-fix-subpage-write-support.patch
mtd-nand-omap-fix-bchx-ecc.correct-to-return-detected-bit-flips-in-erased-page.patch

queue-3.10/drm-radeon-only-apply-hdmi-bpc-pll-flags-when-encoder-mode-is-hdmi.patch [new file with mode: 0644]
queue-3.10/mtd-elbc-nand-fix-subpage-write-support.patch [new file with mode: 0644]
queue-3.10/mtd-nand-omap-fix-bchx-ecc.correct-to-return-detected-bit-flips-in-erased-page.patch [new file with mode: 0644]
queue-3.10/series

diff --git a/queue-3.10/drm-radeon-only-apply-hdmi-bpc-pll-flags-when-encoder-mode-is-hdmi.patch b/queue-3.10/drm-radeon-only-apply-hdmi-bpc-pll-flags-when-encoder-mode-is-hdmi.patch
new file mode 100644 (file)
index 0000000..1dfd2bb
--- /dev/null
@@ -0,0 +1,82 @@
+From 7d5ab3009a8ca777174f6f469277b3922d56fd4b Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Mon, 21 Apr 2014 21:45:09 -0400
+Subject: drm/radeon: only apply hdmi bpc pll flags when encoder mode is hdmi
+
+From: Alex Deucher <alexander.deucher@amd.com>
+
+commit 7d5ab3009a8ca777174f6f469277b3922d56fd4b upstream.
+
+May fix display issues with non-HDMI displays.
+
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/atombios_crtc.c |   48 +++++++++++++++++----------------
+ 1 file changed, 26 insertions(+), 22 deletions(-)
+
+--- a/drivers/gpu/drm/radeon/atombios_crtc.c
++++ b/drivers/gpu/drm/radeon/atombios_crtc.c
+@@ -839,14 +839,16 @@ static void atombios_crtc_program_pll(st
+                       args.v5.ucMiscInfo = 0; /* HDMI depth, etc. */
+                       if (ss_enabled && (ss->type & ATOM_EXTERNAL_SS_MASK))
+                               args.v5.ucMiscInfo |= PIXEL_CLOCK_V5_MISC_REF_DIV_SRC;
+-                      switch (bpc) {
+-                      case 8:
+-                      default:
+-                              args.v5.ucMiscInfo |= PIXEL_CLOCK_V5_MISC_HDMI_24BPP;
+-                              break;
+-                      case 10:
+-                              args.v5.ucMiscInfo |= PIXEL_CLOCK_V5_MISC_HDMI_30BPP;
+-                              break;
++                      if (encoder_mode == ATOM_ENCODER_MODE_HDMI) {
++                              switch (bpc) {
++                              case 8:
++                              default:
++                                      args.v5.ucMiscInfo |= PIXEL_CLOCK_V5_MISC_HDMI_24BPP;
++                                      break;
++                              case 10:
++                                      args.v5.ucMiscInfo |= PIXEL_CLOCK_V5_MISC_HDMI_30BPP;
++                                      break;
++                              }
+                       }
+                       args.v5.ucTransmitterID = encoder_id;
+                       args.v5.ucEncoderMode = encoder_mode;
+@@ -861,20 +863,22 @@ static void atombios_crtc_program_pll(st
+                       args.v6.ucMiscInfo = 0; /* HDMI depth, etc. */
+                       if (ss_enabled && (ss->type & ATOM_EXTERNAL_SS_MASK))
+                               args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_REF_DIV_SRC;
+-                      switch (bpc) {
+-                      case 8:
+-                      default:
+-                              args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_24BPP;
+-                              break;
+-                      case 10:
+-                              args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_30BPP;
+-                              break;
+-                      case 12:
+-                              args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_36BPP;
+-                              break;
+-                      case 16:
+-                              args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_48BPP;
+-                              break;
++                      if (encoder_mode == ATOM_ENCODER_MODE_HDMI) {
++                              switch (bpc) {
++                              case 8:
++                              default:
++                                      args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_24BPP;
++                                      break;
++                              case 10:
++                                      args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_30BPP;
++                                      break;
++                              case 12:
++                                      args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_36BPP;
++                                      break;
++                              case 16:
++                                      args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_48BPP;
++                                      break;
++                              }
+                       }
+                       args.v6.ucTransmitterID = encoder_id;
+                       args.v6.ucEncoderMode = encoder_mode;
diff --git a/queue-3.10/mtd-elbc-nand-fix-subpage-write-support.patch b/queue-3.10/mtd-elbc-nand-fix-subpage-write-support.patch
new file mode 100644 (file)
index 0000000..d8b7001
--- /dev/null
@@ -0,0 +1,59 @@
+From f034d87def51f026b735d1e2877e9387011b2ba3 Mon Sep 17 00:00:00 2001
+From: Pekon Gupta <pekon@ti.com>
+Date: Tue, 6 May 2014 09:41:32 +0530
+Subject: mtd: eLBC NAND: fix subpage write support
+
+From: Pekon Gupta <pekon@ti.com>
+
+commit f034d87def51f026b735d1e2877e9387011b2ba3 upstream.
+
+As subpage write is enabled by default for all drivers, nand_write_subpage_hwecc
+causes a crash if the driver did not register ecc->hwctl or ecc->calculate.
+This behavior was introduced in
+   commit 837a6ba4f3b6d23026674e6af6b6849a4634fff9
+   "mtd: nand: subpage write support for hardware based ECC schemes".
+
+This fixes a crash by emulating subpage write support by padding sub-page data
+with 0xff on either sides to make it full page compatible.
+
+Reported-by: Helmut Schaa <helmut.schaa@googlemail.com>
+Tested-by: Helmut Schaa <helmut.schaa@googlemail.com>
+Signed-off-by: Pekon Gupta <pekon@ti.com>
+Reviewed-by: Scott Wood <scottwood@freescale.com>
+Signed-off-by: Brian Norris <computersforpeace@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/mtd/nand/fsl_elbc_nand.c |   14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+--- a/drivers/mtd/nand/fsl_elbc_nand.c
++++ b/drivers/mtd/nand/fsl_elbc_nand.c
+@@ -725,6 +725,19 @@ static int fsl_elbc_write_page(struct mt
+       return 0;
+ }
++/* ECC will be calculated automatically, and errors will be detected in
++ * waitfunc.
++ */
++static int fsl_elbc_write_subpage(struct mtd_info *mtd, struct nand_chip *chip,
++                              uint32_t offset, uint32_t data_len,
++                              const uint8_t *buf, int oob_required)
++{
++      fsl_elbc_write_buf(mtd, buf, mtd->writesize);
++      fsl_elbc_write_buf(mtd, chip->oob_poi, mtd->oobsize);
++
++      return 0;
++}
++
+ static int fsl_elbc_chip_init(struct fsl_elbc_mtd *priv)
+ {
+       struct fsl_lbc_ctrl *ctrl = priv->ctrl;
+@@ -763,6 +776,7 @@ static int fsl_elbc_chip_init(struct fsl
+       chip->ecc.read_page = fsl_elbc_read_page;
+       chip->ecc.write_page = fsl_elbc_write_page;
++      chip->ecc.write_subpage = fsl_elbc_write_subpage;
+       /* If CS Base Register selects full hardware ECC then use it */
+       if ((in_be32(&lbc->bank[priv->bank].br) & BR_DECC) ==
diff --git a/queue-3.10/mtd-nand-omap-fix-bchx-ecc.correct-to-return-detected-bit-flips-in-erased-page.patch b/queue-3.10/mtd-nand-omap-fix-bchx-ecc.correct-to-return-detected-bit-flips-in-erased-page.patch
new file mode 100644 (file)
index 0000000..72ed849
--- /dev/null
@@ -0,0 +1,43 @@
+From f306e8c3b667632952f1a4a74ffb910bbc06255f Mon Sep 17 00:00:00 2001
+From: pekon gupta <pekon@ti.com>
+Date: Thu, 20 Mar 2014 18:49:58 +0530
+Subject: mtd: nand: omap: fix BCHx ecc.correct to return detected bit-flips in erased-page
+
+From: pekon gupta <pekon@ti.com>
+
+commit f306e8c3b667632952f1a4a74ffb910bbc06255f upstream.
+
+fixes: commit 62116e5171e00f85a8d53f76e45b84423c89ff34
+       mtd: nand: omap2: Support for hardware BCH error correction.
+
+In omap_elm_correct_data(), if bitflip_count in an erased-page is within the
+correctable limit (< ecc.strength), then it is not indicated back to the caller
+ecc->read_page().
+
+This mis-guides upper layers like MTD and UBIFS layer to assume erased-page as
+perfectly clean and use it for writing even if actual bitflip_count was
+dangerously high (bitflip_count > mtd->bitflip_threshold).
+
+This patch fixes this above issue, by returning 'stats' to caller
+ecc->read_page() under all scenarios.
+
+Reported-by: Brian Norris <computersforpeace@gmail.com>
+Signed-off-by: Pekon Gupta <pekon@ti.com>
+Signed-off-by: Brian Norris <computersforpeace@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/mtd/nand/omap2.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/mtd/nand/omap2.c
++++ b/drivers/mtd/nand/omap2.c
+@@ -1463,7 +1463,7 @@ static int omap_elm_correct_data(struct
+       /* Check if any error reported */
+       if (!is_error_reported)
+-              return 0;
++              return stat;
+       /* Decode BCH error using ELM module */
+       elm_decode_bch_error_page(info->elm_dev, ecc_vec, err_vec);
index 503ce95080fa62b8757f0824f1e762375bbe3746..e66766c41c18c827c038068b41badeaca4b40972 100644 (file)
@@ -10,3 +10,6 @@ usb-ftdi_sio-fix-null-deref-at-port-probe.patch
 usb-gadget-f_fs-fix-null-pointer-dereference-when-there-are-no-strings.patch
 rt2x00-disable-tkip-on-usb.patch
 rt2x00-fix-rfkill-regression-on-rt2500pci.patch
+mtd-elbc-nand-fix-subpage-write-support.patch
+mtd-nand-omap-fix-bchx-ecc.correct-to-return-detected-bit-flips-in-erased-page.patch
+drm-radeon-only-apply-hdmi-bpc-pll-flags-when-encoder-mode-is-hdmi.patch