OpenCloudOS-Kernel/drivers/staging/sm750fb
Fabio M. De Francesco aaec586a3c staging: sm750fb: Call iounmap() to free mapped bus memory
If ioremap_wc() fails, the code jumps to the "exit" label and forgets to
free the bus memory mapped into "sm750_dev->pvReg". Mapped bus memory must
always be freed by calling iounmap().

Call iounmap(sm750_dev->pvReg) when the above-mentioned failures happen.

The site of the missing iounmap() has been detected by Smatch.

Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Link: https://lore.kernel.org/r/20220402175655.31512-1-fmdefrancesco@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-04-04 07:33:49 +02:00
..
Kconfig
Makefile staging: sm750fb: Fix of long line in makefile variable 2020-03-19 15:11:35 +01:00
TODO
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
ddk750_dvi.c staging: sm750fb: fix naming style 2022-03-18 13:43:41 +01: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: 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 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
readme
sm750.c staging: sm750fb: Rename vScreen to v_screen in lynxfb_crtc 2021-07-28 20:17:26 +02: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

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.