linux/drivers/staging/sm750fb
Vaibhav Gupta 408a68c5f6 staging: sm750fb: use generic power management
Drivers using legacy power management .suspen()/.resume() callbacks
have to manage PCI states and device's PM states themselves. They also
need to take care of standard configuration registers.

Switch to generic power management framework using a single
"struct dev_pm_ops" variable to take the unnecessary load from the driver.
This also avoids the need for the driver to directly call most of the PCI
helper functions and device power state control functions, as through
the generic framework PCI Core takes care of the necessary operations,
and drivers are required to do only device-specific jobs.

Signed-off-by: Vaibhav Gupta <vaibhavgupta40@gmail.com>
Link: https://lore.kernel.org/r/20200728123349.1331679-1-vaibhavgupta40@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-29 14:01:37 +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
ddk750_display.c staging: sm750fb: Fix lines over 80 characters 2019-10-15 18:45:11 +02:00
ddk750_display.h
ddk750_dvi.c
ddk750_dvi.h
ddk750_hwi2c.c
ddk750_hwi2c.h
ddk750_mode.c staging: sm750fb: Fix lines over 80 characters 2019-10-15 18:45:11 +02:00
ddk750_mode.h
ddk750_power.c
ddk750_power.h
ddk750_reg.h
ddk750_sii164.c staging: sm750fb: align arguments with open parenthesis in ddk750_sii164.c 2019-10-24 23:11:27 -04:00
ddk750_sii164.h staging: sm750fb: Fix lines over 80 characters 2019-10-15 18:45:11 +02:00
ddk750_swi2c.c
ddk750_swi2c.h
ddk750.h
Kconfig
Makefile staging: sm750fb: Fix of long line in makefile variable 2020-03-19 15:11:35 +01:00
readme
sm750_accel.c staging: sm750fb: Replace multiple spaces with tabs when it suits 2019-10-30 10:38:47 +01: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
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: Make function arguments alignment match open parenthesis 2020-04-16 12:33:03 +02:00
sm750.c staging: sm750fb: use generic power management 2020-07-29 14:01:37 +02:00
sm750.h staging: sm750fb: Add names to proc_setBLANK args 2020-05-29 12:35:59 +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.