6.0 KiB
6.0 KiB
SerranoLTE display configuration
TODO: split in multiple files like: fb, gpu, display, 2D accel, 3D accel
Specs
Display is 540x960 so QHD resolution.
Kernel config
#
# Graphics support
#
CONFIG_ION=y
CONFIG_ION_MSM=y
CONFIG_MSM_KGSL=y
CONFIG_MSM_KGSL_2D=y
CONFIG_KGSL_PER_PROCESS_PAGE_TABLE=y
CONFIG_MSM_KGSL_PAGE_TABLE_SIZE=0xFFF0000
CONFIG_MSM_KGSL_PAGE_TABLE_COUNT=24
CONFIG_MSM_KGSL_MMU_PAGE_FAULT=y
CONFIG_FB=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_SYS_FILLRECT=y
CONFIG_FB_SYS_COPYAREA=y
CONFIG_FB_SYS_IMAGEBLIT=y
CONFIG_FB_SYS_FOPS=y
#
# Frame buffer hardware drivers
#
CONFIG_FB_VIRTUAL=y
CONFIG_MSM_VIDC=y
CONFIG_MSM_VIDC_1080P=y
CONFIG_MSM_VIDC_VENC=y
CONFIG_MSM_VIDC_VDEC=y
#
# Mhl(sii8240) device support
#
CONFIG_MHL_VERSION=0x20
CONFIG_FB_MSM=y
CONFIG_FB_MSM_LCDC_HW=y
CONFIG_FB_MSM_TRIPLE_BUFFER=y
CONFIG_FB_MSM_MDP_HW=y
CONFIG_FB_MSM_MDP40=y
CONFIG_FEATURE_FLIPLR=y
CONFIG_FB_MSM_MIPI_DSI=y
CONFIG_FB_MSM_OVERLAY=y
CONFIG_FB_MSM_DTV=y
CONFIG_FB_MSM_MIPI_DSI_SAMSUNG_OLED=y
CONFIG_FB_MSM_MIPI_SAMSUNG_OLED_VIDEO_QHD_PT=y
CONFIG_FB_MSM_NO_MDP_PIPE_CTRL=y
CONFIG_FB_MSM_OVERLAY0_WRITEBACK=y
CONFIG_FB_MSM_OVERLAY1_WRITEBACK=y
CONFIG_FB_MSM_WRITEBACK_MSM_PANEL=y
CONFIG_FB_MSM_MIPI_SAMSUNG_OLED_VIDEO_QHD_PT_PANEL=y
CONFIG_FB_MSM_EXT_INTERFACE_COMMON=y
CONFIG_FB_MSM_HDMI_COMMON=y
CONFIG_FB_MSM_HDMI_3D=y
CONFIG_FB_MSM_HDMI_MSM_PANEL=y
CONFIG_FB_MSM_TVOUT_NONE=y
CONFIG_FB_MSM_DEFAULT_DEPTH_RGBA8888=y
CONFIG_FB_MSM_CAMERA_CSC=y
CONFIG_MIPI_DSI_RESET_LP11=y
CONFIG_MDP_SHUTDOWN=y
CONFIG_MDNIE_LITE_TUNING=y
CONFIG_MIPI_SAMSUNG_OLED_VIDEO_QHD_MIPICLK_461=y
CONFIG_RUNTIME_MIPI_CLK_CHANGE=y
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=y
Virtual FrameBuffer
In drivers/video/Makefile
:
# the test framebuffer is last
obj-$(CONFIG_FB_VIRTUAL) += vfb.o
In drivers/video/Kconfig
:
Line 40:
menuconfig FB
tristate "Support for frame buffer devices"
---help---
The frame buffer device provides an abstraction for the graphics
hardware. It represents the frame buffer of some video hardware and
allows application software to access the graphics hardware through
a well-defined interface, so the software doesn't need to know
anything about the low-level (hardware register) stuff.
Frame buffer devices work identically across the different
architectures supported by Linux and make the implementation of
application programs easier and more portable; at this point, an X
server exists which uses the frame buffer device exclusively.
On several non-X86 architectures, the frame buffer device is the
only way to use the graphics hardware.
The device is accessed through special device nodes, usually located
in the /dev directory, i.e. /dev/fb*.
You need an utility program called fbset to make full use of frame
buffer devices. Please read <file:Documentation/fb/framebuffer.txt>
and the Framebuffer-HOWTO at
<http://www.munted.org.uk/programming/Framebuffer-HOWTO-1.3.html> for more
information.
Say Y here and to the driver for your graphics board below if you
are compiling a kernel for a non-x86 architecture.
If you are compiling for the x86 architecture, you can say Y if you
want to play with it, but it is not essential. Please note that
running graphical applications that directly touch the hardware
(e.g. an accelerated X server) and that are not frame buffer
device-aware may cause unexpected results. If unsure, say N.
Line 2246:
config FB_VIRTUAL
tristate "Virtual Frame Buffer support (ONLY FOR TESTING!)"
depends on FB
select FB_SYS_FILLRECT
select FB_SYS_COPYAREA
select FB_SYS_IMAGEBLIT
select FB_SYS_FOPS
---help---
This is a `virtual' frame buffer device. It operates on a chunk of
unswappable kernel memory instead of on the memory of a graphics
board. This means you cannot see any output sent to this frame
buffer device, while it does consume precious memory. The main use
of this frame buffer device is testing and debugging the frame
buffer subsystem. Do NOT enable it for normal systems! To protect
the innocent, it has to be enabled explicitly at boot time using the
kernel option `video=vfb:'.
To compile this driver as a module, choose M here: the
module will be called vfb. In order to load it, you must use
the vfb_enable=1 option.
If unsure, say N.
MSM FrameBuffer
In drivers/video/msm/Kconfig
config FB_MSM
tristate "MSM Framebuffer support"
depends on FB && ARCH_MSM
select FB_BACKLIGHT if FB_MSM_BACKLIGHT
select NEW_LEDS
select LEDS_CLASS
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
---help---
Support for MSM Framebuffer.
Video Core
In drivers/video/msm/vidc/Kconfig
:
#
# VIDEO CORE
#
menuconfig MSM_VIDC
bool "Video Core Driver"
depends on ARCH_MSM8X60 || ARCH_MSM7X30 || ARCH_MSM8960
default y
---help---
Say Y here to see options for video device drivers.
If you say N, all options in this submenu will be skipped and disabled.
config MSM_VIDC_720P
bool "720P Video Core"
depends on MSM_VIDC && ARCH_MSM7X30
default y
help
This option enables support for Video core.
config MSM_VIDC_1080P
bool "1080P Video Core"
depends on MSM_VIDC && (ARCH_MSM8X60 || ARCH_MSM8960)
default y
help
This option enables support for Video core.
config MSM_VIDC_VENC
tristate "Video encoder"
depends on MSM_VIDC
default y
help
This option enables support for Video encoder.
config MSM_VIDC_VDEC
tristate "Video decoder"
depends on MSM_VIDC
default y
help
This option enables support for Video decoder.
config MSM_VIDC_CONTENT_PROTECTION
bool "Enable Content Protection"
help
Enable content protection feature for Video.
WiFi Display Driver
In drivers/media/video/msm_wfd/Kconfig
:
menuconfig MSM_WFD
bool "Qualcomm MSM Wifi Display Driver"
depends on (MSM_VIDC_1080P || MSM_VIDC_V4L2)
---help---
Enables the Wifi Display driver.
Huh?!