linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem
@ 2020-07-09 16:47 Laurentiu Palcu
  2020-07-09 16:47 ` [PATCH v5 3/5] drm/imx/dcss: add component framework functionality Laurentiu Palcu
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Laurentiu Palcu @ 2020-07-09 16:47 UTC (permalink / raw)
  To: Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
	Laurentiu Palcu, dri-devel, linux-arm-kernel
  Cc: devicetree, agx, lukas, linux-kernel, laurentiu.palcu, l.stach

From: Laurentiu Palcu <laurentiu.palcu@nxp.com>

Hi,

This patchset adds initial DCSS support for iMX8MQ chip. Initial support
includes only graphics plane support (no video planes), no HDR10 capabilities,
no graphics decompression (only linear, tiled and super-tiled buffers allowed).

Support for the rest of the features will be added incrementally, in subsequent
patches.

The patchset was tested with both HDP driver (in the downstream tree) and the upstream
MIPI-DSI driver (with a couple of patches on top, to make it work correctly with DCSS).

Thanks,
Laurentiu

Changes in v5:
 * Rebased to latest;
 * Took out component framework support and made it a separate patch so
   that people can still test with HDP driver, which makes use of it.
   But the idea is to get rid of it once HDP driver's next versions
   will remove component framework as well;
 * Slight improvement to modesetting: avoid cutting off the pixel clock
   if the new mode and the old one are equal. Also, in this case, is
   not necessary to wait for DTG to shut off. This would allow to switch
   from 8b RGB to 12b YUV422, for example, with no interruptions (at least
   from DCSS point of view);
 * Do not fire off CTXLD when going to suspend, unless it still has
   entries that need to be committed to DCSS;
 * Addressed Rob's comments on bindings;

Changes in v4:
 * Addressed Lucas and Philipp's comments:
   * Added DRM_KMS_CMA_HELPER dependency in Kconfig;
   * Removed usage of devm_ functions since I'm already doing all the
     clean-up in the submodules_deinit();
   * Moved the drm_crtc_arm_vblank_event() in dcss_crtc_atomic_flush();
   * Removed en_completion variable from dcss_crtc since this was
     introduced mainly to avoid vblank timeout warnings which were fixed
     by arming the vblank event in flush() instead of begin();
   * Removed clks_on and irq_enabled flags since all the calls to
     enabling/disabling clocks and interrupts were balanced;
   * Removed the custom atomic_commit callback and used the DRM core
     helper and, in the process, got rid of a workqueue that wasn't
     necessary anymore;
   * Fixed some minor DT binding issues flagged by Philipp;
   * Some other minor changes suggested by Lucas;
 * Removed YUV formats from the supported formats as these cannot work
   without the HDR10 module CSCs and LUTs. Will add them back when I
   will add support for video planes;

Changes in v3:
 * rebased to latest linux-next and made it compile as drmP.h was
   removed;
 * removed the patch adding the VIDEO2_PLL clock. It's already applied;
 * removed an unnecessary 50ms sleep in the dcss_dtg_sync_set();
 * fixed a a spurious hang reported by Lukas Hartmann and encountered
   by me several times;
 * mask DPR and DTG interrupts by default, as they may come enabled from
   U-boot;

Changes in v2:
 * Removed '0x' in node's unit-address both in DT and yaml;
 * Made the address region size lowercase, to be consistent;
 * Removed some left-over references to P010;
 * Added a Kconfig dependency of DRM && ARCH_MXC. This will also silence compilation
   issues reported by kbuild for other architectures;

Laurentiu Palcu (5):
  drm/imx: compile imx directory by default
  drm/imx: Add initial support for DCSS on iMX8MQ
  drm/imx/dcss: add component framework functionality
  dt-bindings: display: imx: add bindings for DCSS
  arm64: dts: imx8mq: add DCSS node

 .../bindings/display/imx/nxp,imx8mq-dcss.yaml |  84 ++
 arch/arm64/boot/dts/freescale/imx8mq.dtsi     |  23 +
 drivers/gpu/drm/Makefile                      |   2 +-
 drivers/gpu/drm/imx/Kconfig                   |   2 +
 drivers/gpu/drm/imx/Makefile                  |   1 +
 drivers/gpu/drm/imx/dcss/Kconfig              |   9 +
 drivers/gpu/drm/imx/dcss/Makefile             |   6 +
 drivers/gpu/drm/imx/dcss/dcss-blkctl.c        |  70 ++
 drivers/gpu/drm/imx/dcss/dcss-crtc.c          | 219 +++++
 drivers/gpu/drm/imx/dcss/dcss-ctxld.c         | 424 +++++++++
 drivers/gpu/drm/imx/dcss/dcss-dev.c           | 314 +++++++
 drivers/gpu/drm/imx/dcss/dcss-dev.h           | 177 ++++
 drivers/gpu/drm/imx/dcss/dcss-dpr.c           | 562 ++++++++++++
 drivers/gpu/drm/imx/dcss/dcss-drv.c           | 183 ++++
 drivers/gpu/drm/imx/dcss/dcss-dtg.c           | 409 +++++++++
 drivers/gpu/drm/imx/dcss/dcss-kms.c           | 185 ++++
 drivers/gpu/drm/imx/dcss/dcss-kms.h           |  43 +
 drivers/gpu/drm/imx/dcss/dcss-plane.c         | 405 +++++++++
 drivers/gpu/drm/imx/dcss/dcss-scaler.c        | 826 ++++++++++++++++++
 drivers/gpu/drm/imx/dcss/dcss-ss.c            | 180 ++++
 20 files changed, 4123 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
 create mode 100644 drivers/gpu/drm/imx/dcss/Kconfig
 create mode 100644 drivers/gpu/drm/imx/dcss/Makefile
 create mode 100644 drivers/gpu/drm/imx/dcss/dcss-blkctl.c
 create mode 100644 drivers/gpu/drm/imx/dcss/dcss-crtc.c
 create mode 100644 drivers/gpu/drm/imx/dcss/dcss-ctxld.c
 create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dev.c
 create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dev.h
 create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dpr.c
 create mode 100644 drivers/gpu/drm/imx/dcss/dcss-drv.c
 create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dtg.c
 create mode 100644 drivers/gpu/drm/imx/dcss/dcss-kms.c
 create mode 100644 drivers/gpu/drm/imx/dcss/dcss-kms.h
 create mode 100644 drivers/gpu/drm/imx/dcss/dcss-plane.c
 create mode 100644 drivers/gpu/drm/imx/dcss/dcss-scaler.c
 create mode 100644 drivers/gpu/drm/imx/dcss/dcss-ss.c

-- 
2.23.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH v5 3/5] drm/imx/dcss: add component framework functionality
  2020-07-09 16:47 [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem Laurentiu Palcu
@ 2020-07-09 16:47 ` Laurentiu Palcu
  2020-07-09 16:47 ` [PATCH v5 4/5] dt-bindings: display: imx: add bindings for DCSS Laurentiu Palcu
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 12+ messages in thread
From: Laurentiu Palcu @ 2020-07-09 16:47 UTC (permalink / raw)
  To: Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team
  Cc: agx, lukas, linux-kernel, dri-devel, laurentiu.palcu,
	linux-arm-kernel, l.stach

From: Laurentiu Palcu <laurentiu.palcu@nxp.com>

Component framework is needed by HDP driver.

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
---
 drivers/gpu/drm/imx/dcss/dcss-drv.c | 89 ++++++++++++++++++++++-------
 drivers/gpu/drm/imx/dcss/dcss-kms.c | 14 ++++-
 drivers/gpu/drm/imx/dcss/dcss-kms.h |  4 +-
 3 files changed, 80 insertions(+), 27 deletions(-)

diff --git a/drivers/gpu/drm/imx/dcss/dcss-drv.c b/drivers/gpu/drm/imx/dcss/dcss-drv.c
index 8dc2f85c514b..09d0ac28e28a 100644
--- a/drivers/gpu/drm/imx/dcss/dcss-drv.c
+++ b/drivers/gpu/drm/imx/dcss/dcss-drv.c
@@ -6,6 +6,7 @@
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/platform_device.h>
+#include <linux/component.h>
 #include <drm/drm_of.h>
 
 #include "dcss-dev.h"
@@ -14,6 +15,8 @@
 struct dcss_drv {
 	struct dcss_dev *dcss;
 	struct dcss_kms_dev *kms;
+
+	bool is_componentized;
 };
 
 struct dcss_dev *dcss_drv_dev_to_dcss(struct device *dev)
@@ -30,30 +33,18 @@ struct drm_device *dcss_drv_dev_to_drm(struct device *dev)
 	return mdrv ? &mdrv->kms->base : NULL;
 }
 
-static int dcss_drv_platform_probe(struct platform_device *pdev)
+static int dcss_drv_init(struct device *dev, bool componentized)
 {
-	struct device *dev = &pdev->dev;
-	struct device_node *remote;
 	struct dcss_drv *mdrv;
 	int err = 0;
-	bool hdmi_output = true;
-
-	if (!dev->of_node)
-		return -ENODEV;
-
-	remote = of_graph_get_remote_node(dev->of_node, 0, 0);
-	if (!remote)
-		return -ENODEV;
-
-	hdmi_output = !of_device_is_compatible(remote, "fsl,imx8mq-nwl-dsi");
-
-	of_node_put(remote);
 
 	mdrv = kzalloc(sizeof(*mdrv), GFP_KERNEL);
 	if (!mdrv)
 		return -ENOMEM;
 
-	mdrv->dcss = dcss_dev_create(dev, hdmi_output);
+	mdrv->is_componentized = componentized;
+
+	mdrv->dcss = dcss_dev_create(dev, componentized);
 	if (IS_ERR(mdrv->dcss)) {
 		err = PTR_ERR(mdrv->dcss);
 		goto err;
@@ -61,7 +52,7 @@ static int dcss_drv_platform_probe(struct platform_device *pdev)
 
 	dev_set_drvdata(dev, mdrv);
 
-	mdrv->kms = dcss_kms_attach(mdrv->dcss);
+	mdrv->kms = dcss_kms_attach(mdrv->dcss, componentized);
 	if (IS_ERR(mdrv->kms)) {
 		err = PTR_ERR(mdrv->kms);
 		goto dcss_shutoff;
@@ -79,19 +70,73 @@ static int dcss_drv_platform_probe(struct platform_device *pdev)
 	return err;
 }
 
-static int dcss_drv_platform_remove(struct platform_device *pdev)
+static void dcss_drv_deinit(struct device *dev, bool componentized)
 {
-	struct dcss_drv *mdrv = dev_get_drvdata(&pdev->dev);
+	struct dcss_drv *mdrv = dev_get_drvdata(dev);
 
 	if (!mdrv)
-		return 0;
+		return;
 
-	dcss_kms_detach(mdrv->kms);
+	dcss_kms_detach(mdrv->kms, componentized);
 	dcss_dev_destroy(mdrv->dcss);
 
-	dev_set_drvdata(&pdev->dev, NULL);
+	dev_set_drvdata(dev, NULL);
 
 	kfree(mdrv);
+}
+
+static int dcss_drv_bind(struct device *dev)
+{
+	return dcss_drv_init(dev, true);
+}
+
+static void dcss_drv_unbind(struct device *dev)
+{
+	return dcss_drv_deinit(dev, true);
+}
+
+static const struct component_master_ops dcss_master_ops = {
+	.bind	= dcss_drv_bind,
+	.unbind	= dcss_drv_unbind,
+};
+
+static int compare_of(struct device *dev, void *data)
+{
+	return dev->of_node == data;
+}
+
+static int dcss_drv_platform_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct component_match *match = NULL;
+	struct device_node *remote;
+
+	if (!dev->of_node)
+		return -ENODEV;
+
+	remote = of_graph_get_remote_node(dev->of_node, 0, 0);
+	if (!remote)
+		return -ENODEV;
+
+	if (of_device_is_compatible(remote, "fsl,imx8mq-nwl-dsi")) {
+		of_node_put(remote);
+		return dcss_drv_init(dev, false);
+	}
+
+	drm_of_component_match_add(dev, &match, compare_of, remote);
+	of_node_put(remote);
+
+	return component_master_add_with_match(dev, &dcss_master_ops, match);
+}
+
+static int dcss_drv_platform_remove(struct platform_device *pdev)
+{
+	struct dcss_drv *mdrv = dev_get_drvdata(&pdev->dev);
+
+	if (mdrv->is_componentized)
+		component_master_del(&pdev->dev, &dcss_master_ops);
+	else
+		dcss_drv_deinit(&pdev->dev, false);
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/imx/dcss/dcss-kms.c b/drivers/gpu/drm/imx/dcss/dcss-kms.c
index 3ca49d0a3e61..bb009f3a878f 100644
--- a/drivers/gpu/drm/imx/dcss/dcss-kms.c
+++ b/drivers/gpu/drm/imx/dcss/dcss-kms.c
@@ -12,6 +12,7 @@
 #include <drm/drm_of.h>
 #include <drm/drm_probe_helper.h>
 #include <drm/drm_vblank.h>
+#include <linux/component.h>
 
 #include "dcss-dev.h"
 #include "dcss-kms.h"
@@ -106,7 +107,7 @@ static int dcss_kms_setup_encoder(struct dcss_kms_dev *kms)
 	return drm_bridge_attach(encoder, bridge, NULL, 0);
 }
 
-struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss)
+struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss, bool componentized)
 {
 	struct dcss_kms_dev *kms;
 	struct drm_device *drm;
@@ -135,7 +136,11 @@ struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss)
 	if (ret)
 		goto cleanup_mode_config;
 
-	ret = dcss_kms_setup_encoder(kms);
+	if (componentized)
+		ret = component_bind_all(dcss->dev, kms);
+	else
+		ret = dcss_kms_setup_encoder(kms);
+
 	if (ret)
 		goto cleanup_crtc;
 
@@ -162,9 +167,10 @@ struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss)
 	return ERR_PTR(ret);
 }
 
-void dcss_kms_detach(struct dcss_kms_dev *kms)
+void dcss_kms_detach(struct dcss_kms_dev *kms, bool componentized)
 {
 	struct drm_device *drm = &kms->base;
+	struct dcss_dev *dcss = drm->dev_private;
 
 	drm_dev_unregister(drm);
 	drm_kms_helper_poll_fini(drm);
@@ -173,5 +179,7 @@ void dcss_kms_detach(struct dcss_kms_dev *kms)
 	drm->irq_enabled = false;
 	drm_mode_config_cleanup(drm);
 	dcss_crtc_deinit(&kms->crtc, drm);
+	if (componentized)
+		component_unbind_all(dcss->dev, drm);
 	drm->dev_private = NULL;
 }
diff --git a/drivers/gpu/drm/imx/dcss/dcss-kms.h b/drivers/gpu/drm/imx/dcss/dcss-kms.h
index 1f51c86c6986..9b3bc7be9e84 100644
--- a/drivers/gpu/drm/imx/dcss/dcss-kms.h
+++ b/drivers/gpu/drm/imx/dcss/dcss-kms.h
@@ -31,8 +31,8 @@ struct dcss_kms_dev {
 	struct drm_encoder encoder;
 };
 
-struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss);
-void dcss_kms_detach(struct dcss_kms_dev *kms);
+struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss, bool componentized);
+void dcss_kms_detach(struct dcss_kms_dev *kms, bool componentized);
 int dcss_crtc_init(struct dcss_crtc *crtc, struct drm_device *drm);
 void dcss_crtc_deinit(struct dcss_crtc *crtc, struct drm_device *drm);
 struct dcss_plane *dcss_plane_init(struct drm_device *drm,
-- 
2.23.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v5 4/5] dt-bindings: display: imx: add bindings for DCSS
  2020-07-09 16:47 [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem Laurentiu Palcu
  2020-07-09 16:47 ` [PATCH v5 3/5] drm/imx/dcss: add component framework functionality Laurentiu Palcu
