[PATCH v1 00/19] Add DRM for stih4xx platforms
Benjamin Gaignard
benjamin.gaignard at linaro.org
Mon Apr 28 04:53:37 PDT 2014
Dear maintainers/reviewers, just an UP to remind you that this
patcheset is waiting for your feedback.
Patches 1-12 and 18-19 mainly concern drivers for the various hardware IP.
Patches 13-16 add debug to those drivers.
Patches 17 is the DRM driver.
I know that review 10K lines isn't easy, takes times and is not fun,
but without your comments/remarks it will be difficult for me to
deliver you something with the expected level of quality.
Regards,
Benjamin
2014-04-08 16:14 GMT+02:00 Benjamin Gaignard <benjamin.gaignard at linaro.org>:
> 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 at gmail.com>:
>> On Tue, Apr 8, 2014 at 8:19 AM, Benjamin Gaignard
>> <benjamin.gaignard at linaro.org> 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 at lists.freedesktop.org
>>> 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
--
Benjamin Gaignard
Graphic Working Group
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
More information about the dri-devel
mailing list