mbox series

[v5,0/5] drm/tidss: New driver for TI Keystone platform Display SubSystem

Message ID cover.1576857145.git.jsarha@ti.com
Headers show
Series drm/tidss: New driver for TI Keystone platform Display SubSystem | expand

Message

Jyri Sarha Dec. 20, 2019, 3:55 p.m. UTC
Changes since v4:
- itemize named resource property descriptions in dt binding
- fix wp to wb in the ti,j721e-dss reg property description
- remove fifo underflow irq handling, it is not an error and
  it should be used for debug purposes only
- memory tuning, prefetch plane fifo up to high-threshold value to
  minimize possibility of underflows.

Changes since v3:
- Add descriptions some yaml binding properites
- Remove redundant minItems directives from yaml bindings
- Remove ports node from ti,k2g-dss yaml binding
- no change to MAINTAINERS or to the driver code

Changes since v2:
- Add version history to commit messages
- Fix yaml bindings now that got dt_binding_check dtbs_check working propery
- Move tidss entry in MAINTAINERS after omapdrm and add "T: git
  git://anongit.freedesktop.org/drm/drm-misc"
- no change to driver code

Changes since the first version of the patch series [2]:
- "drm/tidss: New driver for TI Keystone platform Display SubSystem"
 - rebased on top of drm-next-2019-11-27
 - sort all include lines in all files
 - remove all include <drm/drmP.h>
 - remove select "select VIDEOMODE_HELPERS"
 - call dispc_vp_setup() later in tidss_crtc_atomic_flush() (there is no
   to call it in new modeset case as it is also called in vp_enable())
 - change probe sequence and drm_device allocation (follow example in drm_drv.c)
 - use __maybe_unused instead of #ifdef for pm functions
 - remove "struct drm_fbdev_cma *fbdev;" from driver data
 - check panel connector type before connecting it
- No change to binding or MAINTAINERS patches

There was couple of attempts upstream an earlier version of this
driver about a year ago [1]. Back then I needed to stop my efforts to
implement support for next Keystone DSS version, so now the driver
supports three different Keystone DSS version on three different SoCs.

I am starting the patch series versioning from the beginning because it
has been over a year since the previous patch set and the structure of
the driver has evolved quite a bit. However, all the earlier comments
should be addressed in this series.

[1] https://patchwork.freedesktop.org/series/44947/
[2] https://lists.freedesktop.org/archives/dri-devel/2019-November/246542.html

Jyri Sarha (5):
  dt-bindings: display: ti,k2g-dss: Add dt-schema yaml binding
  dt-bindings: display: ti,am65x-dss: Add dt-schema yaml binding
  dt-bindings: display: ti,j721e-dss: Add dt-schema yaml binding
  drm/tidss: New driver for TI Keystone platform Display SubSystem
  MAINTAINERS: add entry for tidss

 .../bindings/display/ti/ti,am65x-dss.yaml     |  152 +
 .../bindings/display/ti/ti,j721e-dss.yaml     |  208 ++
 .../bindings/display/ti/ti,k2g-dss.yaml       |  109 +
 MAINTAINERS                                   |   11 +
 drivers/gpu/drm/Kconfig                       |    2 +
 drivers/gpu/drm/Makefile                      |    1 +
 drivers/gpu/drm/tidss/Kconfig                 |   14 +
 drivers/gpu/drm/tidss/Makefile                |   12 +
 drivers/gpu/drm/tidss/tidss_crtc.c            |  376 +++
 drivers/gpu/drm/tidss/tidss_crtc.h            |   46 +
 drivers/gpu/drm/tidss/tidss_dispc.c           | 2647 +++++++++++++++++
 drivers/gpu/drm/tidss/tidss_dispc.h           |  132 +
 drivers/gpu/drm/tidss/tidss_dispc_regs.h      |  243 ++
 drivers/gpu/drm/tidss/tidss_drv.c             |  285 ++
 drivers/gpu/drm/tidss/tidss_drv.h             |   39 +
 drivers/gpu/drm/tidss/tidss_encoder.c         |   88 +
 drivers/gpu/drm/tidss/tidss_encoder.h         |   17 +
 drivers/gpu/drm/tidss/tidss_irq.c             |  146 +
 drivers/gpu/drm/tidss/tidss_irq.h             |   72 +
 drivers/gpu/drm/tidss/tidss_kms.c             |  248 ++
 drivers/gpu/drm/tidss/tidss_kms.h             |   15 +
 drivers/gpu/drm/tidss/tidss_plane.c           |  217 ++
 drivers/gpu/drm/tidss/tidss_plane.h           |   25 +
 drivers/gpu/drm/tidss/tidss_scale_coefs.c     |  202 ++
 drivers/gpu/drm/tidss/tidss_scale_coefs.h     |   22 +
 25 files changed, 5329 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
 create mode 100644 Documentation/devicetree/bindings/display/ti/ti,j721e-dss.yaml
 create mode 100644 Documentation/devicetree/bindings/display/ti/ti,k2g-dss.yaml
 create mode 100644 drivers/gpu/drm/tidss/Kconfig
 create mode 100644 drivers/gpu/drm/tidss/Makefile
 create mode 100644 drivers/gpu/drm/tidss/tidss_crtc.c
 create mode 100644 drivers/gpu/drm/tidss/tidss_crtc.h
 create mode 100644 drivers/gpu/drm/tidss/tidss_dispc.c
 create mode 100644 drivers/gpu/drm/tidss/tidss_dispc.h
 create mode 100644 drivers/gpu/drm/tidss/tidss_dispc_regs.h
 create mode 100644 drivers/gpu/drm/tidss/tidss_drv.c
 create mode 100644 drivers/gpu/drm/tidss/tidss_drv.h
 create mode 100644 drivers/gpu/drm/tidss/tidss_encoder.c
 create mode 100644 drivers/gpu/drm/tidss/tidss_encoder.h
 create mode 100644 drivers/gpu/drm/tidss/tidss_irq.c
 create mode 100644 drivers/gpu/drm/tidss/tidss_irq.h
 create mode 100644 drivers/gpu/drm/tidss/tidss_kms.c
 create mode 100644 drivers/gpu/drm/tidss/tidss_kms.h
 create mode 100644 drivers/gpu/drm/tidss/tidss_plane.c
 create mode 100644 drivers/gpu/drm/tidss/tidss_plane.h
 create mode 100644 drivers/gpu/drm/tidss/tidss_scale_coefs.c
 create mode 100644 drivers/gpu/drm/tidss/tidss_scale_coefs.h

