From: Greg Kroah-Hartman Date: Wed, 11 Jul 2012 15:45:46 +0000 (-0700) Subject: 3.4-stable patches X-Git-Tag: v3.0.37~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9829bb5eb2355fa7e8a88365fb65ebd3ca65e74e;p=thirdparty%2Fkernel%2Fstable-queue.git 3.4-stable patches added patches: omapdss-use-dsi_fifo_bug-workaround-only-for-manual-update-displays.patch --- diff --git a/queue-3.4/omapdss-use-dsi_fifo_bug-workaround-only-for-manual-update-displays.patch b/queue-3.4/omapdss-use-dsi_fifo_bug-workaround-only-for-manual-update-displays.patch new file mode 100644 index 00000000000..11696278d95 --- /dev/null +++ b/queue-3.4/omapdss-use-dsi_fifo_bug-workaround-only-for-manual-update-displays.patch @@ -0,0 +1,85 @@ +From 3568f2a46f2a73bab18c914df06afd98a97e0e0e Mon Sep 17 00:00:00 2001 +From: Tomi Valkeinen +Date: Tue, 15 May 2012 15:31:01 +0300 +Subject: OMAPDSS: use DSI_FIFO_BUG workaround only for manual update displays + +From: Tomi Valkeinen + +commit 3568f2a46f2a73bab18c914df06afd98a97e0e0e upstream. + +There is a problem related to DSS FIFO thresholds and power management +on OMAP3. It seems that when the full PM hits in, we get underflows. The +core reason is unknown, but after experiments it looks like only +particular FIFO thresholds work correctly. + +This bug is related to an earlier patch, which added special FIFO +threshold configuration for OMAP3, because DSI command mode output +didn't work with the normal threshold configuration. + +However, as the above work-around worked fine for other output types +also, we currently always configure thresholds in this special way on +OMAP3. In theory there should be negligible difference with this special +way and the standard way. The first paragraph explains what happens in +practice. + +This patch changes the driver to use the special threshold configuration +only when the output is a manual update display on OMAP3. This does +include RFBI displays also, and although it hasn't been tested (no +boards using RFBI) I suspect the similar behaviour is present there +also, as the DISPC side should work similarly for DSI command mode and +RFBI. + +Signed-off-by: Tomi Valkeinen +Cc: Joe Woodward +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/video/omap2/dss/apply.c | 2 +- + drivers/video/omap2/dss/dispc.c | 5 +++-- + drivers/video/omap2/dss/dss.h | 3 ++- + 3 files changed, 6 insertions(+), 4 deletions(-) + +--- a/drivers/video/omap2/dss/apply.c ++++ b/drivers/video/omap2/dss/apply.c +@@ -927,7 +927,7 @@ static void dss_ovl_setup_fifo(struct om + dssdev = ovl->manager->device; + + dispc_ovl_compute_fifo_thresholds(ovl->id, &fifo_low, &fifo_high, +- use_fifo_merge); ++ use_fifo_merge, ovl_manual_update(ovl)); + + dss_apply_ovl_fifo_thresholds(ovl, fifo_low, fifo_high); + } +--- a/drivers/video/omap2/dss/dispc.c ++++ b/drivers/video/omap2/dss/dispc.c +@@ -1063,7 +1063,8 @@ void dispc_enable_fifomerge(bool enable) + } + + void dispc_ovl_compute_fifo_thresholds(enum omap_plane plane, +- u32 *fifo_low, u32 *fifo_high, bool use_fifomerge) ++ u32 *fifo_low, u32 *fifo_high, bool use_fifomerge, ++ bool manual_update) + { + /* + * All sizes are in bytes. Both the buffer and burst are made of +@@ -1091,7 +1092,7 @@ void dispc_ovl_compute_fifo_thresholds(e + * combined fifo size + */ + +- if (dss_has_feature(FEAT_OMAP3_DSI_FIFO_BUG)) { ++ if (manual_update && dss_has_feature(FEAT_OMAP3_DSI_FIFO_BUG)) { + *fifo_low = ovl_fifo_size - burst_size * 2; + *fifo_high = total_fifo_size - burst_size; + } else { +--- a/drivers/video/omap2/dss/dss.h ++++ b/drivers/video/omap2/dss/dss.h +@@ -424,7 +424,8 @@ int dispc_calc_clock_rates(unsigned long + + void dispc_ovl_set_fifo_threshold(enum omap_plane plane, u32 low, u32 high); + void dispc_ovl_compute_fifo_thresholds(enum omap_plane plane, +- u32 *fifo_low, u32 *fifo_high, bool use_fifomerge); ++ u32 *fifo_low, u32 *fifo_high, bool use_fifomerge, ++ bool manual_update); + int dispc_ovl_setup(enum omap_plane plane, struct omap_overlay_info *oi, + bool ilace, bool replication); + int dispc_ovl_enable(enum omap_plane plane, bool enable); diff --git a/queue-3.4/series b/queue-3.4/series index 65daab669cf..5cf04fbb463 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -137,3 +137,4 @@ ecryptfs-properly-check-for-o_rdonly-flag-before-doing-privileged-open.patch mm-memblock-cleanup-on-duplicate-va-pa-conversion.patch mm-memblock-fix-memory-leak-on-extending-regions.patch mm-memblock-fix-overlapping-allocation-when-doubling-reserved-array.patch +omapdss-use-dsi_fifo_bug-workaround-only-for-manual-update-displays.patch