1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/staging/sm750fb
Thomas Zimmermann 0ba2fa8cbd fbdev: Add support for the nomodeset kernel parameter
Support the kernel's nomodeset parameter for all PCI-based fbdev
drivers that use aperture helpers to remove other, hardware-agnostic
graphics drivers.

The parameter is a simple way of using the firmware-provided scanout
buffer if the hardware's native driver is broken. The same effect
could be achieved with per-driver options, but the importance of the
graphics output for many users makes a single, unified approach
worthwhile.

With nomodeset specified, the fbdev driver module will not load. This
unifies behavior with similar DRM drivers. In DRM helpers, modules
first check the nomodeset parameter before registering the PCI
driver. As fbdev has no such module helpers, we have to modify each
driver individually.

The name 'nomodeset' is slightly misleading, but has been chosen for
historical reasons. Several drivers implemented it before it became a
general option for DRM. So keeping the existing name was preferred over
introducing a new one.

v2:
	* print a warning if a driver does not init (Helge)
	* wrap video_firmware_drivers_only() in helper

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221111133024.9897-3-tzimmermann@suse.de
2022-11-16 13:26:25 +01:00
..
ddk750.h staging: sm750fb: fix odd license text 2019-08-15 14:43:57 +02:00
ddk750_chip.c staging: sm750fb: Remove set but not used variable 'actual_mx_clk' 2019-10-08 14:52:56 +02:00
ddk750_chip.h staging: sm750fb: CHECK: Avoid CamelCase 2019-09-30 21:57:56 +02:00
ddk750_display.c staging: sm750fb: Fix lines over 80 characters 2019-10-15 18:45:11 +02:00
ddk750_display.h staging: sm750fb: Eliminate camel case 2019-03-20 07:50:35 +01:00
ddk750_dvi.c staging: sm750fb: fix camelCase function name 2022-06-06 07:56:09 +02:00
ddk750_dvi.h staging: sm750fb: fix naming style 2022-03-18 13:43:41 +01:00
ddk750_hwi2c.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ddk750_hwi2c.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ddk750_mode.c staging: sm750fb: Fix lines over 80 characters 2019-10-15 18:45:11 +02:00
ddk750_mode.h staging: sm750fb: Remove typedefs from enums 2018-02-16 15:41:27 +01:00
ddk750_power.c Staging/IIO patches for 4.15-rc1 2017-11-13 20:53:28 -08:00
ddk750_power.h staging: sm750fb: fix CamelCase function parameter 2022-06-20 10:01:21 +02:00
ddk750_reg.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ddk750_sii164.c staging: sm750fb: fix camelCase function name 2022-06-06 07:56:09 +02:00
ddk750_sii164.h staging: sm750fb: fix camelCase function name 2022-06-06 07:56:09 +02:00
ddk750_swi2c.c staging: sm750fb: fix odd license text 2019-08-15 14:43:57 +02:00
ddk750_swi2c.h staging: sm750fb: fix odd license text 2019-08-15 14:43:57 +02:00
Kconfig fbdev: Add support for the nomodeset kernel parameter 2022-11-16 13:26:25 +01:00
Makefile staging: sm750fb: Fix of long line in makefile variable 2020-03-19 15:11:35 +01:00
readme
sm750.c fbdev: Add support for the nomodeset kernel parameter 2022-11-16 13:26:25 +01:00
sm750.h staging: sm750fb: Rename vScreen to v_screen in lynxfb_crtc 2021-07-28 20:17:26 +02:00
sm750_accel.c staging: sm750fb: sm750_accel: Provide description for 'accel' and fix function naming 2021-05-10 11:19:25 +02:00
sm750_accel.h staging: sm750fb: align arguments with open parenthesis in file sm750_accel.h 2019-10-24 23:11:27 -04:00
sm750_cursor.c staging: sm750fb: Rename maxW to max_w in lynx_cursor 2021-07-27 15:25:17 +02:00
sm750_cursor.h staging: sm750fb: align arguments with open parenthesis in file sm750_cursor.h 2019-10-24 23:11:27 -04:00
sm750_hw.c staging: sm750fb: Call iounmap() to free mapped bus memory 2022-04-04 07:33:49 +02:00
TODO staging: sm750fb: add drm development branch details 2018-05-06 18:51:38 -07:00

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.