Received: by 10.192.165.156 with SMTP id m28csp1116665imm; Wed, 11 Apr 2018 12:45:10 -0700 (PDT) X-Google-Smtp-Source: AIpwx49k/VB0+FXBKmZ4eLteGTILGTd8SXy+dxm29JT0qga+bTWAjKsxJdJeQZHfwnDFbOdC7Z2h X-Received: by 2002:a17:902:8e83:: with SMTP id bg3-v6mr6619576plb.144.1523475910359; Wed, 11 Apr 2018 12:45:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523475910; cv=none; d=google.com; s=arc-20160816; b=tQY9WRTDd2gjHOSsNQ4RlhG+xYCoUYxs4u8+ppEhoIVeT1pFFUp+1RmckSyna+0grR lbSFbMyhwCwcMH6SJIUzSBQRRq4G+oj3boZGsBgBeFpNzaUxnQ6suzdlKRiJttcCf9BM Cs4touyeAq5e9opWfvHOXX1wg+uh/rtZ+M5RM+OoMZOXNFkaxBmbrNEUOEWTj4AVA5bt 1Ay7BwZ9HcwIljx+FY4i3mtVcWSnnhYn21DFQ71DTicDfsF4LftFqicX9u3ujfADYr2S B8ERwVV2HbF8a9Jq1y/CWORs4sylmYEORdgZRXSrbaD7sD0fLrRiElu5uQVezS/hQ2+M hgcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=zM/33oko9ljXzVj28bnE0cJo/2e1wl0cn/CytvPqtAc=; b=mXIbL0gmEn1H3FhdYXWpFbBrN0eJRECxQM1eqhkT2dQNzfvs2e8YL2FhC4kNKDXHeq FKnLX1FOJEyAg60+PhJC8Y6SwFnogXEv8bJQSAKDOA+IU7lYo3yCw9/2OG90jTxUxK6g N93AbSwjDDTuhKngJNItKMgE2clPtIEbMDuTsaRWUADu0VrbFKNP+lPpD8Pxob6TMd3V gKBF6TUBPBh9jsal9tvcjScX860RcThq5Kh62T53EPE1Gb21FJT++5eSZGAHven0KfXf Y9cgbeOg7xUFmJyDj0Yaht8WE2ia86IrNLq4ACH5DEzCd57y36HMSVRmPTaQ2SXVbe0t Nshw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h3si1291073pfn.158.2018.04.11.12.44.33; Wed, 11 Apr 2018 12:45:10 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756838AbeDKTA5 (ORCPT + 99 others); Wed, 11 Apr 2018 15:00:57 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:37928 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756806AbeDKTAx (ORCPT ); Wed, 11 Apr 2018 15:00:53 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 7E343D72; Wed, 11 Apr 2018 19:00:52 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, "Pieter \"PoroCYon\" Sluys" , Geert Uytterhoeven , Bartlomiej Zolnierkiewicz , Sasha Levin Subject: [PATCH 4.9 139/310] vfb: fix video mode and line_length being set when loaded Date: Wed, 11 Apr 2018 20:34:38 +0200 Message-Id: <20180411183628.428799314@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180411183622.305902791@linuxfoundation.org> References: <20180411183622.305902791@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: "Pieter \\\"PoroCYon\\\" Sluys" [ Upstream commit 7b9faf5df0ac495a1a3d7cdb64921c179f9008ac ] Currently, when loading the vfb module, the newly created fbdev has a line_length of 0, and its video mode would be PSEUDOCOLOR regardless of color depth. (The former could be worked around by calling the FBIOPUT_VSCREENINFO ioctl with having the FBACTIVIATE_FORCE flag set.) This patch automatically sets the line_length correctly, and the video mode is derived from the bit depth now as well. Thanks to Geert Uytterhoeven for confirming the bug and helping me with the patch. Output of `fbset -i' before the patch: mode "1366x768-60" # D: 72.432 MHz, H: 47.403 kHz, V: 60.004 Hz geometry 1366 768 1366 768 32 timings 13806 120 10 14 3 32 5 rgba 8/0,8/8,8/16,8/24 endmode Frame buffer device information: Name : Virtual FB Address : 0xffffaa1405d85000 Size : 4196352 Type : PACKED PIXELS Visual : PSEUDOCOLOR XPanStep : 1 YPanStep : 1 YWrapStep : 1 LineLength : 0 <-- note this Accelerator : No After: mode "1366x768-60" # D: 72.432 MHz, H: 47.403 kHz, V: 60.004 Hz geometry 1366 768 1366 768 32 timings 13806 120 10 14 3 32 5 rgba 8/0,8/8,8/16,8/24 endmode Frame buffer device information: Name : Virtual FB Address : 0xffffaa1405d85000 Size : 4196352 Type : PACKED PIXELS Visual : TRUECOLOR XPanStep : 1 YPanStep : 1 YWrapStep : 1 LineLength : 5464 Accelerator : No Signed-off-by: "Pieter \"PoroCYon\" Sluys" Reviewed-by: Geert Uytterhoeven [b.zolnierkie: minor fixups] Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/video/fbdev/vfb.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) --- a/drivers/video/fbdev/vfb.c +++ b/drivers/video/fbdev/vfb.c @@ -239,8 +239,23 @@ static int vfb_check_var(struct fb_var_s */ static int vfb_set_par(struct fb_info *info) { + switch (info->var.bits_per_pixel) { + case 1: + info->fix.visual = FB_VISUAL_MONO01; + break; + case 8: + info->fix.visual = FB_VISUAL_PSEUDOCOLOR; + break; + case 16: + case 24: + case 32: + info->fix.visual = FB_VISUAL_TRUECOLOR; + break; + } + info->fix.line_length = get_line_length(info->var.xres_virtual, info->var.bits_per_pixel); + return 0; } @@ -450,6 +465,8 @@ static int vfb_probe(struct platform_dev goto err2; platform_set_drvdata(dev, info); + vfb_set_par(info); + fb_info(info, "Virtual frame buffer device, using %ldK of video memory\n", videomemorysize >> 10); return 0;