linux/drivers/staging/sm750fb
Teddy Wang 740c433ec3 staging: sm750fb: avoid conflicting vesafb
If vesafb is enabled in the config then /dev/fb0 is created by vesa
and this sm750 driver gets fb1, fb2. But we need to be fb0 and fb1 to
effectively work with xorg.
So if it has been alloted fb1, then try to remove the other fb0.

In the previous send, why #ifdef is used was asked.
https://lkml.org/lkml/2017/6/25/57

Answered at: https://lkml.org/lkml/2017/6/25/69
Also pasting here for reference.

'Did a quick research into "why".
The patch d8801e4df9 ("x86/PCI: Set IORESOURCE_ROM_SHADOW only for the
default VGA device") has started setting IORESOURCE_ROM_SHADOW in flags
for a default VGA device and that is being done only for x86.
And so, we will need that #ifdef to check IORESOURCE_ROM_SHADOW as that
needs to be checked only for a x86 and not for other arch.'

Cc: <stable@vger.kernel.org> # v4.4+
Signed-off-by: Teddy Wang <teddy.wang@siliconmotion.com>
Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-18 08:53:45 +02:00
..
ddk750_chip.c staging: sm750fb: fixed a assignment typo 2017-07-16 09:13:53 +02:00
ddk750_chip.h staging: sm750fb: Add identifier to function definition argument. 2017-03-06 09:17:06 +01:00
ddk750_display.c staging: sm750fb: ddk750_display.c - fixed checkpatch warning: line over 80 chars 2017-04-08 17:00:51 +02:00
ddk750_display.h staging: sm750fb: function prototype argument should have an identifier name 2017-03-14 07:57:53 +08:00
ddk750_dvi.c staging: sm750fb: fix length of lines, function calls and declaration 2017-05-18 15:57:25 +02:00
ddk750_dvi.h staging: sm750fb: fix length of lines, function calls and declaration 2017-05-18 15:57:25 +02:00
ddk750_hwi2c.c staging: sm750fb: fix length of lines, function calls and declaration 2017-05-18 15:57:25 +02:00
ddk750_hwi2c.h
ddk750_mode.c staging: sm750fb: Remove typedef from "typedef struct _mode_parameter_t" 2017-03-23 14:23:19 +01:00
ddk750_mode.h staging: sm750fb: Remove typedef from "typedef enum _spolarity_t" 2017-03-23 14:23:19 +01:00
ddk750_power.c staging: sm750fb: Remove unnecessary blank lines. 2017-03-06 09:17:06 +01:00
ddk750_power.h staging: sm750fb: function prototype argument should have an identifier name 2017-03-14 07:57:53 +08:00
ddk750_reg.h staging: sm750fb: Remove unnecessary blank lines. 2017-03-06 09:17:06 +01:00
ddk750_sii164.c staging: sm750fb: fix length of lines, function calls and declaration 2017-05-18 15:57:25 +02:00
ddk750_sii164.h staging: sm750fb: fix length of lines, function calls and declaration 2017-05-18 15:57:25 +02:00
ddk750_swi2c.c staging: sm750fb: fix length of lines, function calls and declaration 2017-05-18 15:57:25 +02:00
ddk750_swi2c.h staging: sm750fb: fix length of lines, function calls and declaration 2017-05-18 15:57:25 +02:00
ddk750.h staging: sm750fb: restructure multi-line comments to follow CodingStyle 2016-10-25 10:56:17 +02:00
Kconfig
Makefile staging: sm750fb: Merge ddk750_help.* into ddk750_chip.*. 2016-10-16 10:26:18 +02:00
readme
sm750_accel.c staging: sm750fb: fix length of lines, function calls and declaration 2017-05-18 15:57:25 +02:00
sm750_accel.h staging: sm750fb: prefix global identifiers 2016-11-10 13:55:03 +01:00
sm750_cursor.c staging: sm750fb: fix length of lines, function calls and declaration 2017-05-18 15:57:25 +02:00
sm750_cursor.h staging: sm750fb: prefix global identifiers 2016-11-10 13:55:03 +01:00
sm750_hw.c staging: sm750fb: Remove typedef from "typedef struct _mode_parameter_t" 2017-03-23 14:23:19 +01:00
sm750.c staging: sm750fb: avoid conflicting vesafb 2017-07-18 08:53:45 +02:00
sm750.h staging: sm750fb - add parameter names 2017-06-25 16:31:21 +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.