From patchwork Sat Nov 25 19:35:53 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: 10076081 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 7F83E602BD for ; Mon, 27 Nov 2017 08:33:50 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6C98E28D7B for ; Mon, 27 Nov 2017 08:33:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6174828DA9; Mon, 27 Nov 2017 08:33:50 +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 9E04128DA7 for ; Mon, 27 Nov 2017 08:33:49 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B1BBC6E210; Mon, 27 Nov 2017 08:33:43 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 15EBC6E16A; Sat, 25 Nov 2017 19:36:09 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id y82so23668329wmg.1; Sat, 25 Nov 2017 11:36:09 -0800 (PST) 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=6LIJVXH95OzTbRjJr1XhLuGECZqewdbTigMnopfSmk8=; b=kN9Vk3AWGiurnFEJRyLW+h4H40WoBXnM8F2wg/PH1H+PmV0Tw4iMh+EyMCe2lqeWIj tbBlTiXM+V4WFA2NwA7UZaWjSl2XF5i5o4LcQiLMwkhw614/SgfexJXLbzRNRdNG80nG 8jqEi8pWHEa+zAGNAEGni3KDUVa1SVwW43/dCwI3MPNdvj1bMRqyp6z8TyoJCfCLpDfU NMH0SEOGAfs66MGvV/+TWnEXfqmsiBqxSig4alzUNUIuygFfmzGpc1qSmKAVj2N/nyNF Ksc0pLUHXyUSWmYps/fVNqyBhM9vks4MHfcJFdQUiOGMuwQJ59ZFLGDbSc/kPD6xjbuW YqeQ== 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=6LIJVXH95OzTbRjJr1XhLuGECZqewdbTigMnopfSmk8=; b=iCjHgZeaXq3nYjovzBD/CSsbhbq6euSJS6zslWSV/NjoXghzoFFqeC5lN6dkVyemPb Wn1BVcTwaILviV0mvVa1D2cmcB33Uj7PbL/K377SiVRyh6Z+fcXLtkE1FBWz8LWRrnUp Ocr0bYCwKYBCyJ3mrHyXBr/4hQyf506UXgOw6Pj5L+27514aoxJZPVHTX01XEpEcWZrm P09fAYyLj4eR3p6YslcCRuXp7GeTsgihz6obYyWyZOouVImF/C4SgMzT9guMmeuBa4q0 RBb2B6exAVkaQvN8AMg0uyVwFFnKZ0pbmYhYfPVxfTE5TlCP9YKcKFh0npv/wgJIxaaw tf/w== X-Gm-Message-State: AJaThX7KO9ECQ+VVR96f4ZLyJtymu0JyCw5QuVvEzfio9R0itNuD9rGF 14uVQoKzpVGYMTBu8ojVjiw= X-Google-Smtp-Source: AGs4zMbtFblVvswT2iqMuNaXfB3IxviQXYDsCpgzV1SQYJqpI3tYHSwht+n2SgK59kO79JYZyQzKRw== X-Received: by 10.28.71.5 with SMTP id u5mr9232776wma.84.1511638567723; Sat, 25 Nov 2017 11:36:07 -0800 (PST) Received: from localhost.localdomain.com ([2001:470:7a95:4242:2c1c:b9eb:f8cb:6ccb]) by smtp.gmail.com with ESMTPSA id l142sm1835010wmb.43.2017.11.25.11.36.06 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 25 Nov 2017 11:36:06 -0800 (PST) From: Hans de Goede X-Google-Original-From: Hans de Goede To: Daniel Vetter , Jani Nikula , Sean Paul , Dave Airlie , Bartlomiej Zolnierkiewicz Subject: [PATCH v7 7/7] fbcon: Remove dmi quirk table Date: Sat, 25 Nov 2017 20:35:53 +0100 Message-Id: <20171125193553.23986-8-hdegoede@redhat.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20171125193553.23986-1-hdegoede@redhat.com> References: <20171125193553.23986-1-hdegoede@redhat.com> X-Mailman-Approved-At: Mon, 27 Nov 2017 08:33:34 +0000 Cc: Hans de Goede , intel-gfx , linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org 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 d34fd182ca68..37710316a680 100644 --- a/drivers/video/fbdev/core/Makefile +++ b/drivers/video/fbdev/core/Makefile @@ -15,9 +15,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; -}