From patchwork Mon Oct 23 09:25:02 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hans de Goede X-Patchwork-Id: 10023595 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E25B7601E8 for ; Tue, 24 Oct 2017 07:38:43 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C884028998 for ; Tue, 24 Oct 2017 07:38:43 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BD20E2899A; Tue, 24 Oct 2017 07:38:43 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,FREEMAIL_FROM,RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 582EF28998 for ; Tue, 24 Oct 2017 07:38:43 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8AB006E3D4; Tue, 24 Oct 2017 07:37:31 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wr0-x241.google.com (mail-wr0-x241.google.com [IPv6:2a00:1450:400c:c0c::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id DF1816E348; Mon, 23 Oct 2017 09:25:18 +0000 (UTC) Received: by mail-wr0-x241.google.com with SMTP id l8so3732560wre.12; Mon, 23 Oct 2017 02:25:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=qbN08NpjlJ+CxO9yPynLAnuQrPv5p5jrOo2ZS9hTnnc=; b=Kz+luou2X6w7xvyqPLVLBi4VrJ3eBptKBSRxsHddzn12ZNIJlhbiUPFYLL1QcOOQol W1zV6GL8Sh0jtmkBiZdNGcqVSSNRtRhno7Z0jqc+UU9wLVReAm5UIjV+tw7s4yU4h8pB 0m4Twa9SVPHhfyjV4Fqyp0CG5Ip0TUPx/yEMnFEeqdqnZ4NEwgyFZ6jCyvk5r0wqBL8l M1nsAinweD0zs0dmJOnq1z2EAv/nW9VmceIYmzj04Baa3pW9QYK0WEtNQqbZcGhh/ymg abQ/0ApanHihIZC4QeRBn5laDbMKJQAKog1WuZnM5OMTpoENSxq8rnB3o1Q3szBIEKKN l/IQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=qbN08NpjlJ+CxO9yPynLAnuQrPv5p5jrOo2ZS9hTnnc=; b=j84d0k9WUMbZ4BSRPMz8DIQa8W1dZEtMdxYqcRMb8httV+dt6Hau+q0PxVBhakfwAr 1hQ3xw+dbpU8+tXz44+onkJpxqOSGwTkMyOCNDha8Gl4dGQpT2rd+nMUHs6CFckBjhNN E5zteDRrIO8TJypQc4DpiPZxQxhWccfdzx9yyc1ulhOsOhpOenN5ayzzhccHx6M56pAL kaw5kIvudHSNjD+y6ESY/YAZMM88RnXItPvml7ZjBsdc70aho5u1UTqv1TlkZBxv/kZz AQgloeNLC+VuUY0kKGHnW00EHMDeg7OXTkVGv8ZqKz1nmdZrJJQP3OLm/W+fyZ4Ztizm 3jHw== X-Gm-Message-State: AMCzsaU7+ve7ApcRcZ5DHi8yyoYzei+l/TCNHiRqMkHrxa+MzN+iaGJ4 vxYaXghccQKyTFU7yYPKYII= X-Google-Smtp-Source: ABhQp+RptY6W/4MWQ7TT9atHD8dcYPXed3LPfNb8khDq/v8im/dctedSw4uc/kQYudz3n+mgpwhIxQ== X-Received: by 10.223.147.135 with SMTP id 7mr11274310wrp.237.1508750717295; Mon, 23 Oct 2017 02:25:17 -0700 (PDT) Received: from shalem.localdomain.com (546A5441.cm-12-3b.dynamic.ziggo.nl. [84.106.84.65]) by smtp.gmail.com with ESMTPSA id t143sm2870584wmt.45.2017.10.23.02.25.16 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 23 Oct 2017 02:25:16 -0700 (PDT) From: Hans de Goede X-Google-Original-From: Hans de Goede To: Daniel Vetter , Jani Nikula , Sean Paul , David Airlie , Bartlomiej Zolnierkiewicz Subject: [PATCH v4 7/7] fbcon: Remove dmi quirk table Date: Mon, 23 Oct 2017 11:25:02 +0200 Message-Id: <20171023092502.1095-8-hdegoede@redhat.com> X-Mailer: git-send-email 2.14.2 In-Reply-To: <20171023092502.1095-1-hdegoede@redhat.com> References: <20171023092502.1095-1-hdegoede@redhat.com> X-Mailman-Approved-At: Tue, 24 Oct 2017 07:36:57 +0000 Cc: linux-fbdev@vger.kernel.org, intel-gfx , dri-devel@lists.freedesktop.org, Daniel Drake , Hans de Goede , Bastien Nocera X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP This is now all handled in the drivers and communicated through fb_info.fbcon_rotate_hint. Signed-off-by: Hans de Goede --- drivers/video/fbdev/core/Makefile | 3 - drivers/video/fbdev/core/fbcon.c | 4 +- drivers/video/fbdev/core/fbcon.h | 6 -- drivers/video/fbdev/core/fbcon_dmi_quirks.c | 145 ---------------------------- 4 files changed, 2 insertions(+), 156 deletions(-) delete mode 100644 drivers/video/fbdev/core/fbcon_dmi_quirks.c diff --git a/drivers/video/fbdev/core/Makefile b/drivers/video/fbdev/core/Makefile index 73493bbd7a15..0214b863ac3f 100644 --- a/drivers/video/fbdev/core/Makefile +++ b/drivers/video/fbdev/core/Makefile @@ -14,9 +14,6 @@ ifeq ($(CONFIG_FRAMEBUFFER_CONSOLE_ROTATION),y) fb-y += fbcon_rotate.o fbcon_cw.o fbcon_ud.o \ fbcon_ccw.o endif -ifeq ($(CONFIG_DMI),y) -fb-y += fbcon_dmi_quirks.o -endif endif fb-objs := $(fb-y) diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c index fb317ed76b45..157a40670a47 100644 --- a/drivers/video/fbdev/core/fbcon.c +++ b/drivers/video/fbdev/core/fbcon.c @@ -968,7 +968,7 @@ static const char *fbcon_startup(void) if (p->con_rotate == -1) p->con_rotate = info->fbcon_rotate_hint; if (p->con_rotate == -1) - p->con_rotate = fbcon_platform_get_rotate(info); + p->con_rotate = FB_ROTATE_UR; set_blitting_type(vc, info); @@ -1111,7 +1111,7 @@ static void fbcon_init(struct vc_data *vc, int init) if (p->con_rotate == -1) p->con_rotate = info->fbcon_rotate_hint; if (p->con_rotate == -1) - p->con_rotate = fbcon_platform_get_rotate(info); + p->con_rotate = FB_ROTATE_UR; set_blitting_type(vc, info); diff --git a/drivers/video/fbdev/core/fbcon.h b/drivers/video/fbdev/core/fbcon.h index 18f3ac144237..3746828356ed 100644 --- a/drivers/video/fbdev/core/fbcon.h +++ b/drivers/video/fbdev/core/fbcon.h @@ -261,10 +261,4 @@ extern void fbcon_set_rotate(struct fbcon_ops *ops); #define fbcon_set_rotate(x) do {} while(0) #endif /* CONFIG_FRAMEBUFFER_CONSOLE_ROTATION */ -#ifdef CONFIG_DMI -int fbcon_platform_get_rotate(struct fb_info *info); -#else -#define fbcon_platform_get_rotate(i) FB_ROTATE_UR -#endif /* CONFIG_DMI */ - #endif /* _VIDEO_FBCON_H */ diff --git a/drivers/video/fbdev/core/fbcon_dmi_quirks.c b/drivers/video/fbdev/core/fbcon_dmi_quirks.c deleted file mode 100644 index 6904e47d1e51..000000000000 --- a/drivers/video/fbdev/core/fbcon_dmi_quirks.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - * fbcon_dmi_quirks.c -- DMI based quirk detection for fbcon - * - * Copyright (C) 2017 Hans de Goede - * - * This file is subject to the terms and conditions of the GNU General Public - * License. See the file COPYING in the main directory of this archive for - * more details. - */ - -#include -#include -#include -#include "fbcon.h" - -/* - * Some x86 clamshell design devices use portrait tablet screens and a display - * engine which cannot rotate in hardware, so we need to rotate the fbcon to - * compensate. Unfortunately these (cheap) devices also typically have quite - * generic DMI data, so we match on a combination of DMI data, screen resolution - * and a list of known BIOS dates to avoid false positives. - */ - -struct fbcon_dmi_rotate_data { - int width; - int height; - const char * const *bios_dates; - int rotate; -}; - -static const struct fbcon_dmi_rotate_data rotate_data_asus_t100ha = { - .width = 800, - .height = 1280, - .rotate = FB_ROTATE_CCW, -}; - -static const struct fbcon_dmi_rotate_data rotate_data_gpd_pocket = { - .width = 1200, - .height = 1920, - .bios_dates = (const char * const []){ "05/26/2017", "06/28/2017", - "07/05/2017", "08/07/2017", NULL }, - .rotate = FB_ROTATE_CW, -}; - -static const struct fbcon_dmi_rotate_data rotate_data_gpd_win = { - .width = 720, - .height = 1280, - .bios_dates = (const char * const []){ - "10/25/2016", "11/18/2016", "12/23/2016", "12/26/2016", - "02/21/2017", "03/20/2017", "05/25/2017", NULL }, - .rotate = FB_ROTATE_CW, -}; - -static const struct fbcon_dmi_rotate_data rotate_data_itworks_tw891 = { - .width = 800, - .height = 1280, - .bios_dates = (const char * const []){ "10/16/2015", NULL }, - .rotate = FB_ROTATE_CW, -}; - -static const struct fbcon_dmi_rotate_data rotate_data_vios_lth17 = { - .width = 800, - .height = 1280, - .rotate = FB_ROTATE_CW, -}; - -static const struct dmi_system_id rotate_data[] = { - { /* Asus T100HA */ - .matches = { - DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), - DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T100HAN"), - }, - .driver_data = (void *)&rotate_data_asus_t100ha, - }, { /* - * GPD Pocket, note that the the DMI data is less generic then - * it seems, devices with a board-vendor of "AMI Corporation" - * are quite rare, as are devices which have both board- *and* - * product-id set to "Default String" - */ - .matches = { - DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"), - DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"), - DMI_EXACT_MATCH(DMI_BOARD_SERIAL, "Default string"), - DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Default string"), - }, - .driver_data = (void *)&rotate_data_gpd_pocket, - }, { /* GPD Win (same note on DMI match as GPD Pocket) */ - .matches = { - DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"), - DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"), - DMI_EXACT_MATCH(DMI_BOARD_SERIAL, "Default string"), - DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Default string"), - }, - .driver_data = (void *)&rotate_data_gpd_win, - }, { /* I.T.Works TW891 */ - .matches = { - DMI_EXACT_MATCH(DMI_SYS_VENDOR, "To be filled by O.E.M."), - DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "TW891"), - DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "To be filled by O.E.M."), - DMI_EXACT_MATCH(DMI_BOARD_NAME, "TW891"), - }, - .driver_data = (void *)&rotate_data_itworks_tw891, - }, { /* VIOS LTH17 */ - .matches = { - DMI_EXACT_MATCH(DMI_SYS_VENDOR, "VIOS"), - DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "LTH17"), - DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "VIOS"), - DMI_EXACT_MATCH(DMI_BOARD_NAME, "LTH17"), - }, - .driver_data = (void *)&rotate_data_vios_lth17, - }, - {} -}; - -int fbcon_platform_get_rotate(struct fb_info *info) -{ - const struct dmi_system_id *match; - const struct fbcon_dmi_rotate_data *data; - const char *bios_date; - int i; - - for (match = dmi_first_match(rotate_data); - match; - match = dmi_first_match(match + 1)) { - data = match->driver_data; - - if (data->width != info->var.xres || - data->height != info->var.yres) - continue; - - if (!data->bios_dates) - return data->rotate; - - bios_date = dmi_get_system_info(DMI_BIOS_DATE); - if (!bios_date) - continue; - - for (i = 0; data->bios_dates[i]; i++) { - if (!strcmp(data->bios_dates[i], bios_date)) - return data->rotate; - } - } - - return FB_ROTATE_UR; -}