linux/drivers/staging/sm750fb
Thomas Zimmermann dc0ad215e5 staging/sm750fb: Initialize fb_ops with fbdev macros
Initialize all instances of struct fb_ops with fbdev initializer
macros for framebuffers in I/O address space. Set the read/write,
draw and mmap callbacks to the correct implementation and avoid
implicit defaults. Also select the necessary helpers in Kconfig.

Fbdev drivers sometimes rely on the callbacks being NULL for a
default I/O-memory-based implementation to be invoked; hence
requiring the I/O helpers to be built in any case. Setting all
callbacks in all drivers explicitly will allow to make the I/O
helpers optional. This benefits systems that do not use these
functions.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Cc: Teddy Wang <teddy.wang@siliconmotion.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-staging@lists.linux.dev
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20231127131655.4020-27-tzimmermann@suse.de
2023-11-29 12:20:41 +01:00
..
ddk750_chip.c
ddk750_chip.h
ddk750_display.c
ddk750_display.h
ddk750_dvi.c staging: sm750fb: fix sii164InitChip function name 2023-08-22 15:47:43 +02:00
ddk750_dvi.h staging: sm750fb: fix naming style 2022-03-18 13:43:41 +01:00
ddk750_hwi2c.c
ddk750_hwi2c.h
ddk750_mode.c staging: sm750fb: Remove unused return variable in program_mode_registers() 2023-10-21 12:01:01 +02:00
ddk750_mode.h Staging: sm750fb: Rename ddk750_setModeTiming 2023-10-17 15:38:00 +02:00
ddk750_power.c
ddk750_power.h staging: sm750fb: fix CamelCase function parameter 2022-06-20 10:01:21 +02:00
ddk750_reg.h
ddk750_sii164.c staging: sm750fb: fix sii164InitChip function name 2023-08-22 15:47:43 +02:00
ddk750_sii164.h staging: sm750fb: fix sii164InitChip function name 2023-08-22 15:47:43 +02:00
ddk750_swi2c.c
ddk750_swi2c.h
ddk750.h
Kconfig staging: add HAS_IOPORT dependencies 2023-05-28 10:04:49 +01:00
Makefile
readme
sm750_accel.c staging/sm750fb: Do not include <linux/screen_info.h> 2023-07-08 20:26:40 +02:00
sm750_accel.h
sm750_cursor.c staging/sm750fb: Do not include <linux/screen_info.h> 2023-07-08 20:26:40 +02:00
sm750_cursor.h
sm750_hw.c Staging: sm750fb: Rename ddk750_setModeTiming 2023-10-17 15:38:00 +02:00
sm750.c staging/sm750fb: Initialize fb_ops with fbdev macros 2023-11-29 12:20:41 +01:00
sm750.h staging: sm750fb: Rename vScreen to v_screen in lynxfb_crtc 2021-07-28 20:17:26 +02:00
TODO

Introduction:
	SM750 of Silicon MOtion is pci express display controller device.
	The SM750 embedded graphics features include:
	- dual display
	- 2D acceleration
	- 16MB integrated video memory

About the kernel module parameter of driver:

	Use 1280,8bpp index color and 60 hz mode:
	insmod ./sm750fb.ko g_option="1280x1024-8@60"

	Disable MTRR,Disable 2d acceleration,Disable hardware cursor,
	and use a 800x600 mode :
	insmod ./sm750fb.ko g_option="noaccel:nomtrr:nohwc:800x600"

	dual frame buffer for driver with "dual" parameter
	insmod ./sm750fb.ko g_option="dual,800x600:1024x768"
	it will create fb0 and fb1 (or fb1,fb2 if fb0 already exist) under /dev
	and user can use con2fb to link fbX and ttyX

	Notes:
	1) if you build the driver with built-in method, the parameter
		you edited in the grub config file will be also the
		same format as above modular method,but additionally add
		"video=sm750fb:"
		ahead of parameters,so,it looks like:
		video=sm750fb:noaccel,1280x1024@60,otherparam,etc...
		it equal to modular method with below command:
		insmod ./sm750fb.ko g_option="noaccel:1280x1024@60:otherparm:etc..."

	2) if you put 800x600 into the parameter without bpp and
		refresh rate, kernel driver will defaulty use 16bpp and 60hz

Important:
	if you have vesafb enabled in your config then /dev/fb0 will be created by vesafb
	and this driver will use fb1, fb2. In that case, you need to configure your X-server
	to use fb1. Another simple althernative is to disable vesafb from your config.