You can found the patches here: git://git.linaro.org/people/benjamin.gaignard/kernel.git on branch: drm_kms_for_next Regards, Benjamin 2014-04-08 14:27 GMT+02:00 Rob Clark <robdclark@xxxxxxxxx>: > On Tue, Apr 8, 2014 at 8:19 AM, Benjamin Gaignard > <benjamin.gaignard@xxxxxxxxxx> wrote: >> This series of patches add the support of DRM/KMS drivers for STMicroelectronics >> chipsets stih416 and stih407. > > *finally* \o/ > > one small request.. got a git branch somewhere? This patchset is big > enough that it would be convenient for reviewing to be able to > git-fetch.. > > BR, > -R > >> Hardware is split in two main blocks: Compositor and TVout. Each of them >> includes specific hardware IPs and the display timing are controlled by a specific >> Video Timing Generator hardware IP (VTG). >> >> Compositor is made of the follow hardware IPs: >> - GDP (Generic Display Pipeline) which is an entry point for graphic (RGB) >> buffers >> - VDP (Video Diplay Pipeline) which is an entry point for video (YUV) buffers >> - HQVDP (High Quality Video Display Processor) that supports scaling, >> deinterlacing and some miscellaneous image quality improvements. >> It fetches the Video decoded buffers from memory, processes them and pushes >> them to the Compositor through a HW dedicated bus. >> - Mixer is responsible of mixing all the entries depending of their >> respective z-order and layout >> >> TVout is divided in 3 parts: >> - HDMI to generate HDMI signals, depending of chipset version HDMI phy can >> change. >> - HDA to generate signals for HD analog TV >> - VIP to control/switch data path coming from Compositor >> >> On stih416 compositor and Tvout are on different dies so a Video Trafic Advance >> inter-die Communication mechanism (VTAC) is needed. >> >> +---------------------------------------------+ +----------------------------------------+ >> | +-------------------------------+ +----+ | | +----+ +--------------------------+ | >> | | | | | | | | | | +---------+ +----+ | | >> | | +----+ +------+ | | | | | | | | | VIP |---->|HDMI| | | >> | | |GPD +------------->| | | | | | | | | | | | +----+ | | >> | | +----+ |Mixer |--|-->| | | | | |---|->| switcher| | | >> | | | | | | | | | | | | | | +----+ | | >> | | | | | | | | | | | | | |---->|HDA | | | >> | | +------+ | |VTAC|========>|VTAC| | +---------+ +----+ | | >> | | | | | | | | | | | | >> | | Compositor | | | | | | | | TVout | | >> | +-------------------------------+ | | | | | | +--------------------------+ | >> | ^ | | | | | | ^ | >> | | | | | | | | | | >> | +--------------+ | | | | | | +-------------+ | >> | | VTG (master) |----->| | | | | |----->| VTG (slave) | | >> | +--------------+ +----+ | | +----+ +-------------+ | >> |Digital die | | Analog Die| >> +---------------------------------------------+ +----------------------------------------+ >> >> On stih407 Compositor and Tvout are on the same die >> >> +-----------------------------------------------------------------+ >> | +-------------------------------+ +--------------------------+ | >> | | | | +---------+ +----+ | | >> | | +----+ +------+ | | | VIP |---->|HDMI| | | >> | | |GPD +------------->| | | | | | +----+ | | >> | | +----+ |Mixer |--|--|->| switcher| | | >> | | +----+ +-----+ | | | | | | +----+ | | >> | | |VDP +-->+HQVDP+--->| | | | | |---->|HDA | | | >> | | +----+ +-----+ +------+ | | +---------+ +----+ | | >> | | | | | | >> | | Compositor | | TVout | | >> | +-------------------------------+ +--------------------------+ | >> | ^ ^ | >> | | | | >> | +--------------+ | >> | | VTG | | >> | +--------------+ | >> |Digital die | >> +-----------------------------------------------------------------+ >> >> In addition of the drivers for the IPs listed before a thin I2C driver (hdmiddc) is used >> by HDMI driver to retrieve EDID for monitor. >> >> To unify interfaces of GDP and VDP we create a "layer" interface called by >> compositor to control both GPD and VDP. >> >> Hardware have memory contraints (alignment, contiguous) so we use CMA drm helpers functions >> to allocate frame buffer. >> >> File naming convention is: >> - sti_* for IPs drivers >> - sti_drm_* for drm functions implementation. >> >> Benjamin Gaignard (18): >> drm: sti: add bindings for DRM driver >> drm: sti: add VTG driver >> drm: sti: add VTAC drivers >> drm: sti: add HDMI driver >> drm: sti: add I2C client driver for HDMI >> drm: sti: add HDA driver >> drm: sti: add TVOut driver >> drm: sti: add sti layer interface definition >> drm: sti: add GDP layer >> drm: sti: add VID layer >> drm: sti: add Mixer >> drm: sti: add Compositor >> drm: sti: add debug to GDP >> drm: sti: add debug to VID >> drm: sti: add debug to TVout >> drm: sti: add debug to mixer >> drm: sti: Add DRM driver itself >> drm: sti: add HQVDP driver >> >> Vincent Abriou (1): >> drm: sti: rename mixer registers to be main/aux independent >> >> .../devicetree/bindings/gpu/st,stih4xx.txt | 177 ++++ >> drivers/gpu/drm/Kconfig | 2 + >> drivers/gpu/drm/Makefile | 1 + >> drivers/gpu/drm/sti/Kconfig | 26 + >> drivers/gpu/drm/sti/Makefile | 23 + >> drivers/gpu/drm/sti/sti_compositor.c | 189 ++++ >> drivers/gpu/drm/sti/sti_compositor.h | 84 ++ >> drivers/gpu/drm/sti/sti_ddc.c | 56 + >> drivers/gpu/drm/sti/sti_drm_connector.c | 195 ++++ >> drivers/gpu/drm/sti/sti_drm_connector.h | 16 + >> drivers/gpu/drm/sti/sti_drm_crtc.c | 440 ++++++++ >> drivers/gpu/drm/sti/sti_drm_crtc.h | 21 + >> drivers/gpu/drm/sti/sti_drm_drv.c | 484 +++++++++ >> drivers/gpu/drm/sti/sti_drm_drv.h | 48 + >> drivers/gpu/drm/sti/sti_drm_encoder.c | 201 ++++ >> drivers/gpu/drm/sti/sti_drm_encoder.h | 16 + >> drivers/gpu/drm/sti/sti_drm_plane.c | 195 ++++ >> drivers/gpu/drm/sti/sti_drm_plane.h | 16 + >> drivers/gpu/drm/sti/sti_gdp.c | 726 +++++++++++++ >> drivers/gpu/drm/sti/sti_gdp.h | 75 ++ >> drivers/gpu/drm/sti/sti_hda.c | 826 +++++++++++++++ >> drivers/gpu/drm/sti/sti_hda.h | 14 + >> drivers/gpu/drm/sti/sti_hdmi.c | 1045 +++++++++++++++++++ >> drivers/gpu/drm/sti/sti_hdmi.h | 198 ++++ >> drivers/gpu/drm/sti/sti_hdmi_tx3g0c55phy.c | 398 +++++++ >> drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c | 224 ++++ >> drivers/gpu/drm/sti/sti_hqvdp.c | 1089 ++++++++++++++++++++ >> drivers/gpu/drm/sti/sti_hqvdp.h | 55 + >> drivers/gpu/drm/sti/sti_hqvdp_lut.h | 373 +++++++ >> drivers/gpu/drm/sti/sti_layer.c | 324 ++++++ >> drivers/gpu/drm/sti/sti_layer.h | 116 +++ >> drivers/gpu/drm/sti/sti_mixer.c | 405 ++++++++ >> drivers/gpu/drm/sti/sti_mixer.h | 54 + >> drivers/gpu/drm/sti/sti_tvout.c | 863 ++++++++++++++++ >> drivers/gpu/drm/sti/sti_tvout.h | 105 ++ >> drivers/gpu/drm/sti/sti_vid.c | 259 +++++ >> drivers/gpu/drm/sti/sti_vid.h | 34 + >> drivers/gpu/drm/sti/sti_vtac_rx.c | 140 +++ >> drivers/gpu/drm/sti/sti_vtac_tx.c | 152 +++ >> drivers/gpu/drm/sti/sti_vtac_utils.h | 52 + >> drivers/gpu/drm/sti/sti_vtg.c | 438 ++++++++ >> drivers/gpu/drm/sti/sti_vtg.h | 20 + >> drivers/gpu/drm/sti/sti_vtg_utils.c | 99 ++ >> drivers/gpu/drm/sti/sti_vtg_utils.h | 29 + >> 44 files changed, 10303 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/gpu/st,stih4xx.txt >> create mode 100644 drivers/gpu/drm/sti/Kconfig >> create mode 100644 drivers/gpu/drm/sti/Makefile >> create mode 100644 drivers/gpu/drm/sti/sti_compositor.c >> create mode 100644 drivers/gpu/drm/sti/sti_compositor.h >> create mode 100644 drivers/gpu/drm/sti/sti_ddc.c >> create mode 100644 drivers/gpu/drm/sti/sti_drm_connector.c >> create mode 100644 drivers/gpu/drm/sti/sti_drm_connector.h >> create mode 100644 drivers/gpu/drm/sti/sti_drm_crtc.c >> create mode 100644 drivers/gpu/drm/sti/sti_drm_crtc.h >> create mode 100644 drivers/gpu/drm/sti/sti_drm_drv.c >> create mode 100644 drivers/gpu/drm/sti/sti_drm_drv.h >> create mode 100644 drivers/gpu/drm/sti/sti_drm_encoder.c >> create mode 100644 drivers/gpu/drm/sti/sti_drm_encoder.h >> create mode 100644 drivers/gpu/drm/sti/sti_drm_plane.c >> create mode 100644 drivers/gpu/drm/sti/sti_drm_plane.h >> create mode 100644 drivers/gpu/drm/sti/sti_gdp.c >> create mode 100644 drivers/gpu/drm/sti/sti_gdp.h >> create mode 100644 drivers/gpu/drm/sti/sti_hda.c >> create mode 100644 drivers/gpu/drm/sti/sti_hda.h >> create mode 100644 drivers/gpu/drm/sti/sti_hdmi.c >> create mode 100644 drivers/gpu/drm/sti/sti_hdmi.h >> create mode 100644 drivers/gpu/drm/sti/sti_hdmi_tx3g0c55phy.c >> create mode 100644 drivers/gpu/drm/sti/sti_hdmi_tx3g4c28phy.c >> create mode 100644 drivers/gpu/drm/sti/sti_hqvdp.c >> create mode 100644 drivers/gpu/drm/sti/sti_hqvdp.h >> create mode 100644 drivers/gpu/drm/sti/sti_hqvdp_lut.h >> create mode 100644 drivers/gpu/drm/sti/sti_layer.c >> create mode 100644 drivers/gpu/drm/sti/sti_layer.h >> create mode 100644 drivers/gpu/drm/sti/sti_mixer.c >> create mode 100644 drivers/gpu/drm/sti/sti_mixer.h >> create mode 100644 drivers/gpu/drm/sti/sti_tvout.c >> create mode 100644 drivers/gpu/drm/sti/sti_tvout.h >> create mode 100644 drivers/gpu/drm/sti/sti_vid.c >> create mode 100644 drivers/gpu/drm/sti/sti_vid.h >> create mode 100644 drivers/gpu/drm/sti/sti_vtac_rx.c >> create mode 100644 drivers/gpu/drm/sti/sti_vtac_tx.c >> create mode 100644 drivers/gpu/drm/sti/sti_vtac_utils.h >> create mode 100644 drivers/gpu/drm/sti/sti_vtg.c >> create mode 100644 drivers/gpu/drm/sti/sti_vtg.h >> create mode 100644 drivers/gpu/drm/sti/sti_vtg_utils.c >> create mode 100644 drivers/gpu/drm/sti/sti_vtg_utils.h >> >> -- >> 1.9.0 >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel@xxxxxxxxxxxxxxxxxxxxx >> http://lists.freedesktop.org/mailman/listinfo/dri-devel -- Benjamin Gaignard Graphic Working Group Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel