From: Greg Kroah-Hartman Date: Mon, 7 Jul 2014 17:50:56 +0000 (-0700) Subject: 3.10-stable patches X-Git-Tag: v3.4.98~58 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0a949a9fcc921f401a66d09a9556ec2f4136e824;p=thirdparty%2Fkernel%2Fstable-queue.git 3.10-stable patches 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 --- 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 index 00000000000..1dfd2bb81dd --- /dev/null +++ b/queue-3.10/drm-radeon-only-apply-hdmi-bpc-pll-flags-when-encoder-mode-is-hdmi.patch @@ -0,0 +1,82 @@ +From 7d5ab3009a8ca777174f6f469277b3922d56fd4b Mon Sep 17 00:00:00 2001 +From: Alex Deucher +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 + +commit 7d5ab3009a8ca777174f6f469277b3922d56fd4b upstream. + +May fix display issues with non-HDMI displays. + +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..d8b70012c67 --- /dev/null +++ b/queue-3.10/mtd-elbc-nand-fix-subpage-write-support.patch @@ -0,0 +1,59 @@ +From f034d87def51f026b735d1e2877e9387011b2ba3 Mon Sep 17 00:00:00 2001 +From: Pekon Gupta +Date: Tue, 6 May 2014 09:41:32 +0530 +Subject: mtd: eLBC NAND: fix subpage write support + +From: Pekon Gupta + +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 +Tested-by: Helmut Schaa +Signed-off-by: Pekon Gupta +Reviewed-by: Scott Wood +Signed-off-by: Brian Norris +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..72ed849796e --- /dev/null +++ b/queue-3.10/mtd-nand-omap-fix-bchx-ecc.correct-to-return-detected-bit-flips-in-erased-page.patch @@ -0,0 +1,43 @@ +From f306e8c3b667632952f1a4a74ffb910bbc06255f Mon Sep 17 00:00:00 2001 +From: pekon gupta +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 + +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 +Signed-off-by: Pekon Gupta +Signed-off-by: Brian Norris +Signed-off-by: Greg Kroah-Hartman + +--- + 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); diff --git a/queue-3.10/series b/queue-3.10/series index 503ce95080f..e66766c41c1 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -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