Linux驱动基础: msm平台显示架构

MSM平台显示系统

Linux驱动基础: msm平台显示架构_第1张图片

如上如所示,高通平台(MSM8916)的整个显示系统驱动向上层提供以下两种接口:

  • FB Device : /dev/graphics/fb*
  • V4L2 Device : /dev/video*
  • 图上没有标明,但应该还有一个UI Render and complex composision的GPU部分 (/dev/kgsl-3d) ?? /dev/mediax 这个不知道做什么的

MDSS内核驱动的代码文件

 mdss_fb → Top-level IOCTL/native framebuffer interface
 mdss_mdp.c → MDP resources (clocks/irq/bus-bw/power)
 mdss_mdp_overlay → Overlay/DMA top-level API
 mdss_mdp_ctl → Controls the hardware abstraction to club the
(LM + DSPP + Ping-pong + Interface)
 mdss_mdp_pipe → SRC pipe related handling
 mdss_mdp_intf_cmd/mdss_mdp_intf_video/mdss_mdp_intf_writeback →
MDP panel interface related handling
 mdss_mdp_pp → Postprocessing related implementation
 mdss_mdp_rotator → Rotator APIs ( overlay_set/overlay_play interface)
 mdss_mdp_pp.c → Postprocessing related material

代码目录

用户层代码目录

 SurfaceTexture – \\frameworks\native\libs\gui
 SurfaceFlinger – frameworks\native\services\surfaceflinger
 Overlay HAL – \\hardware\qcom\display\liboverlay
 Graphics alloc – \\hardware\qcom\display\libgralloc
 Hardware composer – \\hardware\qcom\display\libhwcomposer

内核部分代码目录

MDSS driver – \\kernel\drivers\video\msm\mdss
 1)Source surface process
   mdss_mdp_overlay.c
   mdss_mdp_pipe.c2)Layer Mixer
   mdss_mdp_ctl.c3)Destination Surface Processor (DSP)
     mdss_mdp_intf_cmd.c
     mdss_mdp_intf_video.c
     mdss_mdp_intf_writeback.c
     mdss_mdp_rotator
 4)Display peripheral interface
     mdss_dsi.c
     mdss_dsi_host.c

通过FB驱动ioctl传递的命令

1)Support for standard IOCTLs of Android
 FBIOGET_VSCREENINFO – Gets variable information of framebuffer device
 FBIOPUT_VSCREENINFO – Gets variable information of framebuffer device
 FBIOBLANK – Turns on/off framebuffer device (display on/off)
 FBIOPAN_DISPLAY – Updates display/framebuffer device with new image
2)QTI added IOCTLs
 MSMFB_OVERLAY_GET – Gets overlay pipe/rotator information
 MSMFB_OVERLAY_SET – Sets parameters/allocating overlay pipe/rotator
 MSMFB_OVERLAY_UNSET – Closes pipe/rotator
 MSMFB_OVERLAY_PLAY_ENABLE – Controls overlay update
 MSMFB_OVERLAY_PLAY – Queues buffer to pipe
 MSMFB_OVERLAY_PLAY_WAIT – Waits for vsync
 MSMFB_CURSOR – Hardware cursor support
 MSMFB_SET_LUT – Gamma look up table setup for CABL
 MSMFB_HISTOGRAM – Reading histogram
 MSMFB_HISTOGRAM_START – Starting Histogram
 MSMFB_HISTOGRAM_STOP – Stopping Histogram
   MSMFB_DISPLAY_COMMIT - 

关键字:
DSI: Display Serial Interface
MDSS : Multimedia Display sub system

两种模式:
1.command mode
2.video mode

待续。。。

你可能感兴趣的:(Linux驱动基础: msm平台显示架构)