Common Display Framework
Tomorrow's Linux Kernel Display Architecture Embedded Linux Conference Europe 2013 Edinburgh Laurent Pinchart laurent.pinchart@ideasonboard.comCommon Display Framework Tomorrow's Linux Kernel Display - - PowerPoint PPT Presentation
Common Display Framework Tomorrow's Linux Kernel Display - - PowerPoint PPT Presentation
Common Display Framework Tomorrow's Linux Kernel Display Architecture Embedded Linux Conference Europe 2013 Edinburgh Laurent Pinchart laurent.pinchart@ideasonboard.com a long long time ago source:
a long long time ago
display
(skip?)
Display – Scanout
Frame BufferDisplay – Composition
CRTC Plane(s) CompositionKMS
KMS – Device Model
Frame Buffer (memory) CRTC Encoder Connector Planes (memory) Encoder Connector ConnectorKMS – Device Model
Frame Buffer (memory) CRTC Encoder Connector Plane (memory) SoC Memory Off-Chip Encoder ConnectorKMS – Frame Buffer
CRTC Frame Buffer GEM Object(s) Memory- width
- height
- format
- pitches
- offsets
DRM/KMS – GEM Object
CRTC Frame Buffer GEM Object- width
- height
- bpp
- pitch
- size
DRM – Handles
Process A Local Handle GEM Object Process B Send FD SCM_RIGHTS Global FD 1 2 Global FD 4 Local Handle 3KMS – Modes (1/2)
sync back porch front porch active areaKMS – Modes (2/2)
sync back porch front porch active area hdisplay hsync_start htotal hsync_endKMS – Mode Setting
crtc fb Active Area x y mode.hdisplay m- d
KMS – Mode Setting
media controller
(skip?)
Media Controller – Model
Media Controller – Entity
Media Controller – Pads
Media entity 1 2 struct media_entity { ... u16 num_pads; struct media_pad *pads; ... }; struct media_pad { u16 index; unsigned long flags; };Media Controller – Links
struct media_entity { ... u16 num_links; struct media_link *links; ... }; struct media_entity_link { struct media_pad *source; struct media_pad *sink; unsigned long flags; }; Media entity 1 2 Media entityproblems
(round 1)
Problems – DT Bindings
Problems – Panel Drivers
source: http://en.wikipedia.org/wiki/File:Casio_LCD_screen_for_digital_camera.jpgProblems – Sharing
KMS FBDEV
Problems – MIPI DPI/DSI
source: http://en.wikipedia.org/wiki/File:RaspberryPi_Display_Serial_Interface.jpg(round 2)
Problems – Other Chips
bridges encoders transmitters ...
Problems – DT Bindings
Problems – Async Probing
(secret round)
Problems – Sharing
KMS FBDEV V4L
Problems – Sharing
KMS FBDEV V4L
Problems – Bonus Issues
Multiple control busses
Use Cases
(they're real)
Renesas – DU
Renesas – VSP1
Xilinx – FPGA
Sensor Proc HDMI Decoder Scaler DMA Scaler Composer ADV7511 ADV7511Xilinx – FPGA
Sensor Proc HDMI Decoder Scaler DMA Scaler Composer ADV7511CDF
[RFC 0/5] Generic panel framework
CDF – Integration
Display Controller Driver Control Bus API FBDEV DRM SPI/I2C Mem Map Panel Driver DT pdata DSI[RFC v2 0/5] Common Display Framework
CDF – Configuration Model
source: http://en.wikipedia.org/wiki/File:Russian-Matroshka2.jpgCDF – Configuration Model
DPI/LVDS DISPC Panel LVDS/DSI Panel Module Panel Controller TransmitterPositive Feedback
- [RFC PATCH 0/4] exynos-drm-hdmi driver to
- [RFC 0/6] Common Display Framework-T
- [RFC PATCH 0/4] Common Display Framework-
- [RFC 0/4] Use the Common Display Framework
- [RFC 00/10] Versatile Express CLCD DVI output
[RFC v3 00/19] Common Display Framework
CDF – Entity Model
CDF – Entity
CDF – Device Tree
hdmi_encoder { ports { #address-cells = <1>; #size-cells = <0>; port@0 { hdmi_input: endpoint@0 { remote = <&display_output>; }; }; port@1 { endpoint@0 { ... }; endpoint@1 { ... }; }; }; };Positive Feedback
- [RFC PATCH 0/4] CDFv3: MIPI DSI bus
[PATCH v2 0/2] drm: Add drm_bridge and PTN3460 bridge driver
[RFR 0/2] DRM display panel support
[RFC v4] TBD
CDF – Configuration Model
CDF – Streaming Control
CDF – Control Operations
CDF – Video Operations
Pushback
- dri-devel@listsfreedesktop.org
- linux-media@vger.kernel.org
- laurent.pinchart@ideasonboard.com
Contact
? !
Thenk ye.