[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