| 1 | # SPDX-License-Identifier: GPL-2.0-only |
| 2 | # |
| 3 | # fbdev core configuration |
| 4 | # |
| 5 | |
| 6 | config FB_CORE |
| 7 | select VIDEO |
| 8 | tristate |
| 9 | |
| 10 | config FB_NOTIFY |
| 11 | bool |
| 12 | |
| 13 | config FB_DEVICE |
| 14 | bool "Provide legacy /dev/fb* device" |
| 15 | depends on FB_CORE |
| 16 | default FB |
| 17 | help |
| 18 | Say Y here if you want the legacy /dev/fb* device file and |
| 19 | interfaces within sysfs and procfs. It is only required if you |
| 20 | have userspace programs that depend on fbdev for graphics output. |
| 21 | This does not affect the framebuffer console. If unsure, say N. |
| 22 | |
| 23 | config FB_DDC |
| 24 | tristate |
| 25 | depends on FB |
| 26 | select I2C_ALGOBIT |
| 27 | select I2C |
| 28 | |
| 29 | config FB_CFB_FILLRECT |
| 30 | tristate |
| 31 | depends on FB_CORE |
| 32 | help |
| 33 | Include the cfb_fillrect function for generic software rectangle |
| 34 | filling. This is used by drivers that don't provide their own |
| 35 | (accelerated) version. |
| 36 | |
| 37 | config FB_CFB_COPYAREA |
| 38 | tristate |
| 39 | depends on FB_CORE |
| 40 | help |
| 41 | Include the cfb_copyarea function for generic software area copying. |
| 42 | This is used by drivers that don't provide their own (accelerated) |
| 43 | version. |
| 44 | |
| 45 | config FB_CFB_IMAGEBLIT |
| 46 | tristate |
| 47 | depends on FB_CORE |
| 48 | help |
| 49 | Include the cfb_imageblit function for generic software image |
| 50 | blitting. This is used by drivers that don't provide their own |
| 51 | (accelerated) version. |
| 52 | |
| 53 | config FB_CFB_REV_PIXELS_IN_BYTE |
| 54 | bool |
| 55 | depends on FB_CORE |
| 56 | help |
| 57 | Allow I/O memory frame-buffer functions to work on displays with 1, 2 |
| 58 | and 4 bits per pixel depths which has opposite order of pixels in |
| 59 | byte order to bytes in long order. |
| 60 | |
| 61 | config FB_SYS_FILLRECT |
| 62 | tristate |
| 63 | depends on FB_CORE |
| 64 | help |
| 65 | Include the sys_fillrect function for generic software rectangle |
| 66 | filling. This is used by drivers that don't provide their own |
| 67 | (accelerated) version and the framebuffer is in system RAM. |
| 68 | |
| 69 | config FB_SYS_COPYAREA |
| 70 | tristate |
| 71 | depends on FB_CORE |
| 72 | help |
| 73 | Include the sys_copyarea function for generic software area copying. |
| 74 | This is used by drivers that don't provide their own (accelerated) |
| 75 | version and the framebuffer is in system RAM. |
| 76 | |
| 77 | config FB_SYS_IMAGEBLIT |
| 78 | tristate |
| 79 | depends on FB_CORE |
| 80 | help |
| 81 | Include the sys_imageblit function for generic software image |
| 82 | blitting. This is used by drivers that don't provide their own |
| 83 | (accelerated) version and the framebuffer is in system RAM. |
| 84 | |
| 85 | config FB_SYS_REV_PIXELS_IN_BYTE |
| 86 | bool |
| 87 | depends on FB_CORE |
| 88 | help |
| 89 | Allow virtual memory frame-buffer functions to work on displays with 1, 2 |
| 90 | and 4 bits per pixel depths which has opposite order of pixels in |
| 91 | byte order to bytes in long order. |
| 92 | |
| 93 | config FB_PROVIDE_GET_FB_UNMAPPED_AREA |
| 94 | bool |
| 95 | depends on FB |
| 96 | help |
| 97 | Allow generic frame-buffer to provide get_fb_unmapped_area |
| 98 | function to provide shareable character device support on nommu. |
| 99 | |
| 100 | menuconfig FB_FOREIGN_ENDIAN |
| 101 | bool "Framebuffer foreign endianness support" |
| 102 | depends on FB |
| 103 | help |
| 104 | This menu will let you enable support for the framebuffers with |
| 105 | non-native endianness (e.g. Little-Endian framebuffer on a |
| 106 | Big-Endian machine). Most probably you don't have such hardware, |
| 107 | so it's safe to say "n" here. |
| 108 | |
| 109 | choice |
| 110 | prompt "Choice endianness support" |
| 111 | depends on FB_FOREIGN_ENDIAN |
| 112 | |
| 113 | config FB_BOTH_ENDIAN |
| 114 | bool "Support for Big- and Little-Endian framebuffers" |
| 115 | |
| 116 | config FB_BIG_ENDIAN |
| 117 | bool "Support for Big-Endian framebuffers only" |
| 118 | |
| 119 | config FB_LITTLE_ENDIAN |
| 120 | bool "Support for Little-Endian framebuffers only" |
| 121 | |
| 122 | endchoice |
| 123 | |
| 124 | config FB_SYSMEM_FOPS |
| 125 | tristate |
| 126 | depends on FB_CORE |
| 127 | |
| 128 | config FB_DEFERRED_IO |
| 129 | bool |
| 130 | depends on FB_CORE |
| 131 | |
| 132 | config FB_DMAMEM_HELPERS |
| 133 | bool |
| 134 | depends on FB_CORE |
| 135 | select FB_SYS_COPYAREA |
| 136 | select FB_SYS_FILLRECT |
| 137 | select FB_SYS_IMAGEBLIT |
| 138 | select FB_SYSMEM_FOPS |
| 139 | |
| 140 | config FB_DMAMEM_HELPERS_DEFERRED |
| 141 | bool |
| 142 | depends on FB_CORE |
| 143 | select FB_DEFERRED_IO |
| 144 | select FB_DMAMEM_HELPERS |
| 145 | |
| 146 | config FB_IOMEM_FOPS |
| 147 | tristate |
| 148 | depends on FB_CORE |
| 149 | |
| 150 | config FB_IOMEM_HELPERS |
| 151 | bool |
| 152 | depends on FB_CORE |
| 153 | select FB_CFB_COPYAREA |
| 154 | select FB_CFB_FILLRECT |
| 155 | select FB_CFB_IMAGEBLIT |
| 156 | select FB_IOMEM_FOPS |
| 157 | |
| 158 | config FB_IOMEM_HELPERS_DEFERRED |
| 159 | bool |
| 160 | depends on FB_CORE |
| 161 | select FB_DEFERRED_IO |
| 162 | select FB_IOMEM_HELPERS |
| 163 | |
| 164 | config FB_SYSMEM_HELPERS |
| 165 | bool |
| 166 | depends on FB_CORE |
| 167 | select FB_SYS_COPYAREA |
| 168 | select FB_SYS_FILLRECT |
| 169 | select FB_SYS_IMAGEBLIT |
| 170 | select FB_SYSMEM_FOPS |
| 171 | |
| 172 | config FB_SYSMEM_HELPERS_DEFERRED |
| 173 | bool |
| 174 | depends on FB_CORE |
| 175 | select FB_DEFERRED_IO |
| 176 | select FB_SYSMEM_HELPERS |
| 177 | |
| 178 | config FB_BACKLIGHT |
| 179 | bool |
| 180 | depends on FB |
| 181 | |
| 182 | config FB_MODE_HELPERS |
| 183 | bool |
| 184 | depends on FB |
| 185 | help |
| 186 | This enables functions for handling video modes using the |
| 187 | Generalized Timing Formula and the EDID parser. A few drivers rely |
| 188 | on this feature such as the radeonfb, rivafb, and the i810fb. If |
| 189 | your driver does not take advantage of this feature, choosing Y will |
| 190 | just increase the kernel size by about 5K. |
| 191 | |
| 192 | config FB_TILEBLITTING |
| 193 | bool "Enable Tile Blitting Support" |
| 194 | depends on FB |
| 195 | help |
| 196 | This enables tile blitting. Tile blitting is a drawing technique |
| 197 | where the screen is divided into rectangular sections (tiles), whereas |
| 198 | the standard blitting divides the screen into pixels. Because the |
| 199 | default drawing element is a tile, drawing functions will be passed |
| 200 | parameters in terms of number of tiles instead of number of pixels. |
| 201 | For example, to draw a single character, instead of using bitmaps, |
| 202 | an index to an array of bitmaps will be used. To clear or move a |
| 203 | rectangular section of a screen, the rectangle will be described in |
| 204 | terms of number of tiles in the x- and y-axis. |
| 205 | |
| 206 | This is particularly important to one driver, matroxfb. If |
| 207 | unsure, say N. |