From patchwork Fri Mar 18 16:47:35 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 64085 Delivered-To: patch@linaro.org Received: by 10.112.199.169 with SMTP id jl9csp67157lbc; Fri, 18 Mar 2016 09:49:09 -0700 (PDT) X-Received: by 10.66.237.39 with SMTP id uz7mr24366918pac.141.1458319749577; Fri, 18 Mar 2016 09:49:09 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 18si4647333pfr.205.2016.03.18.09.49.08; Fri, 18 Mar 2016 09:49:09 -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; dkim=pass header.i=@linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754561AbcCRQs4 (ORCPT + 30 others); Fri, 18 Mar 2016 12:48:56 -0400 Received: from mail-wm0-f50.google.com ([74.125.82.50]:32811 "EHLO mail-wm0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753548AbcCRQsH (ORCPT ); Fri, 18 Mar 2016 12:48:07 -0400 Received: by mail-wm0-f50.google.com with SMTP id l68so76890163wml.0 for ; Fri, 18 Mar 2016 09:48:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=q+g6q9IMCd50xtKbRyToqeZ/lGTApRGwURZtDiFivyc=; b=IERA2LQ6ypi0ZPnDjK7JdtEGC/IS8c6/TAJmIbN/Y9sFtG+iyclCnUgmFFLpz8DHJj SKp0D6LX5Pl/B9MpC0z+DVbfsF4DUhgYS903D3Gz/3wAxVTpeu+u5A0ozABQ8CO/9aBF XxUUPoJOyYaCRS4T/J+39PEx2z4wzTUiFSXo8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=q+g6q9IMCd50xtKbRyToqeZ/lGTApRGwURZtDiFivyc=; b=KvOo7DpmvBtgebNzFIccstSfC8/YYyDr2DCD17b+IZ8ZfmzMBSFyHDzFLN6Bqtm/bi DQug9oVfZGsK64Qje9lXLqNJsmT+4wpgnJTEYAKnXJbq7LUF31LfyF6hLrfsjxh2txM9 ptNU7DOCSYlQnxsQsv3FOqB9w9X8cnGR+iJsYO8r6TkZ+E6KIhqbWJTX5r6P2SsNWpih 09ZYtxvN8hWBer6DfnRdg6K5vxoX6UpilUBaP3Z9NnAZG3GgQOok0+oTcX7IlkPpgIeT V2I4vdjHbJh+I6bbCdMXsyUfxsyXbjytb4y4o+NGZaidN4+wzC1wo+AfUpA2GTbQErz9 rx6g== X-Gm-Message-State: AD7BkJIV/IEg5i0T99BJ+je517bSQurToYmZYO8HI8yhlcnjjQf9/+n4oN5v3y0dz9tBmrZc X-Received: by 10.194.176.129 with SMTP id ci1mr2250073wjc.166.1458319675882; Fri, 18 Mar 2016 09:47:55 -0700 (PDT) Received: from localhost.localdomain ([195.55.142.58]) by smtp.gmail.com with ESMTPSA id c71sm118646wmd.4.2016.03.18.09.47.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 18 Mar 2016 09:47:55 -0700 (PDT) From: Ard Biesheuvel To: linux-kernel@vger.kernel.org, linux-efi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, matt@codeblueprint.co.uk, catalin.marinas@arm.com, will.deacon@arm.com, linux@arm.linux.org.uk, pjones@redhat.com, dh.herrmann@gmail.com Cc: leif.lindholm@linaro.org, mark.rutland@arm.com, x86@kernel.org, Ard Biesheuvel Subject: [PATCH v2 3/9] efi/x86: efifb: move DMI based quirks handling out of generic code Date: Fri, 18 Mar 2016 17:47:35 +0100 Message-Id: <1458319661-19762-4-git-send-email-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1458319661-19762-1-git-send-email-ard.biesheuvel@linaro.org> References: <1458319661-19762-1-git-send-email-ard.biesheuvel@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The efifb quirks handling based on DMI identification of the platform is specific to x86, so move it to x86 arch code. Signed-off-by: Ard Biesheuvel --- arch/x86/include/asm/efi.h | 2 ++ arch/x86/kernel/sysfb_efi.c | 15 +++++++++++++++ drivers/video/fbdev/efifb.c | 15 ++++----------- 3 files changed, 21 insertions(+), 11 deletions(-) -- 2.5.0 diff --git a/arch/x86/include/asm/efi.h b/arch/x86/include/asm/efi.h index 7d5187b66108..790adbc3a64a 100644 --- a/arch/x86/include/asm/efi.h +++ b/arch/x86/include/asm/efi.h @@ -154,6 +154,8 @@ static inline bool efi_runtime_supported(void) extern struct console early_efi_console; extern void parse_efi_setup(u64 phys_addr, u32 data_len); +extern void efifb_setup_from_dmi(struct screen_info *si, const char *opt); + #ifdef CONFIG_EFI_MIXED extern void efi_thunk_runtime_setup(void); extern efi_status_t efi_thunk_set_virtual_address_map( diff --git a/arch/x86/kernel/sysfb_efi.c b/arch/x86/kernel/sysfb_efi.c index b285d4e8c68e..e21a8a7ddcff 100644 --- a/arch/x86/kernel/sysfb_efi.c +++ b/arch/x86/kernel/sysfb_efi.c @@ -68,6 +68,21 @@ struct efifb_dmi_info efifb_dmi_list[] = { [M_UNKNOWN] = { NULL, 0, 0, 0, 0, OVERRIDE_NONE } }; +void efifb_setup_from_dmi(struct screen_info *si, const char *opt) +{ + int i; + + for (i = 0; i < M_UNKNOWN; i++) { + if (efifb_dmi_list[i].base != 0 && + !strcmp(opt, efifb_dmi_list[i].optname)) { + si->lfb_base = efifb_dmi_list[i].base; + si->lfb_linelength = efifb_dmi_list[i].stride; + si->lfb_width = efifb_dmi_list[i].width; + si->lfb_height = efifb_dmi_list[i].height; + } + } +} + #define choose_value(dmivalue, fwvalue, field, flags) ({ \ typeof(fwvalue) _ret_ = fwvalue; \ if ((flags) & (field)) \ diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c index 95d293b7445a..dd594369b8a6 100644 --- a/drivers/video/fbdev/efifb.c +++ b/drivers/video/fbdev/efifb.c @@ -8,6 +8,7 @@ #include #include +#include #include #include #include @@ -15,7 +16,7 @@ #include #include #include