linux-stable/drivers/staging/sm750fb
Teddy Wang 85643f6f50 staging: sm750fb: avoid conflicting vesafb
commit 740c433ec3 upstream.

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.'

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-27 15:08:06 -07:00
..
Kconfig
Makefile
TODO
ddk750.h
ddk750_chip.c staging: sm750fb: replace roundedDiv with DIV_ROUND_CLOSEST 2016-10-02 16:52:46 +02:00
ddk750_chip.h
ddk750_display.c
ddk750_display.h staging: sm750fb: conform to block comment style 2016-10-02 16:51:56 +02:00
ddk750_dvi.c
ddk750_dvi.h
ddk750_help.c
ddk750_help.h
ddk750_hwi2c.c staging: sm750fb: conform to block comment style 2016-10-02 16:51:56 +02:00
ddk750_hwi2c.h
ddk750_mode.c staging: sm750fb: conform to block comment style 2016-10-02 16:51:56 +02:00
ddk750_mode.h
ddk750_power.c
ddk750_power.h
ddk750_reg.h staging: sm750fb: Fix bugs introduced by early commits 2016-11-07 10:27:40 +01:00
ddk750_sii164.c staging: sm750fb: conform to block comment style 2016-10-02 16:51:56 +02:00
ddk750_sii164.h
ddk750_swi2c.c staging: sm750fb: conform to block comment style 2016-10-02 16:51:56 +02:00
ddk750_swi2c.h
readme
sm750.c staging: sm750fb: avoid conflicting vesafb 2017-07-27 15:08:06 -07:00
sm750.h staging: sm750fb: conform to block comment style 2016-10-02 16:51:56 +02:00
sm750_accel.c staging: sm750fb: conform to block comment style 2016-10-02 16:51:56 +02:00
sm750_accel.h
sm750_cursor.c
sm750_cursor.h
sm750_hw.c

readme

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.