From patchwork Thu Nov 5 18:51:28 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janusz Krzysztofik X-Patchwork-Id: 57922 X-Patchwork-Delegate: tony@atomide.com Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id nA5IrCwV024443 for ; Thu, 5 Nov 2009 18:53:12 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758260AbZKESwn (ORCPT ); Thu, 5 Nov 2009 13:52:43 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1757906AbZKESwn (ORCPT ); Thu, 5 Nov 2009 13:52:43 -0500 Received: from d1.icnet.pl ([212.160.220.21]:37310 "EHLO d1.icnet.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758260AbZKESwm (ORCPT ); Thu, 5 Nov 2009 13:52:42 -0500 Received: from 87-205-12-81.ip.netia.com.pl ([87.205.12.81] helo=vclass.intranet) by d1.icnet.pl with asmtp (TLS-1.0:DHE_RSA_AES_128_CBC_SHA:16) (Exim 4.34) id 1N67Ru-00076I-TN; Thu, 05 Nov 2009 19:52:46 +0100 To: linux-omap@vger.kernel.org Subject: [PATCH v3] OMAP: DMA: Fix omapfb/lcdc on OMAP1510 broken when PM set Cc: Tony Lindgren , linux-fbdev-devel@lists.sourceforge.net, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Content-Disposition: inline From: Janusz Krzysztofik Organization: Tele-Info-System, Poznan, PL Date: Thu, 5 Nov 2009 19:51:28 +0100 MIME-Version: 1.0 Message-Id: <200911051951.32020.jkrzyszt@tis.icnet.pl> X-SA-Exim-Scanned: No (on d1.icnet); SAEximRunCond expanded to false Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org --- linux-2.6.32-rc6/arch/arm/plat-omap/dma.c.orig 2009-11-03 20:37:49.000000000 +0100 +++ linux-2.6.32-rc6/arch/arm/plat-omap/dma.c 2009-11-05 19:30:39.000000000 +0100 @@ -1108,6 +1108,14 @@ int omap_dma_running(void) { int lch; + /* + * On OMAP1510, internal LCD controller will start the transfer + * when it gets enabled, so assume DMA running if LCD enabled. + */ + if (cpu_is_omap1510()) + if (omap_readw(0xfffec000 + 0x00) & (1 << 0)) + return 1; + /* Check if LCD DMA is running */ if (cpu_is_omap16xx()) if (omap_readw(OMAP1610_DMA_LCD_CCR) & OMAP_DMA_CCR_EN)