@ 2020-07-09 16:47 ` Laurentiu Palcu
  2020-07-09 22:57   ` Rob Herring
  2020-07-09 16:47 ` [PATCH v5 5/5] arm64: dts: imx8mq: add DCSS node Laurentiu Palcu
  2020-07-17  8:17 ` [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem Lucas Stach
  3 siblings, 1 reply; 12+ messages in thread
From: Laurentiu Palcu @ 2020-07-09 16:47 UTC (permalink / raw)
  To: Philipp Zabel, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, Laurentiu Palcu
  Cc: devicetree, agx, lukas, linux-kernel, dri-devel, laurentiu.palcu,
	linux-arm-kernel, l.stach

From: Laurentiu Palcu <laurentiu.palcu@nxp.com>

Add bindings for iMX8MQ Display Controller Subsystem.

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
---
 .../bindings/display/imx/nxp,imx8mq-dcss.yaml | 84 +++++++++++++++++++
 1 file changed, 84 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml

diff --git a/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml b/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
new file mode 100644
index 000000000000..a951409cf76d
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
@@ -0,0 +1,84 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2019 NXP
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/display/imx/nxp,imx8mq-dcss.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: iMX8MQ Display Controller Subsystem (DCSS)
+
+maintainers:
+  - Laurentiu Palcu <laurentiu.palcu@nxp.com>
+
+description:
+
+  The DCSS (display controller sub system) is used to source up to three
+  display buffers, compose them, and drive a display using HDMI 2.0a(with HDCP
+  2.2) or MIPI-DSI. The DCSS is intended to support up to 4kp60 displays. HDR10
+  image processing capabilities are included to provide a solution capable of
+  driving next generation high dynamic range displays.
+
+properties:
+  compatible:
+    const: nxp,imx8mq-dcss
+
+  reg:
+    items:
+      - description: DCSS base address and size, up to IRQ steer start
+      - description: DCSS BLKCTL base address and size
+
+  interrupts:
+    items:
+      - description: Context loader completion and error interrupt
+      - description: DTG interrupt used to signal context loader trigger time
+      - description: DTG interrupt for Vblank
+
+  interrupt-names:
+    items:
+      - const: ctxld
+      - const: ctxld_kick
+      - const: vblank
+
+  clocks:
+    items:
+      - description: Display APB clock for all peripheral PIO access interfaces
+      - description: Display AXI clock needed by DPR, Scaler, RTRAM_CTRL
+      - description: RTRAM clock
+      - description: Pixel clock, can be driver either by HDMI phy clock or MIPI
+      - description: DTRC clock, needed by video decompressor
+
+  clock-names:
+    items:
+      - const: apb
+      - const: axi
+      - const: rtrm
+      - const: pix
+      - const: dtrc
+
+  port:
+    type: object
+    description:
+      A port node pointing to the input port of a HDMI/DP or MIPI display bridge.
+
+examples:
+  - |
+    dcss: display-controller@32e00000 {
+        compatible = "nxp,imx8mq-dcss";
+        reg = <0x32e00000 0x2d000>, <0x32e2f000 0x1000>;
+        interrupts = <6>, <8>, <9>;
+        interrupt-names = "ctxld", "ctxld_kick", "vblank";
+        interrupt-parent = <&irqsteer>;
+        clocks = <&clk 248>, <&clk 247>, <&clk 249>,
+                 <&clk 254>,<&clk 122>;
+        clock-names = "apb", "axi", "rtrm", "pix", "dtrc";
+        assigned-clocks = <&clk 107>, <&clk 109>, <&clk 266>;
+        assigned-clock-parents = <&clk 78>, <&clk 78>, <&clk 3>;
+        assigned-clock-rates = <800000000>,
+                               <400000000>;
+        port {
+            dcss_out: endpoint {
+                remote-endpoint = <&hdmi_in>;
+            };
+        };
+    };
+
-- 
2.23.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v5 5/5] arm64: dts: imx8mq: add DCSS node
  2020-07-09 16:47 [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem Laurentiu Palcu
  2020-07-09 16:47 ` [PATCH v5 3/5] drm/imx/dcss: add component framework functionality Laurentiu Palcu
  2020-07-09 16:47 ` [PATCH v5 4/5] dt-bindings: display: imx: add bindings for DCSS Laurentiu Palcu
@ 2020-07-09 16:47 ` Laurentiu Palcu
  2020-07-17  8:17 ` [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem Lucas Stach
  3 siblings, 0 replies; 12+ messages in thread
From: Laurentiu Palcu @ 2020-07-09 16:47 UTC (permalink / raw)
  To: Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team
  Cc: devicetree, agx, lukas, linux-kernel, dri-devel, laurentiu.palcu,
	linux-arm-kernel, l.stach

From: Laurentiu Palcu <laurentiu.palcu@nxp.com>

This patch adds the node for iMX8MQ Display Controller Subsystem.

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx8mq.dtsi | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
index 978f8122c0d2..022720cdf6ed 100644
--- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi
@@ -1040,6 +1040,29 @@
 			#size-cells = <1>;
 			ranges = <0x32c00000 0x32c00000 0x400000>;
 
+			dcss: display-controller@32e00000 {
+				compatible = "nxp,imx8mq-dcss";
+				reg = <0x32e00000 0x2d000>, <0x32e2f000 0x1000>;
+				interrupts = <6>, <8>, <9>;
+				interrupt-names = "ctxld", "ctxld_kick", "vblank";
+				interrupt-parent = <&irqsteer>;
+				clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>,
+					 <&clk IMX8MQ_CLK_DISP_AXI_ROOT>,
+					 <&clk IMX8MQ_CLK_DISP_RTRM_ROOT>,
+					 <&clk IMX8MQ_VIDEO2_PLL_OUT>,
+					 <&clk IMX8MQ_CLK_DISP_DTRC>;
+				clock-names = "apb", "axi", "rtrm", "pix", "dtrc";
+				assigned-clocks = <&clk IMX8MQ_CLK_DISP_AXI>,
+						  <&clk IMX8MQ_CLK_DISP_RTRM>,
+						  <&clk IMX8MQ_VIDEO2_PLL1_REF_SEL>;
+				assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_800M>,
+							 <&clk IMX8MQ_SYS1_PLL_800M>,
+							 <&clk IMX8MQ_CLK_27M>;
+				assigned-clock-rates = <800000000>,
+						       <400000000>;
+				status = "disabled";
+			};
+
 			irqsteer: interrupt-controller@32e2d000 {
 				compatible = "fsl,imx8m-irqsteer", "fsl,imx-irqsteer";
 				reg = <0x32e2d000 0x1000>;
-- 
2.23.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH v5 4/5] dt-bindings: display: imx: add bindings for DCSS
  2020-07-09 16:47 ` [PATCH v5 4/5] dt-bindings: display: imx: add bindings for DCSS Laurentiu Palcu
@ 2020-07-09 22:57   ` Rob Herring
  0 siblings, 0 replies; 12+ messages in thread
From: Rob Herring @ 2020-07-09 22:57 UTC (permalink / raw)
  To: Laurentiu Palcu
  Cc: devicetree, Philipp Zabel, Shawn Guo, Sascha Hauer, lukas,
	linux-kernel, dri-devel, NXP Linux Team, Pengutronix Kernel Team,
	Laurentiu Palcu, Fabio Estevam, agx, linux-arm-kernel, l.stach

On Thu, Jul 09, 2020 at 07:47:32PM +0300, Laurentiu Palcu wrote:
> From: Laurentiu Palcu <laurentiu.palcu@nxp.com>
> 
> Add bindings for iMX8MQ Display Controller Subsystem.
> 
> Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
> ---
>  .../bindings/display/imx/nxp,imx8mq-dcss.yaml | 84 +++++++++++++++++++
>  1 file changed, 84 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
> 
> diff --git a/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml b/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
> new file mode 100644
> index 000000000000..a951409cf76d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
> @@ -0,0 +1,84 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +# Copyright 2019 NXP
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/display/imx/nxp,imx8mq-dcss.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: iMX8MQ Display Controller Subsystem (DCSS)
> +
> +maintainers:
> +  - Laurentiu Palcu <laurentiu.palcu@nxp.com>
> +
> +description:
> +
> +  The DCSS (display controller sub system) is used to source up to three
> +  display buffers, compose them, and drive a display using HDMI 2.0a(with HDCP
> +  2.2) or MIPI-DSI. The DCSS is intended to support up to 4kp60 displays. HDR10
> +  image processing capabilities are included to provide a solution capable of
> +  driving next generation high dynamic range displays.
> +
> +properties:
> +  compatible:
> +    const: nxp,imx8mq-dcss
> +
> +  reg:
> +    items:
> +      - description: DCSS base address and size, up to IRQ steer start
> +      - description: DCSS BLKCTL base address and size
> +
> +  interrupts:
> +    items:
> +      - description: Context loader completion and error interrupt
> +      - description: DTG interrupt used to signal context loader trigger time
> +      - description: DTG interrupt for Vblank
> +
> +  interrupt-names:
> +    items:
> +      - const: ctxld
> +      - const: ctxld_kick
> +      - const: vblank
> +
> +  clocks:
> +    items:
> +      - description: Display APB clock for all peripheral PIO access interfaces
> +      - description: Display AXI clock needed by DPR, Scaler, RTRAM_CTRL
> +      - description: RTRAM clock
> +      - description: Pixel clock, can be driver either by HDMI phy clock or MIPI
> +      - description: DTRC clock, needed by video decompressor
> +
> +  clock-names:
> +    items:
> +      - const: apb
> +      - const: axi
> +      - const: rtrm
> +      - const: pix
> +      - const: dtrc
> +
> +  port:
> +    type: object
> +    description:
> +      A port node pointing to the input port of a HDMI/DP or MIPI display bridge.

additionalProperties: false

With that,

Reviewed-by: Rob Herring <robh@kernel.org>

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem
  2020-07-09 16:47 [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem Laurentiu Palcu
                   ` (2 preceding siblings ...)
  2020-07-09 16:47 ` [PATCH v5 5/5] arm64: dts: imx8mq: add DCSS node Laurentiu Palcu
@ 2020-07-17  8:17 ` Lucas Stach
  2020-07-17  8:59   ` Daniel Vetter
  3 siblings, 1 reply; 12+ messages in thread
From: Lucas Stach @ 2020-07-17  8:17 UTC (permalink / raw)
  To: Laurentiu Palcu, Pengutronix Kernel Team, Fabio Estevam,
	NXP Linux Team, Laurentiu Palcu, dri-devel, linux-arm-kernel
  Cc: devicetree, agx, lukas, linux-kernel

Hi Laurentiu,

Am Donnerstag, den 09.07.2020, 19:47 +0300 schrieb Laurentiu Palcu:
> From: Laurentiu Palcu <laurentiu.palcu@nxp.com>
> 
> Hi,
> 
> This patchset adds initial DCSS support for iMX8MQ chip. Initial support
> includes only graphics plane support (no video planes), no HDR10 capabilities,
> no graphics decompression (only linear, tiled and super-tiled buffers allowed).
> 
> Support for the rest of the features will be added incrementally, in subsequent
> patches.
> 
> The patchset was tested with both HDP driver (in the downstream tree) and the upstream
> MIPI-DSI driver (with a couple of patches on top, to make it work correctly with DCSS).

I think the series (minus 3/5 and minor correction to the DT binding)
is fine to go in now. So just some formal questions: are you going to
maintain this driver in upstream? If so we should add a MAINTAINERS
entry to that effect. I can offer to act as a reviewer in this case.

How do you intend to merge this? IMO pushing this through drm-misc
seems like the right thing to do. If you agree I can help you get this
applied. If you are going to maintain the driver on your own, I think
you should then apply for commit rights to drm-misc.

Regards,
Lucas

> Thanks,
> Laurentiu
> 
> Changes in v5:
>  * Rebased to latest;
>  * Took out component framework support and made it a separate patch so
>    that people can still test with HDP driver, which makes use of it.
>    But the idea is to get rid of it once HDP driver's next versions
>    will remove component framework as well;
>  * Slight improvement to modesetting: avoid cutting off the pixel clock
>    if the new mode and the old one are equal. Also, in this case, is
>    not necessary to wait for DTG to shut off. This would allow to switch
>    from 8b RGB to 12b YUV422, for example, with no interruptions (at least
>    from DCSS point of view);
>  * Do not fire off CTXLD when going to suspend, unless it still has
>    entries that need to be committed to DCSS;
>  * Addressed Rob's comments on bindings;
> 
> Changes in v4:
>  * Addressed Lucas and Philipp's comments:
>    * Added DRM_KMS_CMA_HELPER dependency in Kconfig;
>    * Removed usage of devm_ functions since I'm already doing all the
>      clean-up in the submodules_deinit();
>    * Moved the drm_crtc_arm_vblank_event() in dcss_crtc_atomic_flush();
>    * Removed en_completion variable from dcss_crtc since this was
>      introduced mainly to avoid vblank timeout warnings which were fixed
>      by arming the vblank event in flush() instead of begin();
>    * Removed clks_on and irq_enabled flags since all the calls to
>      enabling/disabling clocks and interrupts were balanced;
>    * Removed the custom atomic_commit callback and used the DRM core
>      helper and, in the process, got rid of a workqueue that wasn't
>      necessary anymore;
>    * Fixed some minor DT binding issues flagged by Philipp;
>    * Some other minor changes suggested by Lucas;
>  * Removed YUV formats from the supported formats as these cannot work
>    without the HDR10 module CSCs and LUTs. Will add them back when I
>    will add support for video planes;
> 
> Changes in v3:
>  * rebased to latest linux-next and made it compile as drmP.h was
>    removed;
>  * removed the patch adding the VIDEO2_PLL clock. It's already applied;
>  * removed an unnecessary 50ms sleep in the dcss_dtg_sync_set();
>  * fixed a a spurious hang reported by Lukas Hartmann and encountered
>    by me several times;
>  * mask DPR and DTG interrupts by default, as they may come enabled from
>    U-boot;
> 
> Changes in v2:
>  * Removed '0x' in node's unit-address both in DT and yaml;
>  * Made the address region size lowercase, to be consistent;
>  * Removed some left-over references to P010;
>  * Added a Kconfig dependency of DRM && ARCH_MXC. This will also silence compilation
>    issues reported by kbuild for other architectures;
> 
> Laurentiu Palcu (5):
>   drm/imx: compile imx directory by default
>   drm/imx: Add initial support for DCSS on iMX8MQ
>   drm/imx/dcss: add component framework functionality
>   dt-bindings: display: imx: add bindings for DCSS
>   arm64: dts: imx8mq: add DCSS node
> 
>  .../bindings/display/imx/nxp,imx8mq-dcss.yaml |  84 ++
>  arch/arm64/boot/dts/freescale/imx8mq.dtsi     |  23 +
>  drivers/gpu/drm/Makefile                      |   2 +-
>  drivers/gpu/drm/imx/Kconfig                   |   2 +
>  drivers/gpu/drm/imx/Makefile                  |   1 +
>  drivers/gpu/drm/imx/dcss/Kconfig              |   9 +
>  drivers/gpu/drm/imx/dcss/Makefile             |   6 +
>  drivers/gpu/drm/imx/dcss/dcss-blkctl.c        |  70 ++
>  drivers/gpu/drm/imx/dcss/dcss-crtc.c          | 219 +++++
>  drivers/gpu/drm/imx/dcss/dcss-ctxld.c         | 424 +++++++++
>  drivers/gpu/drm/imx/dcss/dcss-dev.c           | 314 +++++++
>  drivers/gpu/drm/imx/dcss/dcss-dev.h           | 177 ++++
>  drivers/gpu/drm/imx/dcss/dcss-dpr.c           | 562 ++++++++++++
>  drivers/gpu/drm/imx/dcss/dcss-drv.c           | 183 ++++
>  drivers/gpu/drm/imx/dcss/dcss-dtg.c           | 409 +++++++++
>  drivers/gpu/drm/imx/dcss/dcss-kms.c           | 185 ++++
>  drivers/gpu/drm/imx/dcss/dcss-kms.h           |  43 +
>  drivers/gpu/drm/imx/dcss/dcss-plane.c         | 405 +++++++++
>  drivers/gpu/drm/imx/dcss/dcss-scaler.c        | 826 ++++++++++++++++++
>  drivers/gpu/drm/imx/dcss/dcss-ss.c            | 180 ++++
>  20 files changed, 4123 insertions(+), 1 deletion(-)
>  create mode 100644 Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
>  create mode 100644 drivers/gpu/drm/imx/dcss/Kconfig
>  create mode 100644 drivers/gpu/drm/imx/dcss/Makefile
>  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-blkctl.c
>  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-crtc.c
>  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-ctxld.c
>  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dev.c
>  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dev.h
>  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dpr.c
>  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-drv.c
>  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dtg.c
>  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-kms.c
>  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-kms.h
>  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-plane.c
>  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-scaler.c
>  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-ss.c
> 


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem
  2020-07-17  8:17 ` [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem Lucas Stach
@ 2020-07-17  8:59   ` Daniel Vetter
  2020-07-17  9:12     ` Lucas Stach
  0 siblings, 1 reply; 12+ messages in thread
From: Daniel Vetter @ 2020-07-17  8:59 UTC (permalink / raw)
  To: Lucas Stach, Philipp Zabel
  Cc: devicetree, Fabio Estevam, Guido Günther, lukas,
	Linux Kernel Mailing List, dri-devel, NXP Linux Team,
	Pengutronix Kernel Team, Laurentiu Palcu, Laurentiu Palcu,
	Linux ARM

On Fri, Jul 17, 2020 at 10:18 AM Lucas Stach <l.stach@pengutronix.de> wrote:
>
> Hi Laurentiu,
>
> Am Donnerstag, den 09.07.2020, 19:47 +0300 schrieb Laurentiu Palcu:
> > From: Laurentiu Palcu <laurentiu.palcu@nxp.com>
> >
> > Hi,
> >
> > This patchset adds initial DCSS support for iMX8MQ chip. Initial support
> > includes only graphics plane support (no video planes), no HDR10 capabilities,
> > no graphics decompression (only linear, tiled and super-tiled buffers allowed).
> >
> > Support for the rest of the features will be added incrementally, in subsequent
> > patches.
> >
> > The patchset was tested with both HDP driver (in the downstream tree) and the upstream
> > MIPI-DSI driver (with a couple of patches on top, to make it work correctly with DCSS).
>
> I think the series (minus 3/5 and minor correction to the DT binding)
> is fine to go in now. So just some formal questions: are you going to
> maintain this driver in upstream? If so we should add a MAINTAINERS
> entry to that effect. I can offer to act as a reviewer in this case.
>
> How do you intend to merge this? IMO pushing this through drm-misc
> seems like the right thing to do. If you agree I can help you get this
> applied. If you are going to maintain the driver on your own, I think
> you should then apply for commit rights to drm-misc.

drm/imx isn't listed yet as under the drm-misc umbrella, maybe we
should put the entire collective of imx drivers under drm-misc? Or
maybe it's just an oversight that the git repo isn't specified in the
MAINTAINERS entry. Also maybe we should add the pengutronix kernel
team alias there too?
-Daniel


> Regards,
> Lucas
>
> > Thanks,
> > Laurentiu
> >
> > Changes in v5:
> >  * Rebased to latest;
> >  * Took out component framework support and made it a separate patch so
> >    that people can still test with HDP driver, which makes use of it.
> >    But the idea is to get rid of it once HDP driver's next versions
> >    will remove component framework as well;
> >  * Slight improvement to modesetting: avoid cutting off the pixel clock
> >    if the new mode and the old one are equal. Also, in this case, is
> >    not necessary to wait for DTG to shut off. This would allow to switch
> >    from 8b RGB to 12b YUV422, for example, with no interruptions (at least
> >    from DCSS point of view);
> >  * Do not fire off CTXLD when going to suspend, unless it still has
> >    entries that need to be committed to DCSS;
> >  * Addressed Rob's comments on bindings;
> >
> > Changes in v4:
> >  * Addressed Lucas and Philipp's comments:
> >    * Added DRM_KMS_CMA_HELPER dependency in Kconfig;
> >    * Removed usage of devm_ functions since I'm already doing all the
> >      clean-up in the submodules_deinit();
> >    * Moved the drm_crtc_arm_vblank_event() in dcss_crtc_atomic_flush();
> >    * Removed en_completion variable from dcss_crtc since this was
> >      introduced mainly to avoid vblank timeout warnings which were fixed
> >      by arming the vblank event in flush() instead of begin();
> >    * Removed clks_on and irq_enabled flags since all the calls to
> >      enabling/disabling clocks and interrupts were balanced;
> >    * Removed the custom atomic_commit callback and used the DRM core
> >      helper and, in the process, got rid of a workqueue that wasn't
> >      necessary anymore;
> >    * Fixed some minor DT binding issues flagged by Philipp;
> >    * Some other minor changes suggested by Lucas;
> >  * Removed YUV formats from the supported formats as these cannot work
> >    without the HDR10 module CSCs and LUTs. Will add them back when I
> >    will add support for video planes;
> >
> > Changes in v3:
> >  * rebased to latest linux-next and made it compile as drmP.h was
> >    removed;
> >  * removed the patch adding the VIDEO2_PLL clock. It's already applied;
> >  * removed an unnecessary 50ms sleep in the dcss_dtg_sync_set();
> >  * fixed a a spurious hang reported by Lukas Hartmann and encountered
> >    by me several times;
> >  * mask DPR and DTG interrupts by default, as they may come enabled from
> >    U-boot;
> >
> > Changes in v2:
> >  * Removed '0x' in node's unit-address both in DT and yaml;
> >  * Made the address region size lowercase, to be consistent;
> >  * Removed some left-over references to P010;
> >  * Added a Kconfig dependency of DRM && ARCH_MXC. This will also silence compilation
> >    issues reported by kbuild for other architectures;
> >
> > Laurentiu Palcu (5):
> >   drm/imx: compile imx directory by default
> >   drm/imx: Add initial support for DCSS on iMX8MQ
> >   drm/imx/dcss: add component framework functionality
> >   dt-bindings: display: imx: add bindings for DCSS
> >   arm64: dts: imx8mq: add DCSS node
> >
> >  .../bindings/display/imx/nxp,imx8mq-dcss.yaml |  84 ++
> >  arch/arm64/boot/dts/freescale/imx8mq.dtsi     |  23 +
> >  drivers/gpu/drm/Makefile                      |   2 +-
> >  drivers/gpu/drm/imx/Kconfig                   |   2 +
> >  drivers/gpu/drm/imx/Makefile                  |   1 +
> >  drivers/gpu/drm/imx/dcss/Kconfig              |   9 +
> >  drivers/gpu/drm/imx/dcss/Makefile             |   6 +
> >  drivers/gpu/drm/imx/dcss/dcss-blkctl.c        |  70 ++
> >  drivers/gpu/drm/imx/dcss/dcss-crtc.c          | 219 +++++
> >  drivers/gpu/drm/imx/dcss/dcss-ctxld.c         | 424 +++++++++
> >  drivers/gpu/drm/imx/dcss/dcss-dev.c           | 314 +++++++
> >  drivers/gpu/drm/imx/dcss/dcss-dev.h           | 177 ++++
> >  drivers/gpu/drm/imx/dcss/dcss-dpr.c           | 562 ++++++++++++
> >  drivers/gpu/drm/imx/dcss/dcss-drv.c           | 183 ++++
> >  drivers/gpu/drm/imx/dcss/dcss-dtg.c           | 409 +++++++++
> >  drivers/gpu/drm/imx/dcss/dcss-kms.c           | 185 ++++
> >  drivers/gpu/drm/imx/dcss/dcss-kms.h           |  43 +
> >  drivers/gpu/drm/imx/dcss/dcss-plane.c         | 405 +++++++++
> >  drivers/gpu/drm/imx/dcss/dcss-scaler.c        | 826 ++++++++++++++++++
> >  drivers/gpu/drm/imx/dcss/dcss-ss.c            | 180 ++++
> >  20 files changed, 4123 insertions(+), 1 deletion(-)
> >  create mode 100644 Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
> >  create mode 100644 drivers/gpu/drm/imx/dcss/Kconfig
> >  create mode 100644 drivers/gpu/drm/imx/dcss/Makefile
> >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-blkctl.c
> >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-crtc.c
> >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-ctxld.c
> >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dev.c
> >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dev.h
> >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dpr.c
> >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-drv.c
> >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dtg.c
> >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-kms.c
> >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-kms.h
> >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-plane.c
> >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-scaler.c
> >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-ss.c
> >
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel



-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem
  2020-07-17  8:59   ` Daniel Vetter
@ 2020-07-17  9:12     ` Lucas Stach
  2020-07-17  9:27       ` Daniel Vetter
  0 siblings, 1 reply; 12+ messages in thread
From: Lucas Stach @ 2020-07-17  9:12 UTC (permalink / raw)
  To: Daniel Vetter, Philipp Zabel
  Cc: devicetree, Fabio Estevam, Guido Günther, lukas,
	Linux Kernel Mailing List, dri-devel, NXP Linux Team,
	Pengutronix Kernel Team, Laurentiu Palcu, Laurentiu Palcu,
	Linux ARM

Am Freitag, den 17.07.2020, 10:59 +0200 schrieb Daniel Vetter:
> On Fri, Jul 17, 2020 at 10:18 AM Lucas Stach <l.stach@pengutronix.de> wrote:
> > Hi Laurentiu,
> > 
> > Am Donnerstag, den 09.07.2020, 19:47 +0300 schrieb Laurentiu Palcu:
> > > From: Laurentiu Palcu <laurentiu.palcu@nxp.com>
> > > 
> > > Hi,
> > > 
> > > This patchset adds initial DCSS support for iMX8MQ chip. Initial support
> > > includes only graphics plane support (no video planes), no HDR10 capabilities,
> > > no graphics decompression (only linear, tiled and super-tiled buffers allowed).
> > > 
> > > Support for the rest of the features will be added incrementally, in subsequent
> > > patches.
> > > 
> > > The patchset was tested with both HDP driver (in the downstream tree) and the upstream
> > > MIPI-DSI driver (with a couple of patches on top, to make it work correctly with DCSS).
> > 
> > I think the series (minus 3/5 and minor correction to the DT binding)
> > is fine to go in now. So just some formal questions: are you going to
> > maintain this driver in upstream? If so we should add a MAINTAINERS
> > entry to that effect. I can offer to act as a reviewer in this case.
> > 
> > How do you intend to merge this? IMO pushing this through drm-misc
> > seems like the right thing to do. If you agree I can help you get this
> > applied. If you are going to maintain the driver on your own, I think
> > you should then apply for commit rights to drm-misc.
> 
> drm/imx isn't listed yet as under the drm-misc umbrella, maybe we
> should put the entire collective of imx drivers under drm-misc? Or
> maybe it's just an oversight that the git repo isn't specified in the
> MAINTAINERS entry. Also maybe we should add the pengutronix kernel
> team alias there too?

drm/imx was exclusively the IPUv3 up until now, which is in fact
maintained outside of drm-misc in its own git tree. This has worked
quite well in the past so even though IPUv3 doesn't see a lot of churn
these days the motivation to change anything to this workflow is quite
low. And yes, the git tree is missing from the MAINTAINERS entry.

For the DCSS driver, if it's going to be maintained by NXP, I figured
it might be easier for Laurentiu to push things into drm-misc than set
up a separate public git tree. But IMHO that's fully up to him to
decide.

Regards,
Lucas

> -Daniel
> 
> 
> > Regards,
> > Lucas
> > 
> > > Thanks,
> > > Laurentiu
> > > 
> > > Changes in v5:
> > >  * Rebased to latest;
> > >  * Took out component framework support and made it a separate patch so
> > >    that people can still test with HDP driver, which makes use of it.
> > >    But the idea is to get rid of it once HDP driver's next versions
> > >    will remove component framework as well;
> > >  * Slight improvement to modesetting: avoid cutting off the pixel clock
> > >    if the new mode and the old one are equal. Also, in this case, is
> > >    not necessary to wait for DTG to shut off. This would allow to switch
> > >    from 8b RGB to 12b YUV422, for example, with no interruptions (at least
> > >    from DCSS point of view);
> > >  * Do not fire off CTXLD when going to suspend, unless it still has
> > >    entries that need to be committed to DCSS;
> > >  * Addressed Rob's comments on bindings;
> > > 
> > > Changes in v4:
> > >  * Addressed Lucas and Philipp's comments:
> > >    * Added DRM_KMS_CMA_HELPER dependency in Kconfig;
> > >    * Removed usage of devm_ functions since I'm already doing all the
> > >      clean-up in the submodules_deinit();
> > >    * Moved the drm_crtc_arm_vblank_event() in dcss_crtc_atomic_flush();
> > >    * Removed en_completion variable from dcss_crtc since this was
> > >      introduced mainly to avoid vblank timeout warnings which were fixed
> > >      by arming the vblank event in flush() instead of begin();
> > >    * Removed clks_on and irq_enabled flags since all the calls to
> > >      enabling/disabling clocks and interrupts were balanced;
> > >    * Removed the custom atomic_commit callback and used the DRM core
> > >      helper and, in the process, got rid of a workqueue that wasn't
> > >      necessary anymore;
> > >    * Fixed some minor DT binding issues flagged by Philipp;
> > >    * Some other minor changes suggested by Lucas;
> > >  * Removed YUV formats from the supported formats as these cannot work
> > >    without the HDR10 module CSCs and LUTs. Will add them back when I
> > >    will add support for video planes;
> > > 
> > > Changes in v3:
> > >  * rebased to latest linux-next and made it compile as drmP.h was
> > >    removed;
> > >  * removed the patch adding the VIDEO2_PLL clock. It's already applied;
> > >  * removed an unnecessary 50ms sleep in the dcss_dtg_sync_set();
> > >  * fixed a a spurious hang reported by Lukas Hartmann and encountered
> > >    by me several times;
> > >  * mask DPR and DTG interrupts by default, as they may come enabled from
> > >    U-boot;
> > > 
> > > Changes in v2:
> > >  * Removed '0x' in node's unit-address both in DT and yaml;
> > >  * Made the address region size lowercase, to be consistent;
> > >  * Removed some left-over references to P010;
> > >  * Added a Kconfig dependency of DRM && ARCH_MXC. This will also silence compilation
> > >    issues reported by kbuild for other architectures;
> > > 
> > > Laurentiu Palcu (5):
> > >   drm/imx: compile imx directory by default
> > >   drm/imx: Add initial support for DCSS on iMX8MQ
> > >   drm/imx/dcss: add component framework functionality
> > >   dt-bindings: display: imx: add bindings for DCSS
> > >   arm64: dts: imx8mq: add DCSS node
> > > 
> > >  .../bindings/display/imx/nxp,imx8mq-dcss.yaml |  84 ++
> > >  arch/arm64/boot/dts/freescale/imx8mq.dtsi     |  23 +
> > >  drivers/gpu/drm/Makefile                      |   2 +-
> > >  drivers/gpu/drm/imx/Kconfig                   |   2 +
> > >  drivers/gpu/drm/imx/Makefile                  |   1 +
> > >  drivers/gpu/drm/imx/dcss/Kconfig              |   9 +
> > >  drivers/gpu/drm/imx/dcss/Makefile             |   6 +
> > >  drivers/gpu/drm/imx/dcss/dcss-blkctl.c        |  70 ++
> > >  drivers/gpu/drm/imx/dcss/dcss-crtc.c          | 219 +++++
> > >  drivers/gpu/drm/imx/dcss/dcss-ctxld.c         | 424 +++++++++
> > >  drivers/gpu/drm/imx/dcss/dcss-dev.c           | 314 +++++++
> > >  drivers/gpu/drm/imx/dcss/dcss-dev.h           | 177 ++++
> > >  drivers/gpu/drm/imx/dcss/dcss-dpr.c           | 562 ++++++++++++
> > >  drivers/gpu/drm/imx/dcss/dcss-drv.c           | 183 ++++
> > >  drivers/gpu/drm/imx/dcss/dcss-dtg.c           | 409 +++++++++
> > >  drivers/gpu/drm/imx/dcss/dcss-kms.c           | 185 ++++
> > >  drivers/gpu/drm/imx/dcss/dcss-kms.h           |  43 +
> > >  drivers/gpu/drm/imx/dcss/dcss-plane.c         | 405 +++++++++
> > >  drivers/gpu/drm/imx/dcss/dcss-scaler.c        | 826 ++++++++++++++++++
> > >  drivers/gpu/drm/imx/dcss/dcss-ss.c            | 180 ++++
> > >  20 files changed, 4123 insertions(+), 1 deletion(-)
> > >  create mode 100644 Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
> > >  create mode 100644 drivers/gpu/drm/imx/dcss/Kconfig
> > >  create mode 100644 drivers/gpu/drm/imx/dcss/Makefile
> > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-blkctl.c
> > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-crtc.c
> > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-ctxld.c
> > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dev.c
> > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dev.h
> > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dpr.c
> > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-drv.c
> > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dtg.c
> > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-kms.c
> > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-kms.h
> > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-plane.c
> > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-scaler.c
> > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-ss.c
> > > 
> > 
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
> 
> 


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem
  2020-07-17  9:12     ` Lucas Stach
@ 2020-07-17  9:27       ` Daniel Vetter
  2020-07-17  9:45         ` Laurentiu Palcu
  0 siblings, 1 reply; 12+ messages in thread
From: Daniel Vetter @ 2020-07-17  9:27 UTC (permalink / raw)
  To: Lucas Stach
  Cc: devicetree, Philipp Zabel, Laurentiu Palcu, Guido Günther,
	lukas, Linux Kernel Mailing List, dri-devel, NXP Linux Team,
	Pengutronix Kernel Team, Laurentiu Palcu, Daniel Vetter,
	Fabio Estevam, Linux ARM

On Fri, Jul 17, 2020 at 11:12:39AM +0200, Lucas Stach wrote:
> Am Freitag, den 17.07.2020, 10:59 +0200 schrieb Daniel Vetter:
> > On Fri, Jul 17, 2020 at 10:18 AM Lucas Stach <l.stach@pengutronix.de> wrote:
> > > Hi Laurentiu,
> > > 
> > > Am Donnerstag, den 09.07.2020, 19:47 +0300 schrieb Laurentiu Palcu:
> > > > From: Laurentiu Palcu <laurentiu.palcu@nxp.com>
> > > > 
> > > > Hi,
> > > > 
> > > > This patchset adds initial DCSS support for iMX8MQ chip. Initial support
> > > > includes only graphics plane support (no video planes), no HDR10 capabilities,
> > > > no graphics decompression (only linear, tiled and super-tiled buffers allowed).
> > > > 
> > > > Support for the rest of the features will be added incrementally, in subsequent
> > > > patches.
> > > > 
> > > > The patchset was tested with both HDP driver (in the downstream tree) and the upstream
> > > > MIPI-DSI driver (with a couple of patches on top, to make it work correctly with DCSS).
> > > 
> > > I think the series (minus 3/5 and minor correction to the DT binding)
> > > is fine to go in now. So just some formal questions: are you going to
> > > maintain this driver in upstream? If so we should add a MAINTAINERS
> > > entry to that effect. I can offer to act as a reviewer in this case.
> > > 
> > > How do you intend to merge this? IMO pushing this through drm-misc
> > > seems like the right thing to do. If you agree I can help you get this
> > > applied. If you are going to maintain the driver on your own, I think
> > > you should then apply for commit rights to drm-misc.
> > 
> > drm/imx isn't listed yet as under the drm-misc umbrella, maybe we
> > should put the entire collective of imx drivers under drm-misc? Or
> > maybe it's just an oversight that the git repo isn't specified in the
> > MAINTAINERS entry. Also maybe we should add the pengutronix kernel
> > team alias there too?
> 
> drm/imx was exclusively the IPUv3 up until now, which is in fact
> maintained outside of drm-misc in its own git tree. This has worked
> quite well in the past so even though IPUv3 doesn't see a lot of churn
> these days the motivation to change anything to this workflow is quite
> low. And yes, the git tree is missing from the MAINTAINERS entry.
> 
> For the DCSS driver, if it's going to be maintained by NXP, I figured
> it might be easier for Laurentiu to push things into drm-misc than set
> up a separate public git tree. But IMHO that's fully up to him to
> decide.

/me puts on maintainer hat

Much prefer drm-misc over random people playing maintainer and fumbling
it. I think the reasonable options are either in the current imx tree, or
drm-misc. Standalone tree for these small drivers just doesn't make much
sense.
-Daniel

> 
> Regards,
> Lucas
> 
> > -Daniel
> > 
> > 
> > > Regards,
> > > Lucas
> > > 
> > > > Thanks,
> > > > Laurentiu
> > > > 
> > > > Changes in v5:
> > > >  * Rebased to latest;
> > > >  * Took out component framework support and made it a separate patch so
> > > >    that people can still test with HDP driver, which makes use of it.
> > > >    But the idea is to get rid of it once HDP driver's next versions
> > > >    will remove component framework as well;
> > > >  * Slight improvement to modesetting: avoid cutting off the pixel clock
> > > >    if the new mode and the old one are equal. Also, in this case, is
> > > >    not necessary to wait for DTG to shut off. This would allow to switch
> > > >    from 8b RGB to 12b YUV422, for example, with no interruptions (at least
> > > >    from DCSS point of view);
> > > >  * Do not fire off CTXLD when going to suspend, unless it still has
> > > >    entries that need to be committed to DCSS;
> > > >  * Addressed Rob's comments on bindings;
> > > > 
> > > > Changes in v4:
> > > >  * Addressed Lucas and Philipp's comments:
> > > >    * Added DRM_KMS_CMA_HELPER dependency in Kconfig;
> > > >    * Removed usage of devm_ functions since I'm already doing all the
> > > >      clean-up in the submodules_deinit();
> > > >    * Moved the drm_crtc_arm_vblank_event() in dcss_crtc_atomic_flush();
> > > >    * Removed en_completion variable from dcss_crtc since this was
> > > >      introduced mainly to avoid vblank timeout warnings which were fixed
> > > >      by arming the vblank event in flush() instead of begin();
> > > >    * Removed clks_on and irq_enabled flags since all the calls to
> > > >      enabling/disabling clocks and interrupts were balanced;
> > > >    * Removed the custom atomic_commit callback and used the DRM core
> > > >      helper and, in the process, got rid of a workqueue that wasn't
> > > >      necessary anymore;
> > > >    * Fixed some minor DT binding issues flagged by Philipp;
> > > >    * Some other minor changes suggested by Lucas;
> > > >  * Removed YUV formats from the supported formats as these cannot work
> > > >    without the HDR10 module CSCs and LUTs. Will add them back when I
> > > >    will add support for video planes;
> > > > 
> > > > Changes in v3:
> > > >  * rebased to latest linux-next and made it compile as drmP.h was
> > > >    removed;
> > > >  * removed the patch adding the VIDEO2_PLL clock. It's already applied;
> > > >  * removed an unnecessary 50ms sleep in the dcss_dtg_sync_set();
> > > >  * fixed a a spurious hang reported by Lukas Hartmann and encountered
> > > >    by me several times;
> > > >  * mask DPR and DTG interrupts by default, as they may come enabled from
> > > >    U-boot;
> > > > 
> > > > Changes in v2:
> > > >  * Removed '0x' in node's unit-address both in DT and yaml;
> > > >  * Made the address region size lowercase, to be consistent;
> > > >  * Removed some left-over references to P010;
> > > >  * Added a Kconfig dependency of DRM && ARCH_MXC. This will also silence compilation
> > > >    issues reported by kbuild for other architectures;
> > > > 
> > > > Laurentiu Palcu (5):
> > > >   drm/imx: compile imx directory by default
> > > >   drm/imx: Add initial support for DCSS on iMX8MQ
> > > >   drm/imx/dcss: add component framework functionality
> > > >   dt-bindings: display: imx: add bindings for DCSS
> > > >   arm64: dts: imx8mq: add DCSS node
> > > > 
> > > >  .../bindings/display/imx/nxp,imx8mq-dcss.yaml |  84 ++
> > > >  arch/arm64/boot/dts/freescale/imx8mq.dtsi     |  23 +
> > > >  drivers/gpu/drm/Makefile                      |   2 +-
> > > >  drivers/gpu/drm/imx/Kconfig                   |   2 +
> > > >  drivers/gpu/drm/imx/Makefile                  |   1 +
> > > >  drivers/gpu/drm/imx/dcss/Kconfig              |   9 +
> > > >  drivers/gpu/drm/imx/dcss/Makefile             |   6 +
> > > >  drivers/gpu/drm/imx/dcss/dcss-blkctl.c        |  70 ++
> > > >  drivers/gpu/drm/imx/dcss/dcss-crtc.c          | 219 +++++
> > > >  drivers/gpu/drm/imx/dcss/dcss-ctxld.c         | 424 +++++++++
> > > >  drivers/gpu/drm/imx/dcss/dcss-dev.c           | 314 +++++++
> > > >  drivers/gpu/drm/imx/dcss/dcss-dev.h           | 177 ++++
> > > >  drivers/gpu/drm/imx/dcss/dcss-dpr.c           | 562 ++++++++++++
> > > >  drivers/gpu/drm/imx/dcss/dcss-drv.c           | 183 ++++
> > > >  drivers/gpu/drm/imx/dcss/dcss-dtg.c           | 409 +++++++++
> > > >  drivers/gpu/drm/imx/dcss/dcss-kms.c           | 185 ++++
> > > >  drivers/gpu/drm/imx/dcss/dcss-kms.h           |  43 +
> > > >  drivers/gpu/drm/imx/dcss/dcss-plane.c         | 405 +++++++++
> > > >  drivers/gpu/drm/imx/dcss/dcss-scaler.c        | 826 ++++++++++++++++++
> > > >  drivers/gpu/drm/imx/dcss/dcss-ss.c            | 180 ++++
> > > >  20 files changed, 4123 insertions(+), 1 deletion(-)
> > > >  create mode 100644 Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
> > > >  create mode 100644 drivers/gpu/drm/imx/dcss/Kconfig
> > > >  create mode 100644 drivers/gpu/drm/imx/dcss/Makefile
> > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-blkctl.c
> > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-crtc.c
> > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-ctxld.c
> > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dev.c
> > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dev.h
> > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dpr.c
> > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-drv.c
> > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dtg.c
> > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-kms.c
> > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-kms.h
> > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-plane.c
> > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-scaler.c
> > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-ss.c
> > > > 
> > > 
> > > _______________________________________________
> > > dri-devel mailing list
> > > dri-devel@lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/dri-devel
> > 
> > 
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem
  2020-07-17  9:27       ` Daniel Vetter
@ 2020-07-17  9:45         ` Laurentiu Palcu
  2020-07-17 10:50           ` Lucas Stach
  0 siblings, 1 reply; 12+ messages in thread
From: Laurentiu Palcu @ 2020-07-17  9:45 UTC (permalink / raw)
  To: Lucas Stach, Philipp Zabel, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, Laurentiu Palcu, dri-devel,
	Linux ARM, devicetree, Guido Günther, lukas,
	Linux Kernel Mailing List

Hi Lukas and Daniel,

On Fri, Jul 17, 2020 at 11:27:58AM +0200, Daniel Vetter wrote:
> On Fri, Jul 17, 2020 at 11:12:39AM +0200, Lucas Stach wrote:
> > Am Freitag, den 17.07.2020, 10:59 +0200 schrieb Daniel Vetter:
> > > On Fri, Jul 17, 2020 at 10:18 AM Lucas Stach <l.stach@pengutronix.de> wrote:
> > > > Hi Laurentiu,
> > > > 
> > > > Am Donnerstag, den 09.07.2020, 19:47 +0300 schrieb Laurentiu Palcu:
> > > > > From: Laurentiu Palcu <laurentiu.palcu@nxp.com>
> > > > > 
> > > > > Hi,
> > > > > 
> > > > > This patchset adds initial DCSS support for iMX8MQ chip. Initial support
> > > > > includes only graphics plane support (no video planes), no HDR10 capabilities,
> > > > > no graphics decompression (only linear, tiled and super-tiled buffers allowed).
> > > > > 
> > > > > Support for the rest of the features will be added incrementally, in subsequent
> > > > > patches.
> > > > > 
> > > > > The patchset was tested with both HDP driver (in the downstream tree) and the upstream
> > > > > MIPI-DSI driver (with a couple of patches on top, to make it work correctly with DCSS).
> > > > 
> > > > I think the series (minus 3/5 and minor correction to the DT binding)
> > > > is fine to go in now. So just some formal questions: are you going to
> > > > maintain this driver in upstream? If so we should add a MAINTAINERS
> > > > entry to that effect. I can offer to act as a reviewer in this case.

I can maintain the DCSS driver, sure, and the more reviewers the better.
Thanks for helping out with this. Should I send a v6 then with a patch
for MAINTAINERS?

> > > > 
> > > > How do you intend to merge this? IMO pushing this through drm-misc
> > > > seems like the right thing to do. If you agree I can help you get this
> > > > applied. If you are going to maintain the driver on your own, I think
> > > > you should then apply for commit rights to drm-misc.
> > > 
> > > drm/imx isn't listed yet as under the drm-misc umbrella, maybe we
> > > should put the entire collective of imx drivers under drm-misc? Or
> > > maybe it's just an oversight that the git repo isn't specified in the
> > > MAINTAINERS entry. Also maybe we should add the pengutronix kernel
> > > team alias there too?
> > 
> > drm/imx was exclusively the IPUv3 up until now, which is in fact
> > maintained outside of drm-misc in its own git tree. This has worked
> > quite well in the past so even though IPUv3 doesn't see a lot of churn
> > these days the motivation to change anything to this workflow is quite
> > low. And yes, the git tree is missing from the MAINTAINERS entry.
> > 
> > For the DCSS driver, if it's going to be maintained by NXP, I figured
> > it might be easier for Laurentiu to push things into drm-misc than set
> > up a separate public git tree. But IMHO that's fully up to him to
> > decide.
> 
> /me puts on maintainer hat
> 
> Much prefer drm-misc over random people playing maintainer and fumbling
> it. I think the reasonable options are either in the current imx tree, or
> drm-misc. Standalone tree for these small drivers just doesn't make much
> sense.

I don't have anything against either method, though I have to agree I
like things to be simple. Going through drm-misc sounds simple enough to me. :)
However, since there is going to be more activity in the DRM IMX area in
the future, reviving the drm/imx tree, and push all IMX related stuff
through drm/imx, could make sense as well.

Thanks,
Laurentiu

> -Daniel
> 
> > 
> > Regards,
> > Lucas
> > 
> > > -Daniel
> > > 
> > > 
> > > > Regards,
> > > > Lucas
> > > > 
> > > > > Thanks,
> > > > > Laurentiu
> > > > > 
> > > > > Changes in v5:
> > > > >  * Rebased to latest;
> > > > >  * Took out component framework support and made it a separate patch so
> > > > >    that people can still test with HDP driver, which makes use of it.
> > > > >    But the idea is to get rid of it once HDP driver's next versions
> > > > >    will remove component framework as well;
> > > > >  * Slight improvement to modesetting: avoid cutting off the pixel clock
> > > > >    if the new mode and the old one are equal. Also, in this case, is
> > > > >    not necessary to wait for DTG to shut off. This would allow to switch
> > > > >    from 8b RGB to 12b YUV422, for example, with no interruptions (at least
> > > > >    from DCSS point of view);
> > > > >  * Do not fire off CTXLD when going to suspend, unless it still has
> > > > >    entries that need to be committed to DCSS;
> > > > >  * Addressed Rob's comments on bindings;
> > > > > 
> > > > > Changes in v4:
> > > > >  * Addressed Lucas and Philipp's comments:
> > > > >    * Added DRM_KMS_CMA_HELPER dependency in Kconfig;
> > > > >    * Removed usage of devm_ functions since I'm already doing all the
> > > > >      clean-up in the submodules_deinit();
> > > > >    * Moved the drm_crtc_arm_vblank_event() in dcss_crtc_atomic_flush();
> > > > >    * Removed en_completion variable from dcss_crtc since this was
> > > > >      introduced mainly to avoid vblank timeout warnings which were fixed
> > > > >      by arming the vblank event in flush() instead of begin();
> > > > >    * Removed clks_on and irq_enabled flags since all the calls to
> > > > >      enabling/disabling clocks and interrupts were balanced;
> > > > >    * Removed the custom atomic_commit callback and used the DRM core
> > > > >      helper and, in the process, got rid of a workqueue that wasn't
> > > > >      necessary anymore;
> > > > >    * Fixed some minor DT binding issues flagged by Philipp;
> > > > >    * Some other minor changes suggested by Lucas;
> > > > >  * Removed YUV formats from the supported formats as these cannot work
> > > > >    without the HDR10 module CSCs and LUTs. Will add them back when I
> > > > >    will add support for video planes;
> > > > > 
> > > > > Changes in v3:
> > > > >  * rebased to latest linux-next and made it compile as drmP.h was
> > > > >    removed;
> > > > >  * removed the patch adding the VIDEO2_PLL clock. It's already applied;
> > > > >  * removed an unnecessary 50ms sleep in the dcss_dtg_sync_set();
> > > > >  * fixed a a spurious hang reported by Lukas Hartmann and encountered
> > > > >    by me several times;
> > > > >  * mask DPR and DTG interrupts by default, as they may come enabled from
> > > > >    U-boot;
> > > > > 
> > > > > Changes in v2:
> > > > >  * Removed '0x' in node's unit-address both in DT and yaml;
> > > > >  * Made the address region size lowercase, to be consistent;
> > > > >  * Removed some left-over references to P010;
> > > > >  * Added a Kconfig dependency of DRM && ARCH_MXC. This will also silence compilation
> > > > >    issues reported by kbuild for other architectures;
> > > > > 
> > > > > Laurentiu Palcu (5):
> > > > >   drm/imx: compile imx directory by default
> > > > >   drm/imx: Add initial support for DCSS on iMX8MQ
> > > > >   drm/imx/dcss: add component framework functionality
> > > > >   dt-bindings: display: imx: add bindings for DCSS
> > > > >   arm64: dts: imx8mq: add DCSS node
> > > > > 
> > > > >  .../bindings/display/imx/nxp,imx8mq-dcss.yaml |  84 ++
> > > > >  arch/arm64/boot/dts/freescale/imx8mq.dtsi     |  23 +
> > > > >  drivers/gpu/drm/Makefile                      |   2 +-
> > > > >  drivers/gpu/drm/imx/Kconfig                   |   2 +
> > > > >  drivers/gpu/drm/imx/Makefile                  |   1 +
> > > > >  drivers/gpu/drm/imx/dcss/Kconfig              |   9 +
> > > > >  drivers/gpu/drm/imx/dcss/Makefile             |   6 +
> > > > >  drivers/gpu/drm/imx/dcss/dcss-blkctl.c        |  70 ++
> > > > >  drivers/gpu/drm/imx/dcss/dcss-crtc.c          | 219 +++++
> > > > >  drivers/gpu/drm/imx/dcss/dcss-ctxld.c         | 424 +++++++++
> > > > >  drivers/gpu/drm/imx/dcss/dcss-dev.c           | 314 +++++++
> > > > >  drivers/gpu/drm/imx/dcss/dcss-dev.h           | 177 ++++
> > > > >  drivers/gpu/drm/imx/dcss/dcss-dpr.c           | 562 ++++++++++++
> > > > >  drivers/gpu/drm/imx/dcss/dcss-drv.c           | 183 ++++
> > > > >  drivers/gpu/drm/imx/dcss/dcss-dtg.c           | 409 +++++++++
> > > > >  drivers/gpu/drm/imx/dcss/dcss-kms.c           | 185 ++++
> > > > >  drivers/gpu/drm/imx/dcss/dcss-kms.h           |  43 +
> > > > >  drivers/gpu/drm/imx/dcss/dcss-plane.c         | 405 +++++++++
> > > > >  drivers/gpu/drm/imx/dcss/dcss-scaler.c        | 826 ++++++++++++++++++
> > > > >  drivers/gpu/drm/imx/dcss/dcss-ss.c            | 180 ++++
> > > > >  20 files changed, 4123 insertions(+), 1 deletion(-)
> > > > >  create mode 100644 Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml
> > > > >  create mode 100644 drivers/gpu/drm/imx/dcss/Kconfig
> > > > >  create mode 100644 drivers/gpu/drm/imx/dcss/Makefile
> > > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-blkctl.c
> > > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-crtc.c
> > > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-ctxld.c
> > > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dev.c
> > > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dev.h
> > > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dpr.c
> > > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-drv.c
> > > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-dtg.c
> > > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-kms.c
> > > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-kms.h
> > > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-plane.c
> > > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-scaler.c
> > > > >  create mode 100644 drivers/gpu/drm/imx/dcss/dcss-ss.c
> > > > > 
> > > > 
> > > > _______________________________________________
> > > > dri-devel mailing list
> > > > dri-devel@lists.freedesktop.org
> > > > https://lists.freedesktop.org/mailman/listinfo/dri-devel
> > > 
> > > 
> > 
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem
  2020-07-17  9:45         ` Laurentiu Palcu
@ 2020-07-17 10:50           ` Lucas Stach
  2020-07-17 12:12             ` Daniel Vetter
  0 siblings, 1 reply; 12+ messages in thread
From: Lucas Stach @ 2020-07-17 10:50 UTC (permalink / raw)
  To: Laurentiu Palcu, Philipp Zabel, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, Laurentiu Palcu, dri-devel,
	Linux ARM, devicetree, Guido Günther, lukas,
	Linux Kernel Mailing List

Am Freitag, den 17.07.2020, 12:45 +0300 schrieb Laurentiu Palcu:
> Hi Lukas and Daniel,
> 
> On Fri, Jul 17, 2020 at 11:27:58AM +0200, Daniel Vetter wrote:
> > On Fri, Jul 17, 2020 at 11:12:39AM +0200, Lucas Stach wrote:
> > > Am Freitag, den 17.07.2020, 10:59 +0200 schrieb Daniel Vetter:
> > > > On Fri, Jul 17, 2020 at 10:18 AM Lucas Stach <l.stach@pengutronix.de> wrote:
> > > > > Hi Laurentiu,
> > > > > 
> > > > > Am Donnerstag, den 09.07.2020, 19:47 +0300 schrieb Laurentiu Palcu:
> > > > > > From: Laurentiu Palcu <laurentiu.palcu@nxp.com>
> > > > > > 
> > > > > > Hi,
> > > > > > 
> > > > > > This patchset adds initial DCSS support for iMX8MQ chip. Initial support
> > > > > > includes only graphics plane support (no video planes), no HDR10 capabilities,
> > > > > > no graphics decompression (only linear, tiled and super-tiled buffers allowed).
> > > > > > 
> > > > > > Support for the rest of the features will be added incrementally, in subsequent
> > > > > > patches.
> > > > > > 
> > > > > > The patchset was tested with both HDP driver (in the downstream tree) and the upstream
> > > > > > MIPI-DSI driver (with a couple of patches on top, to make it work correctly with DCSS).
> > > > > 
> > > > > I think the series (minus 3/5 and minor correction to the DT binding)
> > > > > is fine to go in now. So just some formal questions: are you going to
> > > > > maintain this driver in upstream? If so we should add a MAINTAINERS
> > > > > entry to that effect. I can offer to act as a reviewer in this case.
> 
> I can maintain the DCSS driver, sure, and the more reviewers the better.
> Thanks for helping out with this. Should I send a v6 then with a patch
> for MAINTAINERS?
> 
> > > > > How do you intend to merge this? IMO pushing this through drm-misc
> > > > > seems like the right thing to do. If you agree I can help you get this
> > > > > applied. If you are going to maintain the driver on your own, I think
> > > > > you should then apply for commit rights to drm-misc.
> > > > 
> > > > drm/imx isn't listed yet as under the drm-misc umbrella, maybe we
> > > > should put the entire collective of imx drivers under drm-misc? Or
> > > > maybe it's just an oversight that the git repo isn't specified in the
> > > > MAINTAINERS entry. Also maybe we should add the pengutronix kernel
> > > > team alias there too?
> > > 
> > > drm/imx was exclusively the IPUv3 up until now, which is in fact
> > > maintained outside of drm-misc in its own git tree. This has worked
> > > quite well in the past so even though IPUv3 doesn't see a lot of churn
> > > these days the motivation to change anything to this workflow is quite
> > > low. And yes, the git tree is missing from the MAINTAINERS entry.
> > > 
> > > For the DCSS driver, if it's going to be maintained by NXP, I figured
> > > it might be easier for Laurentiu to push things into drm-misc than set
> > > up a separate public git tree. But IMHO that's fully up to him to
> > > decide.
> > 
> > /me puts on maintainer hat
> > 
> > Much prefer drm-misc over random people playing maintainer and fumbling
> > it. I think the reasonable options are either in the current imx tree, or
> > drm-misc. Standalone tree for these small drivers just doesn't make much
> > sense.
> 
> I don't have anything against either method, though I have to agree I
> like things to be simple. Going through drm-misc sounds simple enough to me. :)
> However, since there is going to be more activity in the DRM IMX area in
> the future, reviving the drm/imx tree, and push all IMX related stuff
> through drm/imx, could make sense as well.

I think drm-misc is the right place then.

Please send a v6 with the following changes:
- drop the component framework patch
- drop the i.MX8MQ DT patch, this should go through Shawn's imx tree
after the driver and binding has landed in drm-misc
- you can add my Reviewed-by to the whole series or I can add it when
applying
- add a MAINTAINERS entry, please add me as a reviewer if you don't
mind

I can push this initial series into drm-misc until you've got your own
commit rights.

Regards,
Lucas


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem
  2020-07-17 10:50           ` Lucas Stach
@ 2020-07-17 12:12             ` Daniel Vetter
  0 siblings, 0 replies; 12+ messages in thread
From: Daniel Vetter @ 2020-07-17 12:12 UTC (permalink / raw)
  To: Lucas Stach
  Cc: devicetree, Philipp Zabel, Fabio Estevam, Guido Günther,
	lukas, Linux Kernel Mailing List, dri-devel, NXP Linux Team,
	Pengutronix Kernel Team, Laurentiu Palcu, Laurentiu Palcu,
	Linux ARM

On Fri, Jul 17, 2020 at 12:51 PM Lucas Stach <l.stach@pengutronix.de> wrote:
>
> Am Freitag, den 17.07.2020, 12:45 +0300 schrieb Laurentiu Palcu:
> > Hi Lukas and Daniel,
> >
> > On Fri, Jul 17, 2020 at 11:27:58AM +0200, Daniel Vetter wrote:
> > > On Fri, Jul 17, 2020 at 11:12:39AM +0200, Lucas Stach wrote:
> > > > Am Freitag, den 17.07.2020, 10:59 +0200 schrieb Daniel Vetter:
> > > > > On Fri, Jul 17, 2020 at 10:18 AM Lucas Stach <l.stach@pengutronix.de> wrote:
> > > > > > Hi Laurentiu,
> > > > > >
> > > > > > Am Donnerstag, den 09.07.2020, 19:47 +0300 schrieb Laurentiu Palcu:
> > > > > > > From: Laurentiu Palcu <laurentiu.palcu@nxp.com>
> > > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > This patchset adds initial DCSS support for iMX8MQ chip. Initial support
> > > > > > > includes only graphics plane support (no video planes), no HDR10 capabilities,
> > > > > > > no graphics decompression (only linear, tiled and super-tiled buffers allowed).
> > > > > > >
> > > > > > > Support for the rest of the features will be added incrementally, in subsequent
> > > > > > > patches.
> > > > > > >
> > > > > > > The patchset was tested with both HDP driver (in the downstream tree) and the upstream
> > > > > > > MIPI-DSI driver (with a couple of patches on top, to make it work correctly with DCSS).
> > > > > >
> > > > > > I think the series (minus 3/5 and minor correction to the DT binding)
> > > > > > is fine to go in now. So just some formal questions: are you going to
> > > > > > maintain this driver in upstream? If so we should add a MAINTAINERS
> > > > > > entry to that effect. I can offer to act as a reviewer in this case.
> >
> > I can maintain the DCSS driver, sure, and the more reviewers the better.
> > Thanks for helping out with this. Should I send a v6 then with a patch
> > for MAINTAINERS?
> >
> > > > > > How do you intend to merge this? IMO pushing this through drm-misc
> > > > > > seems like the right thing to do. If you agree I can help you get this
> > > > > > applied. If you are going to maintain the driver on your own, I think
> > > > > > you should then apply for commit rights to drm-misc.
> > > > >
> > > > > drm/imx isn't listed yet as under the drm-misc umbrella, maybe we
> > > > > should put the entire collective of imx drivers under drm-misc? Or
> > > > > maybe it's just an oversight that the git repo isn't specified in the
> > > > > MAINTAINERS entry. Also maybe we should add the pengutronix kernel
> > > > > team alias there too?
> > > >
> > > > drm/imx was exclusively the IPUv3 up until now, which is in fact
> > > > maintained outside of drm-misc in its own git tree. This has worked
> > > > quite well in the past so even though IPUv3 doesn't see a lot of churn
> > > > these days the motivation to change anything to this workflow is quite
> > > > low. And yes, the git tree is missing from the MAINTAINERS entry.
> > > >
> > > > For the DCSS driver, if it's going to be maintained by NXP, I figured
> > > > it might be easier for Laurentiu to push things into drm-misc than set
> > > > up a separate public git tree. But IMHO that's fully up to him to
> > > > decide.
> > >
> > > /me puts on maintainer hat
> > >
> > > Much prefer drm-misc over random people playing maintainer and fumbling
> > > it. I think the reasonable options are either in the current imx tree, or
> > > drm-misc. Standalone tree for these small drivers just doesn't make much
> > > sense.
> >
> > I don't have anything against either method, though I have to agree I
> > like things to be simple. Going through drm-misc sounds simple enough to me. :)
> > However, since there is going to be more activity in the DRM IMX area in
> > the future, reviving the drm/imx tree, and push all IMX related stuff
> > through drm/imx, could make sense as well.
>
> I think drm-misc is the right place then.
>
> Please send a v6 with the following changes:
> - drop the component framework patch
> - drop the i.MX8MQ DT patch, this should go through Shawn's imx tree
> after the driver and binding has landed in drm-misc
> - you can add my Reviewed-by to the whole series or I can add it when
> applying
> - add a MAINTAINERS entry, please add me as a reviewer if you don't
> mind
>
> I can push this initial series into drm-misc until you've got your own
> commit rights.

For drm-misc howto get started:

https://drm.pages.freedesktop.org/maintainer-tools/getting-started.html

And howto get commit rights:

https://drm.pages.freedesktop.org/maintainer-tools/commit-access.html

Once you have the fd.o bug report to request commit rights pls paste
it here so we can get the ack from drm-misc maintainers.

Cheers, Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2020-07-17 12:14 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-09 16:47 [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem Laurentiu Palcu
2020-07-09 16:47 ` [PATCH v5 3/5] drm/imx/dcss: add component framework functionality Laurentiu Palcu
2020-07-09 16:47 ` [PATCH v5 4/5] dt-bindings: display: imx: add bindings for DCSS Laurentiu Palcu
2020-07-09 22:57   ` Rob Herring
2020-07-09 16:47 ` [PATCH v5 5/5] arm64: dts: imx8mq: add DCSS node Laurentiu Palcu
2020-07-17  8:17 ` [PATCH v5 0/4] Add support for iMX8MQ Display Controller Subsystem Lucas Stach
2020-07-17  8:59   ` Daniel Vetter
2020-07-17  9:12     ` Lucas Stach
2020-07-17  9:27       ` Daniel Vetter
2020-07-17  9:45         ` Laurentiu Palcu
2020-07-17 10:50           ` Lucas Stach
2020-07-17 12:12             ` Daniel Vetter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).