From patchwork Sun Jun 2 06:50:19 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: NeilBrown X-Patchwork-Id: 2649361 Return-Path: X-Original-To: patchwork-linux-omap@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork2.kernel.org (Postfix) with ESMTP id 15357DFF66 for ; Sun, 2 Jun 2013 06:50:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751469Ab3FBGup (ORCPT ); Sun, 2 Jun 2013 02:50:45 -0400 Received: from cantor2.suse.de ([195.135.220.15]:43238 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752446Ab3FBGud (ORCPT ); Sun, 2 Jun 2013 02:50:33 -0400 Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id DF0B5A51CB; Sun, 2 Jun 2013 08:50:30 +0200 (CEST) Date: Sun, 2 Jun 2013 16:50:19 +1000 From: NeilBrown To: linux-omap , Tomi Valkeinen , Rajendra Nayak Cc: Mike Turquette , Paul Walmsley Subject: Strange OMAP3 LCD display regression - bisected. Message-ID: <20130602165019.655da2eb@notabene.brown> X-Mailer: Claws Mail 3.9.0 (GTK+ 2.24.14; x86_64-suse-linux-gnu) Mime-Version: 1.0 Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org Hi Tomi, Rajendra and other, I have run into a rather strange regression with the LCD panel display on my GTA04 (OMAP3630 based phone) that you might be able to help me with. I bisected down to two patches, neither of which cause the problem by themselves, but both together do. They are: commit bd0f5cc3641cb76ae8fa2cc4924c29da157f8b2d Author: Tomi Valkeinen Date: Thu Dec 13 14:21:30 2012 +0200 OMAPDSS: fix TV-out issue with DSI PLL and commit f7f73aab3d5bd19ba0f72ff00fb6b3be28e1a4d3 Author: Rajendra Nayak Date: Fri Apr 27 16:27:51 2012 +0530 ARM: OMAP: clock: Switch to COMMON clk Yes - rather odd. The details: I'm currently trying to move from a 3.7 kernel on my GTA04 to a 3.10-rc kernel (hopefully to have 3.10 fully working by the time it comes out..). Once I got it compiling and booting I found that while the display worked perfectly at boot, after it has been turned off (ioctl(FBIOBLANK)) and back on again, it is all white - no discernible image at all. A suspend/resume cycle at this point might bring it back, but it is often shimmery (low vsync?) and once it had inverse colours. I had noticed that the panel which normally gets a 22153 kHz pixel clock was only getting a 21600 kHz clock. This turned out to be due to the fact that dpi_calc_dispc_cb rejects odd divisors, and it used to use a divisor of '3'. I disabled that code and then the screen would wake successfully resume from blank, but there was a strange artefact in the image. My display has a grey background with some blue text. On the lines that have text, the grey background had a very slight green tinge, especially when viewed at the right angle. I decided to try bisecting to find the cause of this, because I couldn't even begin to guess what it might be. I found: commit 2b8318881ddbcb67c5e8d2178b42284749442222 Merge: e81d372 e7f5c9a Author: Linus Torvalds Date: Sat Dec 15 13:03:48 2012 -0800 Merge tag 'fbdev-for-3.8' of git://gitorious.org/linux-omap-dss2/linux Pull fbdev changes from Tomi Valkeinen: "OMAPDSS changes, including: yes - a merge commit. Neither branch by itself caused the problem but the two together do. I then decided "in for a penny, in for a pound" and proceeded to bisect both branches, merging in the other one at each test point. This lead me to the two commits listed above. bd0f5cc3641cb76 merged with e81d372 has the problem, bd0f5cc3641cb76~1 merged with e81d372 is fine. Similarly f7f73aab3d5bd19b merged with e7f5c9a has the problem, while f7f73aab3d5bd19b~1 merged with e7f5c9a is fine. I tried reverting the "OMAPDSS: fix TV-out issue with DSI PLL" patch from 3.10-rc as below, and it seems to behave better, returning from blank properly. This is without disabling the "no odd divisors" code. I'm not really sure how it survives suspend, as suspend generally isn't reliable for me on 3.10-rc yet - haven't look into why as yet. Any help anyone could provide here would be greatly appreciated. I'm happy to run any test patches you would like to suggest. Thanks, NeilBrown diff --git a/drivers/video/omap2/dss/dpi.c b/drivers/video/omap2/dss/dpi.c index 757b57f..4d4f775 100644 --- a/drivers/video/omap2/dss/dpi.c +++ b/drivers/video/omap2/dss/dpi.c @@ -62,7 +62,7 @@ static struct platform_device *dpi_get_dsidev(enum omap_channel channel) case OMAPDSS_VER_OMAP34xx_ES3: case OMAPDSS_VER_OMAP3630: case OMAPDSS_VER_AM35xx: - return NULL; +// return NULL; case OMAPDSS_VER_OMAP4430_ES1: case OMAPDSS_VER_OMAP4430_ES2: