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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel