Received: by 2002:ac0:aed5:0:0:0:0:0 with SMTP id t21csp4695041imb; Wed, 6 Mar 2019 21:17:31 -0800 (PST) X-Google-Smtp-Source: APXvYqyZAwVq/Lavq+q2AMGObHfcAh3J0DLMJqz448/8/zS+nM7gwm95Y3iWBml/dtjIgUjryO1Y X-Received: by 2002:a62:ed06:: with SMTP id u6mr10802430pfh.132.1551935851509; Wed, 06 Mar 2019 21:17:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551935851; cv=none; d=google.com; s=arc-20160816; b=wAtJlW27ZnFj4ivEcOEmA+njRfbgTtScOPhYKF8T+H8StkztQJpoTEPHteRCPspbNg B05UG6zSWx59hIh6+0blyRWyXlP1hmT5SDJeGdVz+VYrKFt89BnU4U0DcRkTXYuqh8PC W9iZ14Gyl/+228vv0Ph95cUdgvmvoIu/x94tk/Rjk+CY73ceEd2Kv87WAbTgpROBLBcL jhrIgwQLH8NPbrmseIPoriIX0hcLE9EPaxzcA/NLU/1UKrLlcJamdekitxtEn7tClKol Ljeul0P1HQhf1WMSVExslhq0HalMRVA4PzvD/cF8Wc2shvxp/DSmaW9BTEDtuaUBAUTU wE+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:content-disposition :mime-version:message-id:subject:cc:to:from:date:dkim-signature; bh=qsEcn4Yd3FbIcJ2t1rdPCydfVfPqNnHpdXajScthO58=; b=qZtS7nWJ4tnYj2c9MT9UklvwYSS3pq25vRE3qrE3T1bQfOtyRVj1OfYQvgp3HMo/F/ y9+tSI4zcDTzoREAkLh1NM9ET/nnsVGRL1NrWY5QzMwfzd+qjcvBxrdLhTHS3P6Iyise hK23h/iJJXsy2Gni+jJDX8km4ymPR2Njx5+4DGLGTYm2OhaQpVYTkQwzxXNd3ZBCY6P2 TMlT3dxrxrpCbQoCvlhtwCWoij58wwLCJC4QVZEKz3jnEv7WPhTmbinKdXbDG5mVKkQj LGFhNhBD4qrAyf8yRNeffuUgvhWBh4iPfhHUOofLLJ2611rZgtI2ZlfKDHjnT6HlQX4p +CAg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tomli.me header.s=1490979754 header.b=JV++Uxrl; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=tomli.me Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t13si3515234pfa.98.2019.03.06.21.17.15; Wed, 06 Mar 2019 21:17:31 -0800 (PST) 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; dkim=pass header.i=@tomli.me header.s=1490979754 header.b=JV++Uxrl; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=tomli.me Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726407AbfCGFQ4 (ORCPT + 99 others); Thu, 7 Mar 2019 00:16:56 -0500 Received: from tomli.me ([153.92.126.73]:47504 "EHLO tomli.me" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726059AbfCGFQ4 (ORCPT ); Thu, 7 Mar 2019 00:16:56 -0500 Received: from tomli.me (localhost [127.0.0.1]) by tomli.me (OpenSMTPD) with ESMTP id a650ce95; Thu, 7 Mar 2019 05:16:53 +0000 (UTC) X-HELO: localhost.localdomain Authentication-Results: tomli.me; auth=pass (login) smtp.auth=tomli Received: from Unknown (HELO localhost.localdomain) (2402:f000:1:1501:200:5efe:72f4:b31) by tomli.me (qpsmtpd/0.95) with ESMTPSA (DHE-RSA-CHACHA20-POLY1305 encrypted); Thu, 07 Mar 2019 05:16:53 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=tomli.me; h=date:from:to:cc:subject:message-id:mime-version:content-type; s=1490979754; bh=qsEcn4Yd3FbIcJ2t1rdPCydfVfPqNnHpdXajScthO58=; b=JV++UxrlMFSxlq+LByndSNRKXYHuA7/bmT/HoA1LbvNLkRrlnaCcHmgZh8RAIcdYUsvrLzmXfgyfNFTT+YcvOrsxAo2Kht0f/WlBM2kbK+KBlGYwNDgI3ciaqg0CX53qAAraNj670wOJC5TZqb4pGfa9X8OVQzA/5L68KyNlJ8MGmDvBPRB0m29eGla4R4JN8K5G38a/rXIlHGgtS8Oddyz4I06uYJYaMKnm++MwD/aqYwGUBy9z/bn2DkyJ2W9P7AaWo3dBR3eY/EUgH6bv9DA5YEkKUZ7QnhCrcEzzIWFnWeDzIoytuGEW4QUY/V44djnEAK8un9fTplyMaRiiwg== Date: Thu, 7 Mar 2019 13:16:41 +0800 From: Tom Li To: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: Yifeng Li , Sudip Mukherjee , Teddy Wang , Bartlomiej Zolnierkiewicz Subject: Is it possible to reset graphics controller on reboot in a framebuffer driver? Message-ID: <20190307051641.GA7012@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.11.3 (2019-02-01) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi all. As you may have noticed, recently I've been working on a reworked version of sm712fb, and planned to convert it to a DRM/KMS driver. Besides using it on embedded/non-x86 systems, I thought it would be a good idea to support histrocial x86 laptops with this VGA chipset as well, so I've acquired a machine for testing. However, soon I found a nasty problem. The BIOS does not reset the chip on boot! Like most graphics controller of that era, sm712 chipset has a VGA compatible mode and a 2D framebuffer mode. The power-on default is VGA. The BIOS writer just assumed this, and does nothing to reinitialize it. If one uses the framebuffer driver under Linux, once the machine reboots, the entire LCD panel becomes a piece of garbage. AFAIK, the framebuffer driver would be running throughout the kernel's life- cycle, is it really possible to workaround this issue by restoring on VGA state upon reboot? Thanks, Tom Li