From patchwork Thu Oct 29 07:54:49 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 537707 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 4246C140B0F for ; Thu, 29 Oct 2015 18:57:20 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 3D5844B6D5; Thu, 29 Oct 2015 08:57:00 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id B3-hcX05N0zN; Thu, 29 Oct 2015 08:57:00 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 9A8874B6E6; Thu, 29 Oct 2015 08:56:22 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 00F304B68A for ; Thu, 29 Oct 2015 08:56:15 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LnwrLpjKxYjy for ; Thu, 29 Oct 2015 08:56:14 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0144.outbound.protection.outlook.com [157.56.110.144]) by theia.denx.de (Postfix) with ESMTPS id 0A4F74B69A for ; Thu, 29 Oct 2015 08:56:04 +0100 (CET) Received: from DM2PR03CA0038.namprd03.prod.outlook.com (10.141.96.37) by BY2PR0301MB0679.namprd03.prod.outlook.com (10.160.63.146) with Microsoft SMTP Server (TLS) id 15.1.306.13; Thu, 29 Oct 2015 07:56:03 +0000 Received: from BL2FFO11FD006.protection.gbl (2a01:111:f400:7c09::147) by DM2PR03CA0038.outlook.office365.com (2a01:111:e400:2428::37) with Microsoft SMTP Server (TLS) id 15.1.312.18 via Frontend Transport; Thu, 29 Oct 2015 07:56:02 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=freescale.com; denx.de; dkim=none (message not signed) header.d=none; denx.de; dmarc=none action=none header.from=freescale.com; Received-SPF: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BL2FFO11FD006.mail.protection.outlook.com (10.173.161.2) with Microsoft SMTP Server (TLS) id 15.1.318.9 via Frontend Transport; Thu, 29 Oct 2015 07:56:01 +0000 Received: from linux-jyl1.ap.freescale.net (b51431-11.ap.freescale.net [10.193.99.197]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id t9T7t0uU028944; Thu, 29 Oct 2015 00:55:58 -0700 From: Peng Fan To: Date: Thu, 29 Oct 2015 15:54:49 +0800 Message-ID: <1446105293-31775-12-git-send-email-Peng.Fan@freescale.com> X-Mailer: git-send-email 1.8.4 In-Reply-To: <1446105293-31775-1-git-send-email-Peng.Fan@freescale.com> References: <1446105293-31775-1-git-send-email-Peng.Fan@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD006; 1:qC86S5LeU3cLbklEHoG2GHnHpdt/SqhPSKP12NBr3Dd1IrDwC/0oWXGZhS/sgOI0IJpExh8szzSlK5WDQhhbxGg2DZSv3PSC7tip07sB00tvBV2XST61QRwpapswWEgK90fogtPEzD0CAj6frIhyUQJ/kLallaXr5/9QV2thJuL1wL9NDhqnJWSBDYYeEjNTzWurdBS4KxsAYXAGmgzKqkwydX0Zv4g3yMl15KERqOvpw62Dh0f76gRGRKLvEXjZ39yRhdujl5RAmLidJ68RiViool1i/osptiZcy0vW2CECvRHUxKBeFVsGmFmm42oWNKuxrnTElSv3eIXraoq4VjCSkr/FTfyhJa2SCLhcoBTriLCn3ZWWK79TeokQ4oqT557xyTK8EpkD6IItginQmg== X-Forefront-Antispam-Report: CIP:192.88.168.50; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(106466001)(189998001)(6806005)(105606002)(36756003)(50986999)(92566002)(50226001)(76176999)(2351001)(48376002)(50466002)(104016004)(19580395003)(77096005)(229853001)(19580405001)(5001920100001)(5008740100001)(5001960100002)(110136002)(2950100001)(5007970100001)(81156007)(97736004)(85426001)(87936001)(47776003)(86362001)(5003940100001); DIR:OUT; SFP:1102; SCL:1; SRVR:BY2PR0301MB0679; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0679; 2:m7IpHnYHCDRxtFoz/88KufxZd6dvyrkjLCNOlB0CAy/yDluHesBltnxWO5XfbM24TPOwuLusKZ5Td0kVcj6vfroaxyxLbbjzqF5zl6xklt5VnkAu5OLMqc1eVvi++IKGopaQTxpzlNEvvTUdpH4r0I2dd3+3v8D1YtCXb4qyXZY=; 3:Qz4GfG+7nUWFB/fMZyHmxY8OhZJqGj2a6F9JifiwKoMJq5AxXFvdjnIdsi3IDVQFMMIWEZZ24V7axG2U8uL3RX4Q5DdmlDYNJKVlKvcyjRHak3l4rhsJbxDwnvIRZ1+3sRxOJs7tnd2ZtIpfUbwoX90napf33Mx1QZZaqkDECDqqpNVAtCjoGjIUteCqONIB+wvCvPxqq722Nz6z6XRMzk349u5DuLP0VK2llVJvzTk=; 25:3M8U7BqK8XC9siWrumjUJqwke8p2/MPE0Sp7GJDrL0v7CjtN3Qd4n6ILtFIfuAak6ho5upY+PxoFa70sIAHUD45WLCj/UcAccqQ0T+urMhB13Xq7m8ox72xcL0ahaZX6PKNCp3S03v2lgtnFXfkxNtWPlXm9d0n8h6NHecjGEc1uP9flqPgBP9Ub+jgfX8dDWD6dj5EMqoDpZA5VPkCG7a0zi/tkow+bV1Qz/FVsgeHm0+5BLRfx4WjmvqROrzJ6OIZ1AYDn2g0/jWrspMu7zg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0301MB0679; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0679; 20:PEWn/fkxN3NQB5e/GATa9e166LBrJIQ0MZyNgVd7MT+gm4VNkXTwyAcNX1CNfMydcQk5BbSMn5aTl988j+s0PuKiT99jL0auKyMznPYCDQJZrK6NjasqTn7EbpwYFuNUwEXF6eNgIZKuRRXcJB6u5QowznAyMFzazmfm89chexcPwle45Op2Rz8SxLrOTkWG9QdBVwi8IMhMxZBl3DZKm8B6kesKya8weJugyO14/9I3XQ4kelgLd2ilcK8I+MxiFPszqyFaOi4S+UrI4YN+qSWPoPdSwHDoXlHs2GYsV2PWW6hsL/e/B3FLAzp1W/cAYZxuU5QzcxhE+EAt7XrY9JFqPX0Eb8NrD8NpeGWVEEA=; 4:drO4UjQY/7rjLPfS2C8DBpCsUuus4mogs3BD3YG74Sgaw+NuyE/Fe6eShDKDuDwzaPWCMYEnW6YHw4rEEOFJCUF4sCbtOpc5YEo1fK8cvmniFwvFV6ac9PMKt+bcVnnDGucvXx1FFZaKfuAWwH8DH8f0DG00FHz+u1YBJkhPIfCfnalN6x9PENfb8adGrS8erI3oh2UkYp9p0kWivHr1CqYP6e0WTeN6otf6ReWeII8rE8G4mk3G4iPAE0wG3K7EHB93JCfPJz6Ckw3URFj1C1rjx0XJ0jT2gAkTkELPtCjz9SJnkuuc5EB83auUiOhbhd6Bbeyx2oHZPpxQH1JPKVXBIaJHTimMReudBFsKsBfu4yPyjzn87aW2rzFGeJfaDk+zhqbS1c2R2grItvcxPg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001)(10201501046)(102215026); SRVR:BY2PR0301MB0679; BCL:0; PCL:0; RULEID:; SRVR:BY2PR0301MB0679; X-Forefront-PRVS: 0744CFB5E8 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR0301MB0679; 23:eDp5ejjxP80z07FCs7bzdZar/R4WDW7MYjzvSpv?= =?us-ascii?Q?wR7Rmz/Aam4wdyVXZr8GLp7IYYw5d3/FlUK9lJ4EPFFX7njJ1KWOEMsxhYdq?= =?us-ascii?Q?hdFUYnQ3UkmMWqotAesLIU0JLz/snnQuAvUAFA6jFEddjDCvS559j/VU7D2e?= =?us-ascii?Q?NXr8zoDTBdVHqwQ7wLx05m+hZu8//TbJitZmjqMhVav2nNafn9jrZb7a3vJJ?= =?us-ascii?Q?DgXcfKjTS/r7hgd52jZ2C6ljDRrgKjc0BZrPdCVnJdreqMgNUs5dGpHe7a08?= =?us-ascii?Q?leGYi0IljLFI30kS/lNWcRbV9elcnAaVpjhefYTQEfkqkCTYSIv+PJsyoMHV?= =?us-ascii?Q?INXhbPl6qIRCZdgd8Ax/X8J5xe7jR7ilA2Lj2CMdqdWu15PtDaYWBJ7ta+ft?= =?us-ascii?Q?2nW5XcD3Zc1zBQshWQYifT6rmLQSNswINA092YF3enRrEbgxuLmvS9P373i1?= =?us-ascii?Q?+Xad3uffLINMBkCJDks5lAe0mfvkTsXB9/FbUro91FceRrNG9yAtYjYLU4iW?= =?us-ascii?Q?F3sv3pjgUk07Sl4CHLceFvzSWXxc6Da2yvW5mV9VdmPjXsY+PZQHFkrrVtl7?= =?us-ascii?Q?xUbceSOW0A4Ut3dMpOTxe8hh4991HJ3aiur1YwwhM1llsS/oih55cnFLwpmi?= =?us-ascii?Q?NoBTK7l7F1NLADEO5L5dWRlYEriQq0lqdvgAODm+i12sRHBq3Rj4HH3g6KGW?= =?us-ascii?Q?ILPhssKQF7JyeKepwqMFdvdkaSdRGoR97f2XeEFfzgMHryiStHQxbQHi86NF?= =?us-ascii?Q?xYNxn4ilaOLkHQSRNRzFDuCXA48Ac7FxjHcCiGHJerY5GbjqJBPMg5t2EZwE?= =?us-ascii?Q?QPIHJklSf69GA0VrvZxXDaPIBQIazccWy5vgYwI0auRVJgMJsYwbBLOsbNJ4?= =?us-ascii?Q?TJ8id7/jWuvLjTDFdsjdkUtbNSr9HoC7LFwSE1Twic7Zdr3awmUg5ut9ChSx?= =?us-ascii?Q?+DnNLvx47BHW7jUMpydDSs1lCXqrm4sBO8sj9AwEzIRYN+vt/2pZBwsvbR3j?= =?us-ascii?Q?AEgSGmmd9WTBa0OVpKLQG/IYH?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0679; 5:aF2Hxr7oCom7s4mYWz9/H8JtAKvT37lJ+6yFFFSVpOGtKIvA+5KqIUaof9JqqOwXH4/VQdhszpYo/GgzYQCVBjo98vkBURabZgnLpDj9dHlMAN/cxc7Yj1Wzedx70fMHsmYuPKRab1KWgb5JstNTYA==; 24:9BM8MAaDqLAvX6CFWx+l75QfSmdXslHBXp4xYewF3mvpc9ILtRkdn2ZPW5HL8HEkGr+bVO/tB1DxtUsBkdrXZBsilCeTV3vrKE3ctBYPEbk=; 20:FeZ+Z9XpD7cdYIpIri6C49LBFESo80aT5fr8+a0qHnMdoQzCpfrieg/eZnVTBmXJgq625TRoU+OkFVCC7g8PdA== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Oct 2015 07:56:01.0980 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0301MB0679 Subject: [U-Boot] [PATCH V3 12/16] video: mxsfb: introduce lcdif_power_down X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Introudce a new function lcdif_power_down. 1. Waits for a VSYNC interrupt to guarantee the reset is done at the VSYNC edge, which somehow makes the LCDIF consume the display FIFO(?) and helps the LCDIF work normally at the kernel stage. 2. Add power down function to stop lcdif. The reason to introduce lcdif_power_down is that we want lcdif to be in initial state when doing uboot reset or before kernel boot to make system stable, otherwise system may hang. Signed-off-by: Peng Fan Cc: Stefano Babic Cc: Anatolij Gustschin Acked-by: Anatolij Gustschin --- V3: none V2: none arch/arm/include/asm/imx-common/sys_proto.h | 2 ++ drivers/video/mxsfb.c | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/arch/arm/include/asm/imx-common/sys_proto.h b/arch/arm/include/asm/imx-common/sys_proto.h index 5673fb4..386c2dc 100644 --- a/arch/arm/include/asm/imx-common/sys_proto.h +++ b/arch/arm/include/asm/imx-common/sys_proto.h @@ -47,6 +47,8 @@ int fecmxc_initialize(bd_t *bis); u32 get_ahb_clk(void); u32 get_periph_clk(void); +void lcdif_power_down(void); + int mxs_reset_block(struct mxs_register_32 *reg); int mxs_wait_mask_set(struct mxs_register_32 *reg, u32 mask, u32 timeout); int mxs_wait_mask_clr(struct mxs_register_32 *reg, u32 mask, u32 timeout); diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c index eed57d5..ddbb118 100644 --- a/drivers/video/mxsfb.c +++ b/drivers/video/mxsfb.c @@ -131,6 +131,23 @@ static void mxs_lcd_init(GraphicDevice *panel, writel(LCDIF_CTRL_RUN, ®s->hw_lcdif_ctrl_set); } +void lcdif_power_down(void) +{ + struct mxs_lcdif_regs *regs = (struct mxs_lcdif_regs *)MXS_LCDIF_BASE; + int timeout = 1000000; + + writel(panel.frameAdrs, ®s->hw_lcdif_cur_buf_reg); + writel(panel.frameAdrs, ®s->hw_lcdif_next_buf_reg); + writel(LCDIF_CTRL1_VSYNC_EDGE_IRQ, ®s->hw_lcdif_ctrl1_clr); + while (--timeout) { + if (readl(®s->hw_lcdif_ctrl1_reg) & + LCDIF_CTRL1_VSYNC_EDGE_IRQ) + break; + udelay(1); + } + mxs_reset_block((struct mxs_register_32 *)®s->hw_lcdif_ctrl_reg); +} + void *video_hw_init(void) { int bpp = -1;