2019-05-19 20:07:45 +08:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
staging: add omapdrm DRM/KMS driver for TI OMAP platforms
A DRM display driver for TI OMAP platform. Similar to omapfb (fbdev)
and omap_vout (v4l2 display) drivers in the past, this driver uses the
DSS2 driver to access the display hardware, including support for
HDMI, DVI, and various types of LCD panels. And it implements GEM
support for buffer allocation (for KMS as well as offscreen buffers
used by the xf86-video-omap userspace xorg driver).
The driver maps CRTCs to overlays, encoders to overlay-managers, and
connectors to dssdev's. Note that this arrangement might change slightly
when support for drm_plane overlays is added.
For GEM support, non-scanout buffers are using the shmem backed pages
provided by GEM core (In drm_gem_object_init()). In the case of scanout
buffers, which need to be physically contiguous, those are allocated
with CMA and use drm_gem_private_object_init().
See userspace xorg driver:
git://github.com/robclark/xf86-video-omap.git
Refer to this link for CMA (Continuous Memory Allocator):
http://lkml.org/lkml/2011/8/19/302
Links to previous versions of the patch:
v1: http://lwn.net/Articles/458137/
v2: http://patches.linaro.org/4156/
v3: http://patches.linaro.org/4688/
v4: http://patches.linaro.org/4791/
History:
v5: move headers from include/drm at Greg KH's request, minor rebasing
on 3.2-rc1, pull in private copies of drm_gem_{get,put}_pages()
because "drm/gem: add functions to get/put pages" patch is not
merged yet
v4: bit of rework of encoder/connector _dpms() code, modeset_init()
rework to not use nested functions, update TODO.txt
v3: minor cleanups, improved error handling for dev_load(), some minor
API changes that will be needed later for tiled buffer support
v2: replace omap_vram with CMA for scanout buffer allocation, remove
unneeded functions, use dma_addr_t for physical addresses, error
handling cleanup, refactor attach/detach pages into common drm
functions, split non-userspace-facing API into omap_priv.h, remove
plugin API
v1: original
Signed-off-by: Rob Clark <rob@ti.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-13 02:09:40 +08:00
|
|
|
config DRM_OMAP
|
|
|
|
tristate "OMAP DRM"
|
2013-06-28 10:08:10 +08:00
|
|
|
depends on DRM
|
2012-10-29 16:31:12 +08:00
|
|
|
depends on ARCH_OMAP2PLUS || ARCH_MULTIPLATFORM
|
2016-04-28 20:42:49 +08:00
|
|
|
select OMAP2_DSS
|
staging: add omapdrm DRM/KMS driver for TI OMAP platforms
A DRM display driver for TI OMAP platform. Similar to omapfb (fbdev)
and omap_vout (v4l2 display) drivers in the past, this driver uses the
DSS2 driver to access the display hardware, including support for
HDMI, DVI, and various types of LCD panels. And it implements GEM
support for buffer allocation (for KMS as well as offscreen buffers
used by the xf86-video-omap userspace xorg driver).
The driver maps CRTCs to overlays, encoders to overlay-managers, and
connectors to dssdev's. Note that this arrangement might change slightly
when support for drm_plane overlays is added.
For GEM support, non-scanout buffers are using the shmem backed pages
provided by GEM core (In drm_gem_object_init()). In the case of scanout
buffers, which need to be physically contiguous, those are allocated
with CMA and use drm_gem_private_object_init().
See userspace xorg driver:
git://github.com/robclark/xf86-video-omap.git
Refer to this link for CMA (Continuous Memory Allocator):
http://lkml.org/lkml/2011/8/19/302
Links to previous versions of the patch:
v1: http://lwn.net/Articles/458137/
v2: http://patches.linaro.org/4156/
v3: http://patches.linaro.org/4688/
v4: http://patches.linaro.org/4791/
History:
v5: move headers from include/drm at Greg KH's request, minor rebasing
on 3.2-rc1, pull in private copies of drm_gem_{get,put}_pages()
because "drm/gem: add functions to get/put pages" patch is not
merged yet
v4: bit of rework of encoder/connector _dpms() code, modeset_init()
rework to not use nested functions, update TODO.txt
v3: minor cleanups, improved error handling for dev_load(), some minor
API changes that will be needed later for tiled buffer support
v2: replace omap_vram with CMA for scanout buffer allocation, remove
unneeded functions, use dma_addr_t for physical addresses, error
handling cleanup, refactor attach/detach pages into common drm
functions, split non-userspace-facing API into omap_priv.h, remove
plugin API
v1: original
Signed-off-by: Rob Clark <rob@ti.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-13 02:09:40 +08:00
|
|
|
select DRM_KMS_HELPER
|
2020-12-15 18:46:23 +08:00
|
|
|
select VIDEOMODE_HELPERS
|
|
|
|
select HDMI
|
staging: add omapdrm DRM/KMS driver for TI OMAP platforms
A DRM display driver for TI OMAP platform. Similar to omapfb (fbdev)
and omap_vout (v4l2 display) drivers in the past, this driver uses the
DSS2 driver to access the display hardware, including support for
HDMI, DVI, and various types of LCD panels. And it implements GEM
support for buffer allocation (for KMS as well as offscreen buffers
used by the xf86-video-omap userspace xorg driver).
The driver maps CRTCs to overlays, encoders to overlay-managers, and
connectors to dssdev's. Note that this arrangement might change slightly
when support for drm_plane overlays is added.
For GEM support, non-scanout buffers are using the shmem backed pages
provided by GEM core (In drm_gem_object_init()). In the case of scanout
buffers, which need to be physically contiguous, those are allocated
with CMA and use drm_gem_private_object_init().
See userspace xorg driver:
git://github.com/robclark/xf86-video-omap.git
Refer to this link for CMA (Continuous Memory Allocator):
http://lkml.org/lkml/2011/8/19/302
Links to previous versions of the patch:
v1: http://lwn.net/Articles/458137/
v2: http://patches.linaro.org/4156/
v3: http://patches.linaro.org/4688/
v4: http://patches.linaro.org/4791/
History:
v5: move headers from include/drm at Greg KH's request, minor rebasing
on 3.2-rc1, pull in private copies of drm_gem_{get,put}_pages()
because "drm/gem: add functions to get/put pages" patch is not
merged yet
v4: bit of rework of encoder/connector _dpms() code, modeset_init()
rework to not use nested functions, update TODO.txt
v3: minor cleanups, improved error handling for dev_load(), some minor
API changes that will be needed later for tiled buffer support
v2: replace omap_vram with CMA for scanout buffer allocation, remove
unneeded functions, use dma_addr_t for physical addresses, error
handling cleanup, refactor attach/detach pages into common drm
functions, split non-userspace-facing API into omap_priv.h, remove
plugin API
v1: original
Signed-off-by: Rob Clark <rob@ti.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-13 02:09:40 +08:00
|
|
|
default n
|
|
|
|
help
|
|
|
|
DRM display driver for OMAP2/3/4 based boards.
|
|
|
|
|
2015-12-10 03:36:24 +08:00
|
|
|
if DRM_OMAP
|
|
|
|
|
2020-12-15 18:46:23 +08:00
|
|
|
config OMAP2_DSS_DEBUG
|
|
|
|
bool "Debug support"
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
This enables printing of debug messages. Alternatively, debug messages
|
|
|
|
can also be enabled by setting CONFIG_DYNAMIC_DEBUG and then setting
|
|
|
|
appropriate flags in <debugfs>/dynamic_debug/control.
|
|
|
|
|
|
|
|
config OMAP2_DSS_DEBUGFS
|
|
|
|
bool "Debugfs filesystem support"
|
|
|
|
depends on DEBUG_FS
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
This enables debugfs for OMAPDSS at <debugfs>/omapdss. This enables
|
|
|
|
querying about clock configuration and register configuration of dss,
|
|
|
|
dispc, dsi, hdmi and rfbi.
|
|
|
|
|
|
|
|
config OMAP2_DSS_COLLECT_IRQ_STATS
|
|
|
|
bool "Collect DSS IRQ statistics"
|
|
|
|
depends on OMAP2_DSS_DEBUGFS
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
Collect DSS IRQ statistics, printable via debugfs.
|
|
|
|
|
|
|
|
The statistics can be found from
|
|
|
|
<debugfs>/omapdss/dispc_irq for DISPC interrupts, and
|
|
|
|
<debugfs>/omapdss/dsi_irq for DSI interrupts.
|
|
|
|
|
|
|
|
config OMAP2_DSS_DPI
|
|
|
|
bool "DPI support"
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
DPI Interface. This is the Parallel Display Interface.
|
|
|
|
|
|
|
|
config OMAP2_DSS_VENC
|
|
|
|
bool "VENC support"
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
OMAP Video Encoder support for S-Video and composite TV-out.
|
|
|
|
|
|
|
|
config OMAP2_DSS_HDMI_COMMON
|
|
|
|
bool
|
|
|
|
|
|
|
|
config OMAP4_DSS_HDMI
|
|
|
|
bool "HDMI support for OMAP4"
|
|
|
|
default y
|
|
|
|
select OMAP2_DSS_HDMI_COMMON
|
|
|
|
help
|
|
|
|
HDMI support for OMAP4 based SoCs.
|
|
|
|
|
|
|
|
config OMAP4_DSS_HDMI_CEC
|
|
|
|
bool "Enable HDMI CEC support for OMAP4"
|
|
|
|
depends on OMAP4_DSS_HDMI
|
|
|
|
select CEC_CORE
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
When selected the HDMI transmitter will support the CEC feature.
|
|
|
|
|
|
|
|
config OMAP5_DSS_HDMI
|
|
|
|
bool "HDMI support for OMAP5"
|
|
|
|
default n
|
|
|
|
select OMAP2_DSS_HDMI_COMMON
|
|
|
|
help
|
|
|
|
HDMI Interface for OMAP5 and similar cores. This adds the High
|
|
|
|
Definition Multimedia Interface. See http://www.hdmi.org/ for HDMI
|
|
|
|
specification.
|
|
|
|
|
|
|
|
config OMAP2_DSS_SDI
|
|
|
|
bool "SDI support"
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
SDI (Serial Display Interface) support.
|
|
|
|
|
|
|
|
SDI is a high speed one-way display serial bus between the host
|
|
|
|
processor and a display.
|
|
|
|
|
|
|
|
config OMAP2_DSS_DSI
|
|
|
|
bool "DSI support"
|
|
|
|
default n
|
|
|
|
select DRM_MIPI_DSI
|
|
|
|
help
|
|
|
|
MIPI DSI (Display Serial Interface) support.
|
|
|
|
|
|
|
|
DSI is a high speed half-duplex serial interface between the host
|
|
|
|
processor and a peripheral, such as a display or a framebuffer chip.
|
|
|
|
|
|
|
|
See http://www.mipi.org/ for DSI specifications.
|
|
|
|
|
|
|
|
config OMAP2_DSS_MIN_FCK_PER_PCK
|
|
|
|
int "Minimum FCK/PCK ratio (for scaling)"
|
|
|
|
range 0 32
|
|
|
|
default 0
|
|
|
|
help
|
|
|
|
This can be used to adjust the minimum FCK/PCK ratio.
|
|
|
|
|
|
|
|
With this you can make sure that DISPC FCK is at least
|
|
|
|
n x PCK. Video plane scaling requires higher FCK than
|
|
|
|
normally.
|
|
|
|
|
|
|
|
If this is set to 0, there's no extra constraint on the
|
|
|
|
DISPC FCK. However, the FCK will at minimum be
|
|
|
|
2xPCK (if active matrix) or 3xPCK (if passive matrix).
|
|
|
|
|
|
|
|
Max FCK is 173MHz, so this doesn't work if your PCK
|
|
|
|
is very high.
|
|
|
|
|
|
|
|
config OMAP2_DSS_SLEEP_AFTER_VENC_RESET
|
|
|
|
bool "Sleep 20ms after VENC reset"
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
There is a 20ms sleep after VENC reset which seemed to fix the
|
|
|
|
reset. The reason for the bug is unclear, and it's also unclear
|
|
|
|
on what platforms this happens.
|
|
|
|
|
|
|
|
This option enables the sleep, and is enabled by default. You can
|
|
|
|
disable the sleep if it doesn't cause problems on your platform.
|
2015-12-10 03:36:24 +08:00
|
|
|
|
|
|
|
endif
|