From patchwork Fri Jul 14 17:16:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Javier Martinez Canillas X-Patchwork-Id: 120578 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp2656590vqm; Fri, 14 Jul 2023 10:41:47 -0700 (PDT) X-Google-Smtp-Source: APBJJlGJO0watUNw/2R2BjOYBhlZEQYM4ofSDQ0xwr1WEMLPwb1UylZCPrcp6VmyFe/Urp831b6s X-Received: by 2002:a05:6a20:549f:b0:122:c6c4:36b1 with SMTP id i31-20020a056a20549f00b00122c6c436b1mr6656741pzk.4.1689356506703; Fri, 14 Jul 2023 10:41:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689356506; cv=none; d=google.com; s=arc-20160816; b=e9Cs1KEWPneZmFBHBqnCumDc9ngSmr7KPcxfkd6ggl8MTTMBob5B4rRez+dQxO9V4P VCTYC/1RyEn/3GDlyBLc4buteUfZhfAWa4ovniHXPeq68VufVUcF2zFBUCBMu7a+3liL lzHbkGs2/DTk/AVjgn0cEjHoXbrs03nVdtlJ3xzAJ0gtrbbEKRIBxYvZixxa/RWwaxD0 I0scPXIFbdZu1PTKpdjEANCHWWih7mCnRuqQXezoZEogD4PciXCZzf2gkzD7xtarTVOb V/pMxEsPXVDJ8DLqVZgw2KiqHPuu9Zqle8T5YltTWX09Lcb3vJSu0fNX7RG3xsZ+YE01 iChg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=H3RubCoS5fodtVjbVQMhDpySdYC1/vabLgYbQkOImtE=; fh=DUpcL4zlEfkTfZvE3FHE2tOBfli0fzV813W/EKptjrs=; b=045wJWNqmyb3brCwOD6XnjTWmYZlIwXjm3L1E7U+1mgJemjFxEdDaum34Hn+otezwv 3l8lf2m5soM3xZUho7ElB4VnHpvCuKncWMrB82h1fDeKUI6ODu61eLkyqTk9/wnN7WNL IoeAl79F6LbybU4WPwhbVovTp/1w5YzZ1f97nQbT5uUO0OdSX071uztl1LNkGsUn5U4R Phu+Kx+BL9tLIPqiZvWTxxOMZOWeuxam2JFp4WbvXWHLvyYwpzsnCE0IyKZRqJofY/cj rlTxc2UH6U55hJDFu6e8X8yYT60VUo1057l4XGXWEjcCQloVAYyZxTEZyHVL7xBIBQcA Bjow== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b="Ez3/FoQh"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q24-20020a631f58000000b0054fe4a4f66bsi7430566pgm.61.2023.07.14.10.41.34; Fri, 14 Jul 2023 10:41:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b="Ez3/FoQh"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236032AbjGNRSO (ORCPT + 99 others); Fri, 14 Jul 2023 13:18:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44804 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235554AbjGNRRv (ORCPT ); Fri, 14 Jul 2023 13:17:51 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6E6BE2D40 for ; Fri, 14 Jul 2023 10:16:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1689355018; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=H3RubCoS5fodtVjbVQMhDpySdYC1/vabLgYbQkOImtE=; b=Ez3/FoQhZlXxQz4Pv9RqvpjoQXJEE5h298bWgvjZ5R3A6gUH4vOV6JddSRIiVbJNj7e77Z ZGFU76JaS/1ddcvnHh8jTr0ZlOb3Ee9yzujMC81ZLN8SvKY1j6kWei8VWfCcBcAqSqT3Uh tCNg5PgR7paVNVkWwlUenPBnuUneYUo= Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-379-L5etGFtjP3OOvPC6-5ntzA-1; Fri, 14 Jul 2023 13:16:57 -0400 X-MC-Unique: L5etGFtjP3OOvPC6-5ntzA-1 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-31444df0fafso1220836f8f.2 for ; Fri, 14 Jul 2023 10:16:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689355016; x=1691947016; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=H3RubCoS5fodtVjbVQMhDpySdYC1/vabLgYbQkOImtE=; b=UHaCTOSopCnJYG/eoncTX7oLGi+tLFpnBE0XfCi2nk9qIfmP410lsZHMVmi8BB37oq LR9qn24+qw+/EkMWBxyCV2sqFf6OR0VOKNevgl6lQVMC7h9B1sHqLsoxGM5Y8WuDgTVa ckQiNBS7yK7G77oW3MPMEFdFJDFEScEN5mwma+Pg/kNm5cXzifv8bqTPUqxY8akMz3d9 ZEoNuqslRfICp9zr0yyOsw1SkoH1A5JRagN77B/5cw6cKAXpeF7KOCN6bt7A7cZEAqEp DhtRE7RM6Kr32qbXrvuPTcvGy/nMQkqqmGpt1iPqAGEYv4Zxomlcxi0oFI8QRE98isvu bx0w== X-Gm-Message-State: ABy/qLYWx4YjEAYofSN49wMfHepN12m1S7uSxkCzOI62bCtIGt4RwGCf kmoSF8ZBL453Us1gEZIWe384DS1+B1uIusywOT7BO5dkpE3KzrMM5kt9ZIv2AERANrApnXHKy5g iYOpMcHpxeAq7MXlVjAvdS2nbVhLECw/Vie/0SSEp5SPl0te7zSOokeA1qXr3oRUrz9+5PyPsv5 BFrbKTwaM= X-Received: by 2002:a5d:54c1:0:b0:314:1fdc:796d with SMTP id x1-20020a5d54c1000000b003141fdc796dmr4676269wrv.70.1689355015717; Fri, 14 Jul 2023 10:16:55 -0700 (PDT) X-Received: by 2002:a5d:54c1:0:b0:314:1fdc:796d with SMTP id x1-20020a5d54c1000000b003141fdc796dmr4676244wrv.70.1689355015281; Fri, 14 Jul 2023 10:16:55 -0700 (PDT) Received: from minerva.home (205.pool92-176-231.dynamic.orange.es. [92.176.231.205]) by smtp.gmail.com with ESMTPSA id d17-20020adfe891000000b003143cdc5949sm11620842wrm.9.2023.07.14.10.16.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Jul 2023 10:16:54 -0700 (PDT) From: Javier Martinez Canillas To: linux-kernel@vger.kernel.org Cc: Geert Uytterhoeven , Thomas Zimmermann , Arnd Bergmann , Javier Martinez Canillas , Andy Shevchenko , Daniel Vetter , Helge Deller , Randy Dunlap , Sam Ravnborg , dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org Subject: [PATCH v5 2/4] fbdev: Move core fbdev symbols to a separate Kconfig file Date: Fri, 14 Jul 2023 19:16:30 +0200 Message-ID: <20230714171642.91185-3-javierm@redhat.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230714171642.91185-1-javierm@redhat.com> References: <20230714171642.91185-1-javierm@redhat.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771418688545721096 X-GMAIL-MSGID: 1771418688545721096 The drivers/video/fbdev/Kconfig defines both symbols for fbdev drivers and core fbdev symbols, that can be enabled independently of the fbdev drivers. Split the Kconfig in two, one that only has the symbols for fbdev drivers and another one that contains the fbdev core symbols. Suggested-by: Arnd Bergmann Signed-off-by: Javier Martinez Canillas --- (no changes since v1) drivers/video/fbdev/Kconfig | 203 +------------------------------ drivers/video/fbdev/core/Kconfig | 202 ++++++++++++++++++++++++++++++ 2 files changed, 204 insertions(+), 201 deletions(-) create mode 100644 drivers/video/fbdev/core/Kconfig diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig index c12c166be7d1..ec4068abeb8e 100644 --- a/drivers/video/fbdev/Kconfig +++ b/drivers/video/fbdev/Kconfig @@ -3,9 +3,6 @@ # fbdev configuration # -config FB_NOTIFY - bool - menuconfig FB tristate "Support for frame buffer devices" select FB_NOTIFY @@ -42,204 +39,6 @@ menuconfig FB (e.g. an accelerated X server) and that are not frame buffer device-aware may cause unexpected results. If unsure, say N. -config FIRMWARE_EDID - bool "Enable firmware EDID" - depends on FB - help - This enables access to the EDID transferred from the firmware. - On the i386, this is from the Video BIOS. Enable this if DDC/I2C - transfers do not work for your driver and if you are using - nvidiafb, i810fb or savagefb. - - In general, choosing Y for this option is safe. If you - experience extremely long delays while booting before you get - something on your display, try setting this to N. Matrox cards in - combination with certain motherboards and monitors are known to - suffer from this problem. - -config FB_DEVICE - bool "Provide legacy /dev/fb* device" - depends on FB - default y - help - Say Y here if you want the legacy /dev/fb* device file and - interfaces within sysfs anc procfs. It is only required if you - have userspace programs that depend on fbdev for graphics output. - This does not affect the framebuffer console. If unsure, say N. - -config FB_DDC - tristate - depends on FB - select I2C_ALGOBIT - select I2C - -config FB_CFB_FILLRECT - tristate - depends on FB - help - Include the cfb_fillrect function for generic software rectangle - filling. This is used by drivers that don't provide their own - (accelerated) version. - -config FB_CFB_COPYAREA - tristate - depends on FB - help - Include the cfb_copyarea function for generic software area copying. - This is used by drivers that don't provide their own (accelerated) - version. - -config FB_CFB_IMAGEBLIT - tristate - depends on FB - help - Include the cfb_imageblit function for generic software image - blitting. This is used by drivers that don't provide their own - (accelerated) version. - -config FB_CFB_REV_PIXELS_IN_BYTE - bool - depends on FB - help - Allow generic frame-buffer functions to work on displays with 1, 2 - and 4 bits per pixel depths which has opposite order of pixels in - byte order to bytes in long order. - -config FB_SYS_FILLRECT - tristate - depends on FB - help - Include the sys_fillrect function for generic software rectangle - filling. This is used by drivers that don't provide their own - (accelerated) version and the framebuffer is in system RAM. - -config FB_SYS_COPYAREA - tristate - depends on FB - help - Include the sys_copyarea function for generic software area copying. - This is used by drivers that don't provide their own (accelerated) - version and the framebuffer is in system RAM. - -config FB_SYS_IMAGEBLIT - tristate - depends on FB - help - Include the sys_imageblit function for generic software image - blitting. This is used by drivers that don't provide their own - (accelerated) version and the framebuffer is in system RAM. - -config FB_PROVIDE_GET_FB_UNMAPPED_AREA - bool - depends on FB - help - Allow generic frame-buffer to provide get_fb_unmapped_area - function to provide shareable character device support on nommu. - -menuconfig FB_FOREIGN_ENDIAN - bool "Framebuffer foreign endianness support" - depends on FB - help - This menu will let you enable support for the framebuffers with - non-native endianness (e.g. Little-Endian framebuffer on a - Big-Endian machine). Most probably you don't have such hardware, - so it's safe to say "n" here. - -choice - prompt "Choice endianness support" - depends on FB_FOREIGN_ENDIAN - -config FB_BOTH_ENDIAN - bool "Support for Big- and Little-Endian framebuffers" - -config FB_BIG_ENDIAN - bool "Support for Big-Endian framebuffers only" - -config FB_LITTLE_ENDIAN - bool "Support for Little-Endian framebuffers only" - -endchoice - -config FB_SYS_FOPS - tristate - depends on FB - -config FB_DEFERRED_IO - bool - depends on FB - -config FB_IO_HELPERS - bool - depends on FB - select FB_CFB_COPYAREA - select FB_CFB_FILLRECT - select FB_CFB_IMAGEBLIT - -config FB_SYS_HELPERS - bool - depends on FB - select FB_SYS_COPYAREA - select FB_SYS_FILLRECT - select FB_SYS_FOPS - select FB_SYS_IMAGEBLIT - -config FB_SYS_HELPERS_DEFERRED - bool - depends on FB - select FB_DEFERRED_IO - select FB_SYS_HELPERS - -config FB_HECUBA - tristate - depends on FB - select FB_SYS_HELPERS_DEFERRED - -config FB_SVGALIB - tristate - depends on FB - help - Common utility functions useful to fbdev drivers of VGA-based - cards. - -config FB_MACMODES - tristate - depends on FB - -config FB_BACKLIGHT - tristate - depends on FB - select BACKLIGHT_CLASS_DEVICE - -config FB_MODE_HELPERS - bool "Enable Video Mode Handling Helpers" - depends on FB - help - This enables functions for handling video modes using the - Generalized Timing Formula and the EDID parser. A few drivers rely - on this feature such as the radeonfb, rivafb, and the i810fb. If - your driver does not take advantage of this feature, choosing Y will - just increase the kernel size by about 5K. - -config FB_TILEBLITTING - bool "Enable Tile Blitting Support" - depends on FB - help - This enables tile blitting. Tile blitting is a drawing technique - where the screen is divided into rectangular sections (tiles), whereas - the standard blitting divides the screen into pixels. Because the - default drawing element is a tile, drawing functions will be passed - parameters in terms of number of tiles instead of number of pixels. - For example, to draw a single character, instead of using bitmaps, - an index to an array of bitmaps will be used. To clear or move a - rectangular section of a screen, the rectangle will be described in - terms of number of tiles in the x- and y-axis. - - This is particularly important to one driver, matroxfb. If - unsure, say N. - -comment "Frame buffer hardware drivers" - depends on FB - config FB_GRVGA tristate "Aeroflex Gaisler framebuffer support" depends on FB && SPARC @@ -2223,3 +2022,5 @@ config FB_SM712 source "drivers/video/fbdev/omap/Kconfig" source "drivers/video/fbdev/omap2/Kconfig" source "drivers/video/fbdev/mmp/Kconfig" + +source "drivers/video/fbdev/core/Kconfig" diff --git a/drivers/video/fbdev/core/Kconfig b/drivers/video/fbdev/core/Kconfig new file mode 100644 index 000000000000..8e308d12c57b --- /dev/null +++ b/drivers/video/fbdev/core/Kconfig @@ -0,0 +1,202 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# fbdev core configuration +# + +config FB_NOTIFY + bool + +config FIRMWARE_EDID + bool "Enable firmware EDID" + depends on FB + help + This enables access to the EDID transferred from the firmware. + On the i386, this is from the Video BIOS. Enable this if DDC/I2C + transfers do not work for your driver and if you are using + nvidiafb, i810fb or savagefb. + + In general, choosing Y for this option is safe. If you + experience extremely long delays while booting before you get + something on your display, try setting this to N. Matrox cards in + combination with certain motherboards and monitors are known to + suffer from this problem. + +config FB_DEVICE + bool "Provide legacy /dev/fb* device" + depends on FB + default y + help + Say Y here if you want the legacy /dev/fb* device file and + interfaces within sysfs anc procfs. It is only required if you + have userspace programs that depend on fbdev for graphics output. + This does not affect the framebuffer console. If unsure, say N. + +config FB_DDC + tristate + depends on FB + select I2C_ALGOBIT + select I2C + +config FB_CFB_FILLRECT + tristate + depends on FB + help + Include the cfb_fillrect function for generic software rectangle + filling. This is used by drivers that don't provide their own + (accelerated) version. + +config FB_CFB_COPYAREA + tristate + depends on FB + help + Include the cfb_copyarea function for generic software area copying. + This is used by drivers that don't provide their own (accelerated) + version. + +config FB_CFB_IMAGEBLIT + tristate + depends on FB + help + Include the cfb_imageblit function for generic software image + blitting. This is used by drivers that don't provide their own + (accelerated) version. + +config FB_CFB_REV_PIXELS_IN_BYTE + bool + depends on FB + help + Allow generic frame-buffer functions to work on displays with 1, 2 + and 4 bits per pixel depths which has opposite order of pixels in + byte order to bytes in long order. + +config FB_SYS_FILLRECT + tristate + depends on FB + help + Include the sys_fillrect function for generic software rectangle + filling. This is used by drivers that don't provide their own + (accelerated) version and the framebuffer is in system RAM. + +config FB_SYS_COPYAREA + tristate + depends on FB + help + Include the sys_copyarea function for generic software area copying. + This is used by drivers that don't provide their own (accelerated) + version and the framebuffer is in system RAM. + +config FB_SYS_IMAGEBLIT + tristate + depends on FB + help + Include the sys_imageblit function for generic software image + blitting. This is used by drivers that don't provide their own + (accelerated) version and the framebuffer is in system RAM. + +config FB_PROVIDE_GET_FB_UNMAPPED_AREA + bool + depends on FB + help + Allow generic frame-buffer to provide get_fb_unmapped_area + function to provide shareable character device support on nommu. + +menuconfig FB_FOREIGN_ENDIAN + bool "Framebuffer foreign endianness support" + depends on FB + help + This menu will let you enable support for the framebuffers with + non-native endianness (e.g. Little-Endian framebuffer on a + Big-Endian machine). Most probably you don't have such hardware, + so it's safe to say "n" here. + +choice + prompt "Choice endianness support" + depends on FB_FOREIGN_ENDIAN + +config FB_BOTH_ENDIAN + bool "Support for Big- and Little-Endian framebuffers" + +config FB_BIG_ENDIAN + bool "Support for Big-Endian framebuffers only" + +config FB_LITTLE_ENDIAN + bool "Support for Little-Endian framebuffers only" + +endchoice + +config FB_SYS_FOPS + tristate + depends on FB + +config FB_DEFERRED_IO + bool + depends on FB + +config FB_IO_HELPERS + bool + depends on FB + select FB_CFB_COPYAREA + select FB_CFB_FILLRECT + select FB_CFB_IMAGEBLIT + +config FB_SYS_HELPERS + bool + depends on FB + select FB_SYS_COPYAREA + select FB_SYS_FILLRECT + select FB_SYS_FOPS + select FB_SYS_IMAGEBLIT + +config FB_SYS_HELPERS_DEFERRED + bool + depends on FB + select FB_DEFERRED_IO + select FB_SYS_HELPERS + +config FB_HECUBA + tristate + depends on FB + depends on FB_DEFERRED_IO + +config FB_SVGALIB + tristate + depends on FB + help + Common utility functions useful to fbdev drivers of VGA-based + cards. + +config FB_MACMODES + tristate + depends on FB + +config FB_BACKLIGHT + tristate + depends on FB + select BACKLIGHT_CLASS_DEVICE + +config FB_MODE_HELPERS + bool "Enable Video Mode Handling Helpers" + depends on FB + help + This enables functions for handling video modes using the + Generalized Timing Formula and the EDID parser. A few drivers rely + on this feature such as the radeonfb, rivafb, and the i810fb. If + your driver does not take advantage of this feature, choosing Y will + just increase the kernel size by about 5K. + +config FB_TILEBLITTING + bool "Enable Tile Blitting Support" + depends on FB + help + This enables tile blitting. Tile blitting is a drawing technique + where the screen is divided into rectangular sections (tiles), whereas + the standard blitting divides the screen into pixels. Because the + default drawing element is a tile, drawing functions will be passed + parameters in terms of number of tiles instead of number of pixels. + For example, to draw a single character, instead of using bitmaps, + an index to an array of bitmaps will be used. To clear or move a + rectangular section of a screen, the rectangle will be described in + terms of number of tiles in the x- and y-axis. + + This is particularly important to one driver, matroxfb. If + unsure, say N.