From patchwork Thu Apr 18 09:23:52 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxime Ripard X-Patchwork-Id: 2458401 Return-Path: X-Original-To: patchwork-linux-fbdev@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 1EFC83FCA5 for ; Thu, 18 Apr 2013 09:25:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966603Ab3DRJYo (ORCPT ); Thu, 18 Apr 2013 05:24:44 -0400 Received: from mail.free-electrons.com ([94.23.35.102]:60052 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966510Ab3DRJYn (ORCPT ); Thu, 18 Apr 2013 05:24:43 -0400 Received: by mail.free-electrons.com (Postfix, from userid 106) id 49EEBBC3; Thu, 18 Apr 2013 11:24:42 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on mail.free-electrons.com X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,SHORTCIRCUIT shortcircuit=ham autolearn=disabled version=3.3.2 Received: from localhost (col31-4-88-188-83-94.fbx.proxad.net [88.188.83.94]) by mail.free-electrons.com (Postfix) with ESMTPSA id D3E705BF; Thu, 18 Apr 2013 11:24:41 +0200 (CEST) From: Maxime Ripard To: Shawn Guo Cc: linux-arm-kernel@lists.infradead.org, Fabio Estevam , Marek Vasut , Alexandre Belloni , Thomas Petazzoni , Brian Lilly , Maxime Ripard , Florian Tobias Schandinat , linux-fbdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] video: mxsfb: Fix colors display on lower color depth Date: Thu, 18 Apr 2013 11:23:52 +0200 Message-Id: <1366277032-671-1-git-send-email-maxime.ripard@free-electrons.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <516EBCA4.1020609@free-electrons.com> References: <516EBCA4.1020609@free-electrons.com> Sender: linux-fbdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fbdev@vger.kernel.org The current code always registers as a 32 bits display, and uses the hardware to drop the MSB of each color to abjust to the interface width used by the panel. This results on 18 bits (and probably 16 bits display as well) in colors being displayed poorly, because the MSB are obviously the most important bits for each color definition. The default controller behaviour when using an interface width smaller than the color depth is to drop the LSBs of each color, which makes more sense because you lose the least important part of the color definition. So, to fix the colors display, just get back to the default controller behaviour. Signed-off-by: Maxime Ripard --- drivers/video/mxsfb.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c index 755556c..2cfaf8b 100644 --- a/drivers/video/mxsfb.c +++ b/drivers/video/mxsfb.c @@ -424,11 +424,6 @@ static int mxsfb_set_par(struct fb_info *fb_info) return -EINVAL; case STMLCDIF_16BIT: case STMLCDIF_18BIT: - /* 24 bit to 18 bit mapping */ - ctrl |= CTRL_DF24; /* ignore the upper 2 bits in - * each colour component - */ - break; case STMLCDIF_24BIT: /* real 24 bit */ break;