Commit 51aad189 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull fbdev updates from Helge Deller:
 "This includes a major refactoring of the fbcon packed pixel drawing
  routines, contributed by Zsolt Kajtar. The original version duplicated
  more or less the same algorithms for both system and i/o memory.

  The new implementation is more robust, both implementations are now
  feature complete (e.g. pixel order reversing now supported by both),
  behaves the same way as it uses the identical code for both variants
  and adds support for foreign endian framebuffers.

  The other patches add some parameter checks, static attribute groups
  for sysfs entries and console fixes:

   - dummycon: only build module if there are users and fix rows/cols
     (Arnd Bergmann)

   - mdacon: rework dependency list (Arnd Bergmann)

   - lcdcfb, fsl-diu-fb, fbcon: Fix registering and removing of sysfs
     (Shixiong Ou)

   - sm501fb: Add some geometry checks (Danila Chernetsov)

   - omapfb: Remove unused code, add value checks (Leonid Arapov)

   - au1100fb: Clean up variable assignment (Markus Elfring)

   - pxafb: use devm_kmemdup*() (Raag Jadav)"

* tag 'fbdev-for-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev:
  fbdev: fsl-diu-fb: add missing device_remove_file()
  fbcon: Use static attribute groups for sysfs entries
  fbdev: sm501fb: Add some geometry checks.
  fbdev: omapfb: Add 'plane' value check
  fbdev: omapfb: Remove writeback deadcode
  MAINTAINERS: Add contact info for fbdev packed pixel drawing
  fbdev: Refactoring the fbcon packed pixel drawing routines
  fbdev: wmt_ge_rops: Remove fb_draw.h includes
  fbdev: mach64_cursor: Remove fb_draw.h includes
  fbdev: Register sysfs groups through device_add_group
  fbdev: lcdcfb: Register sysfs groups through driver core
  mdacon: rework dependency list
  dummycon: fix default rows/cols
  dummycon: only build module if there are users
  fbdev: au1100fb: Move a variable assignment behind a null pointer check
  fbdev: pxafb: use devm_kmemdup*()
  fbcon: Use correct erase colour for clearing in fbcon
  fbdev: core: tileblit: Implement missing margin clearing for tileblit
parents eff5f16b 86d16cd1
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -9161,6 +9161,22 @@ S: Odd Fixes
T:	git https://gitlab.freedesktop.org/drm/misc/kernel.git
F:	drivers/video/fbdev/core/
FRAMEBUFFER DRAWING
M:	Zsolt Kajtar <soci@c64.rulez.org>
S:	Odd Fixes
F:	drivers/video/fbdev/core/cfbcopyarea.c
F:	drivers/video/fbdev/core/cfbfillrect.c
F:	drivers/video/fbdev/core/cfbimgblt.c
F:	drivers/video/fbdev/core/cfbmem.h
F:	drivers/video/fbdev/core/fb_copyarea.h
F:	drivers/video/fbdev/core/fb_draw.h
F:	drivers/video/fbdev/core/fb_fillrect.h
F:	drivers/video/fbdev/core/fb_imageblit.h
F:	drivers/video/fbdev/core/syscopyarea.c
F:	drivers/video/fbdev/core/sysfillrect.c
F:	drivers/video/fbdev/core/sysimgblt.c
F:	drivers/video/fbdev/core/sysmem.h
FRAMEBUFFER LAYER
M:	Helge Deller <deller@gmx.de>
L:	linux-fbdev@vger.kernel.org
+4 −5
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ config VGA_CONSOLE
	  Say Y.

config MDA_CONSOLE
	depends on !M68K && !PARISC && ISA
	depends on VGA_CONSOLE && ISA
	tristate "MDA text console (dual-headed)"
	help
	  Say Y here if you have an old MDA or monochrome Hercules graphics
@@ -47,12 +47,11 @@ config SGI_NEWPORT_CONSOLE
	  card of your Indy.  Most people say Y here.

config DUMMY_CONSOLE
	bool
	default y
	def_bool VT || VGA_CONSOLE || FRAMEBUFFER_CONSOLE

config DUMMY_CONSOLE_COLUMNS
	int "Initial number of console screen columns"
	depends on DUMMY_CONSOLE && !ARCH_FOOTBRIDGE
	depends on DUMMY_CONSOLE && !(ARCH_FOOTBRIDGE && VGA_CONSOLE)
	default 160 if PARISC
	default 80
	help
@@ -62,7 +61,7 @@ config DUMMY_CONSOLE_COLUMNS

config DUMMY_CONSOLE_ROWS
	int "Initial number of console screen rows"
	depends on DUMMY_CONSOLE && !ARCH_FOOTBRIDGE
	depends on DUMMY_CONSOLE && !(ARCH_FOOTBRIDGE && VGA_CONSOLE)
	default 64 if PARISC
	default 30 if ARM
	default 25
+6 −1
Original line number Diff line number Diff line
@@ -6,7 +6,6 @@
#include <linux/fb.h>
#include <linux/init.h>
#include <linux/string.h>
#include "../core/fb_draw.h"

#include <asm/io.h>

@@ -57,6 +56,12 @@
 * definitation and CUR_VERT_POSN must be saturated to zero.
 */

/* compose pixels based on mask */
static inline unsigned long comp(unsigned long set, unsigned long unset, unsigned long mask)
{
	return ((set ^ unset) & mask) ^ unset;
}

    /*
     *  Hardware Cursor support.
     */
+3 −1
Original line number Diff line number Diff line
@@ -137,13 +137,15 @@ static int au1100fb_fb_blank(int blank_mode, struct fb_info *fbi)
	 */
int au1100fb_setmode(struct au1100fb_device *fbdev)
{
	struct fb_info *info = &fbdev->info;
	struct fb_info *info;
	u32 words;
	int index;

	if (!fbdev)
		return -EINVAL;

	info = &fbdev->info;

	/* Update var-dependent FB info */
	if (panel_is_active(fbdev->panel) || panel_is_color(fbdev->panel)) {
		if (info->var.bits_per_pixel <= 8) {
+9 −1
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ config FB_CFB_REV_PIXELS_IN_BYTE
	bool
	depends on FB_CORE
	help
	  Allow generic frame-buffer functions to work on displays with 1, 2
	  Allow I/O memory 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.

@@ -97,6 +97,14 @@ config FB_SYS_IMAGEBLIT
	  blitting. This is used by drivers that don't provide their own
	  (accelerated) version and the framebuffer is in system RAM.

config FB_SYS_REV_PIXELS_IN_BYTE
	bool
	depends on FB_CORE
	help
	  Allow virtual memory 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_PROVIDE_GET_FB_UNMAPPED_AREA
	bool
	depends on FB
Loading