-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Comments

Benoit Parrot Jan. 13, 2020, 10:05 p.m. UTC | #1
Jyri Sarha <jsarha@ti.com> wrote on Fri [2019-Dec-20 17:55:11 +0200]:
> Add dt-schema yaml bindig for J721E DSS, J721E version TI Keystone

> Display SubSystem.

> 

> Version history:

> 

> v2: no change

> 

> v3: - reg-names: "wp" -> "wb"

>     - Add ports node

>     - Add includes to dts example

>     - reindent dts example

> 

> v4: - Add descriptions to reg, clocks, and interrups properties

>     - Remove minItems when its value is the same as maxItems value

> 

> v5: - itemize reg, clocks and interrupts properties' descriptions

>     - there is no "vp" reg-name, only "wb" for write back

> 

> Signed-off-by: Jyri Sarha <jsarha@ti.com>


Reviewed-by: Benoit Parrot <bparrot@ti.com>

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Benoit Parrot Jan. 13, 2020, 10:06 p.m. UTC | #2
Jyri Sarha <jsarha@ti.com> wrote on Fri [2019-Dec-20 17:55:12 +0200]:
> This patch adds a new DRM driver for Texas Instruments DSS IPs used on

> Texas Instruments Keystone K2G, AM65x, and J721e SoCs. The new DSS IP is

> a major change to the older DSS IP versions, which are supported by

> the omapdrm driver. While on higher level the Keystone DSS resembles

> the older DSS versions, the registers are completely different and the

> internal pipelines differ a lot.

> 

> DSS IP found on K2G is an "ultra-light" version, and has only a single

> plane and a single output. The Keystone 3 DSS IPs are found on AM65x

> and J721E SoCs. AM65x DSS has two video ports, one full video plane,

> and another "lite" plane without scaling support. J721E has 4 video

> ports, 2 video planes and 2 lite planes. AM65x DSS has also integrated

> OLDI (LVDS) output.

> 

> Version history:

> 

> v2: - rebased on top of drm-next-2019-11-27

>     - sort all include lines in all files

>     - remove all include <drm/drmP.h>

>     - remove select "select VIDEOMODE_HELPERS"

>     - call dispc_vp_setup() later in tidss_crtc_atomic_flush() (there is no

>       to call it in new modeset case as it is also called in vp_enable())

>     - change probe sequence and drm_device allocation (follow example in

>       drm_drv.c)

>     - use __maybe_unused instead of #ifdef for pm functions

>     - remove "struct drm_fbdev_cma *fbdev;" from driver data

>     - check panel connector type before connecting it

> 

> v3: no change

> 

> v4: no change

> 

> v5: - remove fifo underflow irq handling, it is not an error and

>       it should be used for debug purposes only

>     - memory tuning, prefetch plane fifo up to high-threshold value to

>       minimize possibility of underflows.

> 

> Co-developed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

> Signed-off-by: Jyri Sarha <jsarha@ti.com>


Reviewed-by: Benoit Parrot <bparrot@ti.com>


_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel