]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop a bunch of drm imx patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2024 09:23:20 +0000 (10:23 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2024 09:23:20 +0000 (10:23 +0100)
They were there for a Kconfig change, which if needed, can come back on
its own.

15 files changed:
queue-6.11/drm-imx-add-missing-drm_bridge_connector-dependency.patch [deleted file]
queue-6.11/drm-imx-ldb-drop-custom-ddc-bus-support.patch [deleted file]
queue-6.11/drm-imx-ldb-drop-custom-edid-support.patch [deleted file]
queue-6.11/drm-imx-ldb-switch-to-drm_panel_bridge.patch [deleted file]
queue-6.11/drm-imx-parallel-display-drop-edid-override-support.patch [deleted file]
queue-6.11/drm-imx-parallel-display-switch-to-drm_panel_bridge.patch [deleted file]
queue-6.11/drm-ipuv3-parallel-convert-to-struct-drm_edid.patch [deleted file]
queue-6.11/series
queue-6.12/drm-imx-add-missing-drm_bridge_connector-dependency.patch [deleted file]
queue-6.12/drm-imx-ldb-drop-custom-ddc-bus-support.patch [deleted file]
queue-6.12/drm-imx-ldb-drop-custom-edid-support.patch [deleted file]
queue-6.12/drm-imx-ldb-switch-to-drm_panel_bridge.patch [deleted file]
queue-6.12/drm-imx-parallel-display-drop-edid-override-support.patch [deleted file]
queue-6.12/drm-imx-parallel-display-switch-to-drm_panel_bridge.patch [deleted file]
queue-6.12/series

diff --git a/queue-6.11/drm-imx-add-missing-drm_bridge_connector-dependency.patch b/queue-6.11/drm-imx-add-missing-drm_bridge_connector-dependency.patch
deleted file mode 100644 (file)
index 9ee1062..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-From 5fe1fd91a3d857c6dc833234974e2b3405f8959f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 6 Sep 2024 08:38:56 +0200
-Subject: drm/imx: Add missing DRM_BRIDGE_CONNECTOR dependency
-
-From: Alexander Stein <alexander.stein@ew.tq-group.com>
-
-[ Upstream commit f673055a46784ccea04465b9213e999f7bc5187e ]
-
-When drm/bridge-connector was moved to DRM_DISPLAY_HELPER not all
-users were updated. Add missing Kconfig selections.
-
-Fixes: 9da7ec9b19d8 ("drm/bridge-connector: move to DRM_DISPLAY_HELPER module")
-Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
-Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
-Link: https://patchwork.freedesktop.org/patch/msgid/20240906063857.2223442-1-alexander.stein@ew.tq-group.com
-Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/imx/ipuv3/Kconfig | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/gpu/drm/imx/ipuv3/Kconfig b/drivers/gpu/drm/imx/ipuv3/Kconfig
-index f083d313d1d3a..7a427551f4341 100644
---- a/drivers/gpu/drm/imx/ipuv3/Kconfig
-+++ b/drivers/gpu/drm/imx/ipuv3/Kconfig
-@@ -13,6 +13,7 @@ config DRM_IMX_PARALLEL_DISPLAY
-       tristate "Support for parallel displays"
-       depends on DRM_IMX
-       select DRM_BRIDGE
-+      select DRM_BRIDGE_CONNECTOR
-       select DRM_PANEL_BRIDGE
-       select VIDEOMODE_HELPERS
-@@ -31,6 +32,7 @@ config DRM_IMX_LDB
-       depends on COMMON_CLK
-       select MFD_SYSCON
-       select DRM_BRIDGE
-+      select DRM_BRIDGE_CONNECTOR
-       select DRM_PANEL_BRIDGE
-       help
-         Choose this to enable the internal LVDS Display Bridge (LDB)
--- 
-2.43.0
-
diff --git a/queue-6.11/drm-imx-ldb-drop-custom-ddc-bus-support.patch b/queue-6.11/drm-imx-ldb-drop-custom-ddc-bus-support.patch
deleted file mode 100644 (file)
index 955fa4e..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-From fa50925e7146fa5eb1dc6b9c17bd5f84536e855f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 2 Jun 2024 15:04:46 +0300
-Subject: drm/imx: ldb: drop custom DDC bus support
-
-From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-
-[ Upstream commit b2f3418b516e3485a14f10bfc09f20211dedc156 ]
-
-None of the boards ever supported by the upstream kernel used the custom
-DDC bus support with the LDB connector. If a need arises to do so, one
-should use panel-simple and its DDC bus code. Drop ddc-i2c-bus support
-from the imx-ldb driver.
-
-Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
-Tested-by: Chris Healy <cphealy@gmail.com>
-Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # on imx6q-nitrogen6x
-Link: https://patchwork.freedesktop.org/patch/msgid/20240602-drm-imx-cleanup-v3-6-e549e2a43100@linaro.org
-Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-Stable-dep-of: f673055a4678 ("drm/imx: Add missing DRM_BRIDGE_CONNECTOR dependency")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/imx/ipuv3/imx-ldb.c | 73 ++++-------------------------
- 1 file changed, 10 insertions(+), 63 deletions(-)
-
-diff --git a/drivers/gpu/drm/imx/ipuv3/imx-ldb.c b/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-index 1924d8921c620..3f669604377e7 100644
---- a/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-+++ b/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-@@ -25,7 +25,6 @@
- #include <drm/drm_atomic.h>
- #include <drm/drm_atomic_helper.h>
- #include <drm/drm_bridge.h>
--#include <drm/drm_edid.h>
- #include <drm/drm_managed.h>
- #include <drm/drm_of.h>
- #include <drm/drm_panel.h>
-@@ -70,7 +69,6 @@ struct imx_ldb_channel {
-       struct drm_bridge *bridge;
-       struct device_node *child;
--      struct i2c_adapter *ddc;
-       int chno;
-       struct drm_display_mode mode;
-       int mode_valid;
-@@ -141,18 +139,6 @@ static int imx_ldb_connector_get_modes(struct drm_connector *connector)
-       if (num_modes > 0)
-               return num_modes;
--      if (imx_ldb_ch->ddc) {
--              const struct drm_edid *edid = drm_edid_read_ddc(connector,
--                                                              imx_ldb_ch->ddc);
--
--              if (edid) {
--                      drm_edid_connector_update(connector, edid);
--                      drm_edid_free(edid);
--
--                      return drm_edid_connector_add_modes(connector);
--              }
--      }
--
-       if (imx_ldb_ch->mode_valid) {
-               struct drm_display_mode *mode;
-@@ -481,10 +467,9 @@ static int imx_ldb_register(struct drm_device *drm,
-                */
-               drm_connector_helper_add(connector,
-                                        &imx_ldb_connector_helper_funcs);
--              drm_connector_init_with_ddc(drm, connector,
--                                          &imx_ldb_connector_funcs,
--                                          DRM_MODE_CONNECTOR_LVDS,
--                                          imx_ldb_ch->ddc);
-+              drm_connector_init(drm, connector,
-+                                 &imx_ldb_connector_funcs,
-+                                 DRM_MODE_CONNECTOR_LVDS);
-               drm_connector_attach_encoder(connector, encoder);
-       }
-@@ -551,39 +536,6 @@ static const struct of_device_id imx_ldb_dt_ids[] = {
- };
- MODULE_DEVICE_TABLE(of, imx_ldb_dt_ids);
--static int imx_ldb_panel_ddc(struct device *dev,
--              struct imx_ldb_channel *channel, struct device_node *child)
--{
--      struct device_node *ddc_node;
--      int ret;
--
--      ddc_node = of_parse_phandle(child, "ddc-i2c-bus", 0);
--      if (ddc_node) {
--              channel->ddc = of_find_i2c_adapter_by_node(ddc_node);
--              of_node_put(ddc_node);
--              if (!channel->ddc) {
--                      dev_warn(dev, "failed to get ddc i2c adapter\n");
--                      return -EPROBE_DEFER;
--              }
--      }
--
--      if (!channel->ddc) {
--              /* if no DDC available, fallback to hardcoded EDID */
--              dev_dbg(dev, "no ddc available\n");
--
--              if (!channel->panel) {
--                      /* fallback to display-timings node */
--                      ret = of_get_drm_display_mode(child,
--                                                    &channel->mode,
--                                                    &channel->bus_flags,
--                                                    OF_USE_NATIVE_MODE);
--                      if (!ret)
--                              channel->mode_valid = 1;
--              }
--      }
--      return 0;
--}
--
- static int imx_ldb_bind(struct device *dev, struct device *master, void *data)
- {
-       struct drm_device *drm = data;
-@@ -694,11 +646,15 @@ static int imx_ldb_probe(struct platform_device *pdev)
-               if (ret && ret != -ENODEV)
-                       goto free_child;
--              /* panel ddc only if there is no bridge */
--              if (!channel->bridge) {
--                      ret = imx_ldb_panel_ddc(dev, channel, child);
-+              if (!channel->bridge && !channel->panel) {
-+                      ret = of_get_drm_display_mode(child,
-+                                                    &channel->mode,
-+                                                    &channel->bus_flags,
-+                                                    OF_USE_NATIVE_MODE);
-                       if (ret)
-                               goto free_child;
-+
-+                      channel->mode_valid = 1;
-               }
-               bus_format = of_get_bus_format(dev, child);
-@@ -732,15 +688,6 @@ static int imx_ldb_probe(struct platform_device *pdev)
- static void imx_ldb_remove(struct platform_device *pdev)
- {
--      struct imx_ldb *imx_ldb = platform_get_drvdata(pdev);
--      int i;
--
--      for (i = 0; i < 2; i++) {
--              struct imx_ldb_channel *channel = &imx_ldb->channel[i];
--
--              i2c_put_adapter(channel->ddc);
--      }
--
-       component_del(&pdev->dev, &imx_ldb_ops);
- }
--- 
-2.43.0
-
diff --git a/queue-6.11/drm-imx-ldb-drop-custom-edid-support.patch b/queue-6.11/drm-imx-ldb-drop-custom-edid-support.patch
deleted file mode 100644 (file)
index 8a2f616..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-From f1406791ede0f09f4623afbe1b68902b3e490aea Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 2 Jun 2024 15:04:45 +0300
-Subject: drm/imx: ldb: drop custom EDID support
-
-From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-
-[ Upstream commit aed7b500315004a917463d571fa9cd12e0e94370 ]
-
-Bindings for the imx-ldb never allowed specifying the EDID in DT. None
-of the existing DT files use it. Drop it now in favour of using debugfs
-overrides or the drm.edid_firmware support.
-
-Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
-Tested-by: Chris Healy <cphealy@gmail.com>
-Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # on imx6q-nitrogen6x
-Link: https://patchwork.freedesktop.org/patch/msgid/20240602-drm-imx-cleanup-v3-5-e549e2a43100@linaro.org
-Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-Stable-dep-of: f673055a4678 ("drm/imx: Add missing DRM_BRIDGE_CONNECTOR dependency")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/imx/ipuv3/imx-ldb.c | 29 +++++++++++------------------
- 1 file changed, 11 insertions(+), 18 deletions(-)
-
-diff --git a/drivers/gpu/drm/imx/ipuv3/imx-ldb.c b/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-index 793dfb1a3ed00..1924d8921c620 100644
---- a/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-+++ b/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-@@ -72,7 +72,6 @@ struct imx_ldb_channel {
-       struct device_node *child;
-       struct i2c_adapter *ddc;
-       int chno;
--      const struct drm_edid *drm_edid;
-       struct drm_display_mode mode;
-       int mode_valid;
-       u32 bus_format;
-@@ -142,14 +141,17 @@ static int imx_ldb_connector_get_modes(struct drm_connector *connector)
-       if (num_modes > 0)
-               return num_modes;
--      if (!imx_ldb_ch->drm_edid && imx_ldb_ch->ddc) {
--              imx_ldb_ch->drm_edid = drm_edid_read_ddc(connector,
--                                                       imx_ldb_ch->ddc);
--              drm_edid_connector_update(connector, imx_ldb_ch->drm_edid);
--      }
-+      if (imx_ldb_ch->ddc) {
-+              const struct drm_edid *edid = drm_edid_read_ddc(connector,
-+                                                              imx_ldb_ch->ddc);
--      if (imx_ldb_ch->drm_edid)
--              num_modes = drm_edid_connector_add_modes(connector);
-+              if (edid) {
-+                      drm_edid_connector_update(connector, edid);
-+                      drm_edid_free(edid);
-+
-+                      return drm_edid_connector_add_modes(connector);
-+              }
-+      }
-       if (imx_ldb_ch->mode_valid) {
-               struct drm_display_mode *mode;
-@@ -566,18 +568,10 @@ static int imx_ldb_panel_ddc(struct device *dev,
-       }
-       if (!channel->ddc) {
--              const void *edidp;
--              int edid_len;
--
-               /* if no DDC available, fallback to hardcoded EDID */
-               dev_dbg(dev, "no ddc available\n");
--              edidp = of_get_property(child, "edid", &edid_len);
--              if (edidp) {
--                      channel->drm_edid = drm_edid_alloc(edidp, edid_len);
--                      if (!channel->drm_edid)
--                              return -ENOMEM;
--              } else if (!channel->panel) {
-+              if (!channel->panel) {
-                       /* fallback to display-timings node */
-                       ret = of_get_drm_display_mode(child,
-                                                     &channel->mode,
-@@ -744,7 +738,6 @@ static void imx_ldb_remove(struct platform_device *pdev)
-       for (i = 0; i < 2; i++) {
-               struct imx_ldb_channel *channel = &imx_ldb->channel[i];
--              drm_edid_free(channel->drm_edid);
-               i2c_put_adapter(channel->ddc);
-       }
--- 
-2.43.0
-
diff --git a/queue-6.11/drm-imx-ldb-switch-to-drm_panel_bridge.patch b/queue-6.11/drm-imx-ldb-switch-to-drm_panel_bridge.patch
deleted file mode 100644 (file)
index 5a26249..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-From 46a3e7a41f394e5fb9357f7ae5994cfa79cba8d0 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 2 Jun 2024 15:04:47 +0300
-Subject: drm/imx: ldb: switch to drm_panel_bridge
-
-From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-
-[ Upstream commit 5c5843b20bbb1e4b4de2359573c20e416b41cb48 ]
-
-Defer panel handling to drm_panel_bridge, unifying codepaths for the
-panel and bridge cases. The MFD_SYSCON symbol is moved to select to
-prevent Kconfig symbol loops.
-
-Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
-Tested-by: Chris Healy <cphealy@gmail.com>
-Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # on imx6q-nitrogen6x
-Link: https://patchwork.freedesktop.org/patch/msgid/20240602-drm-imx-cleanup-v3-7-e549e2a43100@linaro.org
-Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-Stable-dep-of: f673055a4678 ("drm/imx: Add missing DRM_BRIDGE_CONNECTOR dependency")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/imx/ipuv3/Kconfig   |  6 ++--
- drivers/gpu/drm/imx/ipuv3/imx-ldb.c | 44 +++++++++--------------------
- 2 files changed, 18 insertions(+), 32 deletions(-)
-
-diff --git a/drivers/gpu/drm/imx/ipuv3/Kconfig b/drivers/gpu/drm/imx/ipuv3/Kconfig
-index bacf0655ebaf3..6abcf9c833d44 100644
---- a/drivers/gpu/drm/imx/ipuv3/Kconfig
-+++ b/drivers/gpu/drm/imx/ipuv3/Kconfig
-@@ -26,9 +26,11 @@ config DRM_IMX_TVE
- config DRM_IMX_LDB
-       tristate "Support for LVDS displays"
--      depends on DRM_IMX && MFD_SYSCON
-+      depends on DRM_IMX
-       depends on COMMON_CLK
--      select DRM_PANEL
-+      select MFD_SYSCON
-+      select DRM_BRIDGE
-+      select DRM_PANEL_BRIDGE
-       help
-         Choose this to enable the internal LVDS Display Bridge (LDB)
-         found on i.MX53 and i.MX6 processors.
-diff --git a/drivers/gpu/drm/imx/ipuv3/imx-ldb.c b/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-index 3f669604377e7..bc7ad96971308 100644
---- a/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-+++ b/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-@@ -27,7 +27,6 @@
- #include <drm/drm_bridge.h>
- #include <drm/drm_managed.h>
- #include <drm/drm_of.h>
--#include <drm/drm_panel.h>
- #include <drm/drm_print.h>
- #include <drm/drm_probe_helper.h>
- #include <drm/drm_simple_kms_helper.h>
-@@ -64,8 +63,6 @@ struct imx_ldb;
- struct imx_ldb_channel {
-       struct imx_ldb *ldb;
--      /* Defines what is connected to the ldb, only one at a time */
--      struct drm_panel *panel;
-       struct drm_bridge *bridge;
-       struct device_node *child;
-@@ -135,10 +132,6 @@ static int imx_ldb_connector_get_modes(struct drm_connector *connector)
-       struct imx_ldb_channel *imx_ldb_ch = con_to_imx_ldb_ch(connector);
-       int num_modes;
--      num_modes = drm_panel_get_modes(imx_ldb_ch->panel, connector);
--      if (num_modes > 0)
--              return num_modes;
--
-       if (imx_ldb_ch->mode_valid) {
-               struct drm_display_mode *mode;
-@@ -193,8 +186,6 @@ static void imx_ldb_encoder_enable(struct drm_encoder *encoder)
-               return;
-       }
--      drm_panel_prepare(imx_ldb_ch->panel);
--
-       if (dual) {
-               clk_set_parent(ldb->clk_sel[mux], ldb->clk[0]);
-               clk_set_parent(ldb->clk_sel[mux], ldb->clk[1]);
-@@ -233,8 +224,6 @@ static void imx_ldb_encoder_enable(struct drm_encoder *encoder)
-       }
-       regmap_write(ldb->regmap, IOMUXC_GPR2, ldb->ldb_ctrl);
--
--      drm_panel_enable(imx_ldb_ch->panel);
- }
- static void
-@@ -311,8 +300,6 @@ static void imx_ldb_encoder_disable(struct drm_encoder *encoder)
-       int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
-       int mux, ret;
--      drm_panel_disable(imx_ldb_ch->panel);
--
-       if (imx_ldb_ch == &ldb->channel[0] || dual)
-               ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
-       if (imx_ldb_ch == &ldb->channel[1] || dual)
-@@ -346,8 +333,6 @@ static void imx_ldb_encoder_disable(struct drm_encoder *encoder)
-               dev_err(ldb->dev,
-                       "unable to set di%d parent clock to original parent\n",
-                       mux);
--
--      drm_panel_unprepare(imx_ldb_ch->panel);
- }
- static int imx_ldb_encoder_atomic_check(struct drm_encoder *encoder,
-@@ -640,13 +625,15 @@ static int imx_ldb_probe(struct platform_device *pdev)
-                * The output port is port@4 with an external 4-port mux or
-                * port@2 with the internal 2-port mux.
-                */
--              ret = drm_of_find_panel_or_bridge(child,
--                                                imx_ldb->lvds_mux ? 4 : 2, 0,
--                                                &channel->panel, &channel->bridge);
--              if (ret && ret != -ENODEV)
--                      goto free_child;
-+              channel->bridge = devm_drm_of_get_bridge(dev, child,
-+                                              imx_ldb->lvds_mux ? 4 : 2, 0);
-+              if (IS_ERR(channel->bridge)) {
-+                      ret = PTR_ERR(channel->bridge);
-+                      if (ret != -ENODEV)
-+                              goto free_child;
-+
-+                      channel->bridge = NULL;
--              if (!channel->bridge && !channel->panel) {
-                       ret = of_get_drm_display_mode(child,
-                                                     &channel->mode,
-                                                     &channel->bus_flags,
-@@ -658,15 +645,12 @@ static int imx_ldb_probe(struct platform_device *pdev)
-               }
-               bus_format = of_get_bus_format(dev, child);
--              if (bus_format == -EINVAL) {
--                      /*
--                       * If no bus format was specified in the device tree,
--                       * we can still get it from the connected panel later.
--                       */
--                      if (channel->panel && channel->panel->funcs &&
--                          channel->panel->funcs->get_modes)
--                              bus_format = 0;
--              }
-+              /*
-+               * If no bus format was specified in the device tree,
-+               * we can still get it from the connected panel later.
-+               */
-+              if (bus_format == -EINVAL && channel->bridge)
-+                      bus_format = 0;
-               if (bus_format < 0) {
-                       dev_err(dev, "could not determine data mapping: %d\n",
-                               bus_format);
--- 
-2.43.0
-
diff --git a/queue-6.11/drm-imx-parallel-display-drop-edid-override-support.patch b/queue-6.11/drm-imx-parallel-display-drop-edid-override-support.patch
deleted file mode 100644 (file)
index 32393ce..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-From ac5b9f2d40acf8ae5f84ea69d2c3d866a4763567 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 2 Jun 2024 15:04:44 +0300
-Subject: drm/imx: parallel-display: drop edid override support
-
-From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-
-[ Upstream commit fe30fabf229f7542a10dd249079fdb83844a7dba ]
-
-None of the in-kernel DT files ever used edid override with the
-fsl-imx-drm driver. In case the EDID needs to be specified manually, DRM
-core allows one to either override it via the debugfs or to load it via
-request_firmware by using DRM_LOAD_EDID_FIRMWARE. In all other cases
-EDID and/or modes are to be provided as a part of the panel driver.
-
-Drop support for the edid property.
-
-Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
-Acked-by: Rob Herring <robh@kernel.org>
-Tested-by: Chris Healy <cphealy@gmail.com>
-Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # on imx6q-nitrogen6x
-Link: https://patchwork.freedesktop.org/patch/msgid/20240602-drm-imx-cleanup-v3-4-e549e2a43100@linaro.org
-Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-Stable-dep-of: f673055a4678 ("drm/imx: Add missing DRM_BRIDGE_CONNECTOR dependency")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/imx/ipuv3/parallel-display.c | 17 -----------------
- 1 file changed, 17 deletions(-)
-
-diff --git a/drivers/gpu/drm/imx/ipuv3/parallel-display.c b/drivers/gpu/drm/imx/ipuv3/parallel-display.c
-index 91d7808a2d8d3..4d17fb96e77c5 100644
---- a/drivers/gpu/drm/imx/ipuv3/parallel-display.c
-+++ b/drivers/gpu/drm/imx/ipuv3/parallel-display.c
-@@ -16,7 +16,6 @@
- #include <drm/drm_atomic_helper.h>
- #include <drm/drm_bridge.h>
--#include <drm/drm_edid.h>
- #include <drm/drm_managed.h>
- #include <drm/drm_of.h>
- #include <drm/drm_panel.h>
-@@ -34,7 +33,6 @@ struct imx_parallel_display_encoder {
- struct imx_parallel_display {
-       struct device *dev;
--      const struct drm_edid *drm_edid;
-       u32 bus_format;
-       u32 bus_flags;
-       struct drm_display_mode mode;
-@@ -62,11 +60,6 @@ static int imx_pd_connector_get_modes(struct drm_connector *connector)
-       if (num_modes > 0)
-               return num_modes;
--      if (imxpd->drm_edid) {
--              drm_edid_connector_update(connector, imxpd->drm_edid);
--              num_modes = drm_edid_connector_add_modes(connector);
--      }
--
-       if (np) {
-               struct drm_display_mode *mode = drm_mode_create(connector->dev);
-               int ret;
-@@ -312,9 +305,7 @@ static int imx_pd_probe(struct platform_device *pdev)
- {
-       struct device *dev = &pdev->dev;
-       struct device_node *np = dev->of_node;
--      const u8 *edidp;
-       struct imx_parallel_display *imxpd;
--      int edid_len;
-       int ret;
-       u32 bus_format = 0;
-       const char *fmt;
-@@ -329,10 +320,6 @@ static int imx_pd_probe(struct platform_device *pdev)
-       if (ret && ret != -ENODEV)
-               return ret;
--      edidp = of_get_property(np, "edid", &edid_len);
--      if (edidp)
--              imxpd->drm_edid = drm_edid_alloc(edidp, edid_len);
--
-       ret = of_property_read_string(np, "interface-pix-fmt", &fmt);
-       if (!ret) {
-               if (!strcmp(fmt, "rgb24"))
-@@ -355,11 +342,7 @@ static int imx_pd_probe(struct platform_device *pdev)
- static void imx_pd_remove(struct platform_device *pdev)
- {
--      struct imx_parallel_display *imxpd = platform_get_drvdata(pdev);
--
-       component_del(&pdev->dev, &imx_pd_ops);
--
--      drm_edid_free(imxpd->drm_edid);
- }
- static const struct of_device_id imx_pd_dt_ids[] = {
--- 
-2.43.0
-
diff --git a/queue-6.11/drm-imx-parallel-display-switch-to-drm_panel_bridge.patch b/queue-6.11/drm-imx-parallel-display-switch-to-drm_panel_bridge.patch
deleted file mode 100644 (file)
index 433eb24..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-From cfabc9ef646af77071a2c28f4a2a089519b6c385 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 2 Jun 2024 15:04:48 +0300
-Subject: drm/imx: parallel-display: switch to drm_panel_bridge
-
-From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-
-[ Upstream commit 5f6e56d3319d2fd20d4c81b4f0212f4d09d7c1f1 ]
-
-Defer panel handling to drm_panel_bridge, unifying codepaths for the
-panel and bridge cases.
-
-Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
-Tested-by: Chris Healy <cphealy@gmail.com>
-Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # on imx6q-nitrogen6x
-Link: https://patchwork.freedesktop.org/patch/msgid/20240602-drm-imx-cleanup-v3-8-e549e2a43100@linaro.org
-Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-Stable-dep-of: f673055a4678 ("drm/imx: Add missing DRM_BRIDGE_CONNECTOR dependency")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/imx/ipuv3/Kconfig            |  3 +-
- drivers/gpu/drm/imx/ipuv3/parallel-display.c | 36 +++++---------------
- 2 files changed, 10 insertions(+), 29 deletions(-)
-
-diff --git a/drivers/gpu/drm/imx/ipuv3/Kconfig b/drivers/gpu/drm/imx/ipuv3/Kconfig
-index 6abcf9c833d44..f083d313d1d3a 100644
---- a/drivers/gpu/drm/imx/ipuv3/Kconfig
-+++ b/drivers/gpu/drm/imx/ipuv3/Kconfig
-@@ -11,8 +11,9 @@ config DRM_IMX
- config DRM_IMX_PARALLEL_DISPLAY
-       tristate "Support for parallel displays"
--      select DRM_PANEL
-       depends on DRM_IMX
-+      select DRM_BRIDGE
-+      select DRM_PANEL_BRIDGE
-       select VIDEOMODE_HELPERS
- config DRM_IMX_TVE
-diff --git a/drivers/gpu/drm/imx/ipuv3/parallel-display.c b/drivers/gpu/drm/imx/ipuv3/parallel-display.c
-index 4d17fb96e77c5..9ac2a94fa62be 100644
---- a/drivers/gpu/drm/imx/ipuv3/parallel-display.c
-+++ b/drivers/gpu/drm/imx/ipuv3/parallel-display.c
-@@ -18,7 +18,6 @@
- #include <drm/drm_bridge.h>
- #include <drm/drm_managed.h>
- #include <drm/drm_of.h>
--#include <drm/drm_panel.h>
- #include <drm/drm_probe_helper.h>
- #include <drm/drm_simple_kms_helper.h>
-@@ -36,7 +35,6 @@ struct imx_parallel_display {
-       u32 bus_format;
-       u32 bus_flags;
-       struct drm_display_mode mode;
--      struct drm_panel *panel;
-       struct drm_bridge *next_bridge;
- };
-@@ -56,10 +54,6 @@ static int imx_pd_connector_get_modes(struct drm_connector *connector)
-       struct device_node *np = imxpd->dev->of_node;
-       int num_modes;
--      num_modes = drm_panel_get_modes(imxpd->panel, connector);
--      if (num_modes > 0)
--              return num_modes;
--
-       if (np) {
-               struct drm_display_mode *mode = drm_mode_create(connector->dev);
-               int ret;
-@@ -84,22 +78,6 @@ static int imx_pd_connector_get_modes(struct drm_connector *connector)
-       return num_modes;
- }
--static void imx_pd_bridge_enable(struct drm_bridge *bridge)
--{
--      struct imx_parallel_display *imxpd = bridge_to_imxpd(bridge);
--
--      drm_panel_prepare(imxpd->panel);
--      drm_panel_enable(imxpd->panel);
--}
--
--static void imx_pd_bridge_disable(struct drm_bridge *bridge)
--{
--      struct imx_parallel_display *imxpd = bridge_to_imxpd(bridge);
--
--      drm_panel_disable(imxpd->panel);
--      drm_panel_unprepare(imxpd->panel);
--}
--
- static const u32 imx_pd_bus_fmts[] = {
-       MEDIA_BUS_FMT_RGB888_1X24,
-       MEDIA_BUS_FMT_BGR888_1X24,
-@@ -237,8 +215,6 @@ static const struct drm_connector_helper_funcs imx_pd_connector_helper_funcs = {
- };
- static const struct drm_bridge_funcs imx_pd_bridge_funcs = {
--      .enable = imx_pd_bridge_enable,
--      .disable = imx_pd_bridge_disable,
-       .atomic_reset = drm_atomic_helper_bridge_reset,
-       .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
-       .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state,
-@@ -315,10 +291,14 @@ static int imx_pd_probe(struct platform_device *pdev)
-               return -ENOMEM;
-       /* port@1 is the output port */
--      ret = drm_of_find_panel_or_bridge(np, 1, 0, &imxpd->panel,
--                                        &imxpd->next_bridge);
--      if (ret && ret != -ENODEV)
--              return ret;
-+      imxpd->next_bridge = devm_drm_of_get_bridge(dev, np, 1, 0);
-+      if (IS_ERR(imxpd->next_bridge)) {
-+              ret = PTR_ERR(imxpd->next_bridge);
-+              if (ret != -ENODEV)
-+                      return ret;
-+
-+              imxpd->next_bridge = NULL;
-+      }
-       ret = of_property_read_string(np, "interface-pix-fmt", &fmt);
-       if (!ret) {
--- 
-2.43.0
-
diff --git a/queue-6.11/drm-ipuv3-parallel-convert-to-struct-drm_edid.patch b/queue-6.11/drm-ipuv3-parallel-convert-to-struct-drm_edid.patch
deleted file mode 100644 (file)
index cf944f3..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-From 10938cfb9b39cc1e591f1ac2b90297a4305f6d53 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 22 Aug 2024 20:42:51 +0300
-Subject: drm/ipuv3/parallel: convert to struct drm_edid
-
-From: Jani Nikula <jani.nikula@intel.com>
-
-[ Upstream commit 42e08287a3185409a7a1923374a557e04fc36e48 ]
-
-Prefer the struct drm_edid based functions for storing the EDID and
-updating the connector.
-
-Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-Link: https://patchwork.freedesktop.org/patch/msgid/a1698044d556072e79041d69b8702099fd17bd90.1724348429.git.jani.nikula@intel.com
-Signed-off-by: Jani Nikula <jani.nikula@intel.com>
-Stable-dep-of: f673055a4678 ("drm/imx: Add missing DRM_BRIDGE_CONNECTOR dependency")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/imx/ipuv3/parallel-display.c | 14 +++++++++-----
- 1 file changed, 9 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/gpu/drm/imx/ipuv3/parallel-display.c b/drivers/gpu/drm/imx/ipuv3/parallel-display.c
-index 55dedd73f528c..91d7808a2d8d3 100644
---- a/drivers/gpu/drm/imx/ipuv3/parallel-display.c
-+++ b/drivers/gpu/drm/imx/ipuv3/parallel-display.c
-@@ -34,7 +34,7 @@ struct imx_parallel_display_encoder {
- struct imx_parallel_display {
-       struct device *dev;
--      void *edid;
-+      const struct drm_edid *drm_edid;
-       u32 bus_format;
-       u32 bus_flags;
-       struct drm_display_mode mode;
-@@ -62,9 +62,9 @@ static int imx_pd_connector_get_modes(struct drm_connector *connector)
-       if (num_modes > 0)
-               return num_modes;
--      if (imxpd->edid) {
--              drm_connector_update_edid_property(connector, imxpd->edid);
--              num_modes = drm_add_edid_modes(connector, imxpd->edid);
-+      if (imxpd->drm_edid) {
-+              drm_edid_connector_update(connector, imxpd->drm_edid);
-+              num_modes = drm_edid_connector_add_modes(connector);
-       }
-       if (np) {
-@@ -331,7 +331,7 @@ static int imx_pd_probe(struct platform_device *pdev)
-       edidp = of_get_property(np, "edid", &edid_len);
-       if (edidp)
--              imxpd->edid = devm_kmemdup(dev, edidp, edid_len, GFP_KERNEL);
-+              imxpd->drm_edid = drm_edid_alloc(edidp, edid_len);
-       ret = of_property_read_string(np, "interface-pix-fmt", &fmt);
-       if (!ret) {
-@@ -355,7 +355,11 @@ static int imx_pd_probe(struct platform_device *pdev)
- static void imx_pd_remove(struct platform_device *pdev)
- {
-+      struct imx_parallel_display *imxpd = platform_get_drvdata(pdev);
-+
-       component_del(&pdev->dev, &imx_pd_ops);
-+
-+      drm_edid_free(imxpd->drm_edid);
- }
- static const struct of_device_id imx_pd_dt_ids[] = {
--- 
-2.43.0
-
index 9670c369fba66ea564e94c11230381c3503a1cd8..38b329a43bb7aaee951fcdbc15caa7bb8450fc3d 100644 (file)
@@ -224,13 +224,6 @@ udmabuf-change-folios-array-from-kmalloc-to-kvmalloc.patch
 udmabuf-fix-vmap_udmabuf-error-page-set.patch
 drm-imx-dcss-use-irqf_no_autoen-flag-in-request_irq.patch
 drm-imx-ipuv3-use-irqf_no_autoen-flag-in-request_irq.patch
-drm-ipuv3-parallel-convert-to-struct-drm_edid.patch
-drm-imx-parallel-display-drop-edid-override-support.patch
-drm-imx-ldb-drop-custom-edid-support.patch
-drm-imx-ldb-drop-custom-ddc-bus-support.patch
-drm-imx-ldb-switch-to-drm_panel_bridge.patch
-drm-imx-parallel-display-switch-to-drm_panel_bridge.patch
-drm-imx-add-missing-drm_bridge_connector-dependency.patch
 drm-panel-nt35510-make-new-commands-optional.patch
 drm-v3d-address-race-condition-in-mmu-flush.patch
 drm-v3d-flush-the-mmu-before-we-supply-more-memory-t.patch
diff --git a/queue-6.12/drm-imx-add-missing-drm_bridge_connector-dependency.patch b/queue-6.12/drm-imx-add-missing-drm_bridge_connector-dependency.patch
deleted file mode 100644 (file)
index b413a02..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-From 6e6dc43aa7317c932ac4cf44e9cd58fa8375a6db Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 6 Sep 2024 08:38:56 +0200
-Subject: drm/imx: Add missing DRM_BRIDGE_CONNECTOR dependency
-
-From: Alexander Stein <alexander.stein@ew.tq-group.com>
-
-[ Upstream commit f673055a46784ccea04465b9213e999f7bc5187e ]
-
-When drm/bridge-connector was moved to DRM_DISPLAY_HELPER not all
-users were updated. Add missing Kconfig selections.
-
-Fixes: 9da7ec9b19d8 ("drm/bridge-connector: move to DRM_DISPLAY_HELPER module")
-Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
-Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
-Link: https://patchwork.freedesktop.org/patch/msgid/20240906063857.2223442-1-alexander.stein@ew.tq-group.com
-Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/imx/ipuv3/Kconfig | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/gpu/drm/imx/ipuv3/Kconfig b/drivers/gpu/drm/imx/ipuv3/Kconfig
-index f083d313d1d3a..7a427551f4341 100644
---- a/drivers/gpu/drm/imx/ipuv3/Kconfig
-+++ b/drivers/gpu/drm/imx/ipuv3/Kconfig
-@@ -13,6 +13,7 @@ config DRM_IMX_PARALLEL_DISPLAY
-       tristate "Support for parallel displays"
-       depends on DRM_IMX
-       select DRM_BRIDGE
-+      select DRM_BRIDGE_CONNECTOR
-       select DRM_PANEL_BRIDGE
-       select VIDEOMODE_HELPERS
-@@ -31,6 +32,7 @@ config DRM_IMX_LDB
-       depends on COMMON_CLK
-       select MFD_SYSCON
-       select DRM_BRIDGE
-+      select DRM_BRIDGE_CONNECTOR
-       select DRM_PANEL_BRIDGE
-       help
-         Choose this to enable the internal LVDS Display Bridge (LDB)
--- 
-2.43.0
-
diff --git a/queue-6.12/drm-imx-ldb-drop-custom-ddc-bus-support.patch b/queue-6.12/drm-imx-ldb-drop-custom-ddc-bus-support.patch
deleted file mode 100644 (file)
index f028b65..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-From f8525b6c29db9357ffe2d73533cd0cc66b9deefc Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 2 Jun 2024 15:04:46 +0300
-Subject: drm/imx: ldb: drop custom DDC bus support
-
-From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-
-[ Upstream commit b2f3418b516e3485a14f10bfc09f20211dedc156 ]
-
-None of the boards ever supported by the upstream kernel used the custom
-DDC bus support with the LDB connector. If a need arises to do so, one
-should use panel-simple and its DDC bus code. Drop ddc-i2c-bus support
-from the imx-ldb driver.
-
-Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
-Tested-by: Chris Healy <cphealy@gmail.com>
-Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # on imx6q-nitrogen6x
-Link: https://patchwork.freedesktop.org/patch/msgid/20240602-drm-imx-cleanup-v3-6-e549e2a43100@linaro.org
-Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-Stable-dep-of: f673055a4678 ("drm/imx: Add missing DRM_BRIDGE_CONNECTOR dependency")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/imx/ipuv3/imx-ldb.c | 73 ++++-------------------------
- 1 file changed, 10 insertions(+), 63 deletions(-)
-
-diff --git a/drivers/gpu/drm/imx/ipuv3/imx-ldb.c b/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-index 1924d8921c620..3f669604377e7 100644
---- a/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-+++ b/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-@@ -25,7 +25,6 @@
- #include <drm/drm_atomic.h>
- #include <drm/drm_atomic_helper.h>
- #include <drm/drm_bridge.h>
--#include <drm/drm_edid.h>
- #include <drm/drm_managed.h>
- #include <drm/drm_of.h>
- #include <drm/drm_panel.h>
-@@ -70,7 +69,6 @@ struct imx_ldb_channel {
-       struct drm_bridge *bridge;
-       struct device_node *child;
--      struct i2c_adapter *ddc;
-       int chno;
-       struct drm_display_mode mode;
-       int mode_valid;
-@@ -141,18 +139,6 @@ static int imx_ldb_connector_get_modes(struct drm_connector *connector)
-       if (num_modes > 0)
-               return num_modes;
--      if (imx_ldb_ch->ddc) {
--              const struct drm_edid *edid = drm_edid_read_ddc(connector,
--                                                              imx_ldb_ch->ddc);
--
--              if (edid) {
--                      drm_edid_connector_update(connector, edid);
--                      drm_edid_free(edid);
--
--                      return drm_edid_connector_add_modes(connector);
--              }
--      }
--
-       if (imx_ldb_ch->mode_valid) {
-               struct drm_display_mode *mode;
-@@ -481,10 +467,9 @@ static int imx_ldb_register(struct drm_device *drm,
-                */
-               drm_connector_helper_add(connector,
-                                        &imx_ldb_connector_helper_funcs);
--              drm_connector_init_with_ddc(drm, connector,
--                                          &imx_ldb_connector_funcs,
--                                          DRM_MODE_CONNECTOR_LVDS,
--                                          imx_ldb_ch->ddc);
-+              drm_connector_init(drm, connector,
-+                                 &imx_ldb_connector_funcs,
-+                                 DRM_MODE_CONNECTOR_LVDS);
-               drm_connector_attach_encoder(connector, encoder);
-       }
-@@ -551,39 +536,6 @@ static const struct of_device_id imx_ldb_dt_ids[] = {
- };
- MODULE_DEVICE_TABLE(of, imx_ldb_dt_ids);
--static int imx_ldb_panel_ddc(struct device *dev,
--              struct imx_ldb_channel *channel, struct device_node *child)
--{
--      struct device_node *ddc_node;
--      int ret;
--
--      ddc_node = of_parse_phandle(child, "ddc-i2c-bus", 0);
--      if (ddc_node) {
--              channel->ddc = of_find_i2c_adapter_by_node(ddc_node);
--              of_node_put(ddc_node);
--              if (!channel->ddc) {
--                      dev_warn(dev, "failed to get ddc i2c adapter\n");
--                      return -EPROBE_DEFER;
--              }
--      }
--
--      if (!channel->ddc) {
--              /* if no DDC available, fallback to hardcoded EDID */
--              dev_dbg(dev, "no ddc available\n");
--
--              if (!channel->panel) {
--                      /* fallback to display-timings node */
--                      ret = of_get_drm_display_mode(child,
--                                                    &channel->mode,
--                                                    &channel->bus_flags,
--                                                    OF_USE_NATIVE_MODE);
--                      if (!ret)
--                              channel->mode_valid = 1;
--              }
--      }
--      return 0;
--}
--
- static int imx_ldb_bind(struct device *dev, struct device *master, void *data)
- {
-       struct drm_device *drm = data;
-@@ -694,11 +646,15 @@ static int imx_ldb_probe(struct platform_device *pdev)
-               if (ret && ret != -ENODEV)
-                       goto free_child;
--              /* panel ddc only if there is no bridge */
--              if (!channel->bridge) {
--                      ret = imx_ldb_panel_ddc(dev, channel, child);
-+              if (!channel->bridge && !channel->panel) {
-+                      ret = of_get_drm_display_mode(child,
-+                                                    &channel->mode,
-+                                                    &channel->bus_flags,
-+                                                    OF_USE_NATIVE_MODE);
-                       if (ret)
-                               goto free_child;
-+
-+                      channel->mode_valid = 1;
-               }
-               bus_format = of_get_bus_format(dev, child);
-@@ -732,15 +688,6 @@ static int imx_ldb_probe(struct platform_device *pdev)
- static void imx_ldb_remove(struct platform_device *pdev)
- {
--      struct imx_ldb *imx_ldb = platform_get_drvdata(pdev);
--      int i;
--
--      for (i = 0; i < 2; i++) {
--              struct imx_ldb_channel *channel = &imx_ldb->channel[i];
--
--              i2c_put_adapter(channel->ddc);
--      }
--
-       component_del(&pdev->dev, &imx_ldb_ops);
- }
--- 
-2.43.0
-
diff --git a/queue-6.12/drm-imx-ldb-drop-custom-edid-support.patch b/queue-6.12/drm-imx-ldb-drop-custom-edid-support.patch
deleted file mode 100644 (file)
index fe53fc2..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-From 88b0e939aca406bfd89f9af70eb1b1d87b6914d6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 2 Jun 2024 15:04:45 +0300
-Subject: drm/imx: ldb: drop custom EDID support
-
-From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-
-[ Upstream commit aed7b500315004a917463d571fa9cd12e0e94370 ]
-
-Bindings for the imx-ldb never allowed specifying the EDID in DT. None
-of the existing DT files use it. Drop it now in favour of using debugfs
-overrides or the drm.edid_firmware support.
-
-Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
-Tested-by: Chris Healy <cphealy@gmail.com>
-Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # on imx6q-nitrogen6x
-Link: https://patchwork.freedesktop.org/patch/msgid/20240602-drm-imx-cleanup-v3-5-e549e2a43100@linaro.org
-Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-Stable-dep-of: f673055a4678 ("drm/imx: Add missing DRM_BRIDGE_CONNECTOR dependency")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/imx/ipuv3/imx-ldb.c | 29 +++++++++++------------------
- 1 file changed, 11 insertions(+), 18 deletions(-)
-
-diff --git a/drivers/gpu/drm/imx/ipuv3/imx-ldb.c b/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-index 793dfb1a3ed00..1924d8921c620 100644
---- a/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-+++ b/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-@@ -72,7 +72,6 @@ struct imx_ldb_channel {
-       struct device_node *child;
-       struct i2c_adapter *ddc;
-       int chno;
--      const struct drm_edid *drm_edid;
-       struct drm_display_mode mode;
-       int mode_valid;
-       u32 bus_format;
-@@ -142,14 +141,17 @@ static int imx_ldb_connector_get_modes(struct drm_connector *connector)
-       if (num_modes > 0)
-               return num_modes;
--      if (!imx_ldb_ch->drm_edid && imx_ldb_ch->ddc) {
--              imx_ldb_ch->drm_edid = drm_edid_read_ddc(connector,
--                                                       imx_ldb_ch->ddc);
--              drm_edid_connector_update(connector, imx_ldb_ch->drm_edid);
--      }
-+      if (imx_ldb_ch->ddc) {
-+              const struct drm_edid *edid = drm_edid_read_ddc(connector,
-+                                                              imx_ldb_ch->ddc);
--      if (imx_ldb_ch->drm_edid)
--              num_modes = drm_edid_connector_add_modes(connector);
-+              if (edid) {
-+                      drm_edid_connector_update(connector, edid);
-+                      drm_edid_free(edid);
-+
-+                      return drm_edid_connector_add_modes(connector);
-+              }
-+      }
-       if (imx_ldb_ch->mode_valid) {
-               struct drm_display_mode *mode;
-@@ -566,18 +568,10 @@ static int imx_ldb_panel_ddc(struct device *dev,
-       }
-       if (!channel->ddc) {
--              const void *edidp;
--              int edid_len;
--
-               /* if no DDC available, fallback to hardcoded EDID */
-               dev_dbg(dev, "no ddc available\n");
--              edidp = of_get_property(child, "edid", &edid_len);
--              if (edidp) {
--                      channel->drm_edid = drm_edid_alloc(edidp, edid_len);
--                      if (!channel->drm_edid)
--                              return -ENOMEM;
--              } else if (!channel->panel) {
-+              if (!channel->panel) {
-                       /* fallback to display-timings node */
-                       ret = of_get_drm_display_mode(child,
-                                                     &channel->mode,
-@@ -744,7 +738,6 @@ static void imx_ldb_remove(struct platform_device *pdev)
-       for (i = 0; i < 2; i++) {
-               struct imx_ldb_channel *channel = &imx_ldb->channel[i];
--              drm_edid_free(channel->drm_edid);
-               i2c_put_adapter(channel->ddc);
-       }
--- 
-2.43.0
-
diff --git a/queue-6.12/drm-imx-ldb-switch-to-drm_panel_bridge.patch b/queue-6.12/drm-imx-ldb-switch-to-drm_panel_bridge.patch
deleted file mode 100644 (file)
index de9f423..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-From 85ce007c2e40611b1823b5e8406c69f97b8d0f9e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 2 Jun 2024 15:04:47 +0300
-Subject: drm/imx: ldb: switch to drm_panel_bridge
-
-From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-
-[ Upstream commit 5c5843b20bbb1e4b4de2359573c20e416b41cb48 ]
-
-Defer panel handling to drm_panel_bridge, unifying codepaths for the
-panel and bridge cases. The MFD_SYSCON symbol is moved to select to
-prevent Kconfig symbol loops.
-
-Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
-Tested-by: Chris Healy <cphealy@gmail.com>
-Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # on imx6q-nitrogen6x
-Link: https://patchwork.freedesktop.org/patch/msgid/20240602-drm-imx-cleanup-v3-7-e549e2a43100@linaro.org
-Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-Stable-dep-of: f673055a4678 ("drm/imx: Add missing DRM_BRIDGE_CONNECTOR dependency")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/imx/ipuv3/Kconfig   |  6 ++--
- drivers/gpu/drm/imx/ipuv3/imx-ldb.c | 44 +++++++++--------------------
- 2 files changed, 18 insertions(+), 32 deletions(-)
-
-diff --git a/drivers/gpu/drm/imx/ipuv3/Kconfig b/drivers/gpu/drm/imx/ipuv3/Kconfig
-index bacf0655ebaf3..6abcf9c833d44 100644
---- a/drivers/gpu/drm/imx/ipuv3/Kconfig
-+++ b/drivers/gpu/drm/imx/ipuv3/Kconfig
-@@ -26,9 +26,11 @@ config DRM_IMX_TVE
- config DRM_IMX_LDB
-       tristate "Support for LVDS displays"
--      depends on DRM_IMX && MFD_SYSCON
-+      depends on DRM_IMX
-       depends on COMMON_CLK
--      select DRM_PANEL
-+      select MFD_SYSCON
-+      select DRM_BRIDGE
-+      select DRM_PANEL_BRIDGE
-       help
-         Choose this to enable the internal LVDS Display Bridge (LDB)
-         found on i.MX53 and i.MX6 processors.
-diff --git a/drivers/gpu/drm/imx/ipuv3/imx-ldb.c b/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-index 3f669604377e7..bc7ad96971308 100644
---- a/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-+++ b/drivers/gpu/drm/imx/ipuv3/imx-ldb.c
-@@ -27,7 +27,6 @@
- #include <drm/drm_bridge.h>
- #include <drm/drm_managed.h>
- #include <drm/drm_of.h>
--#include <drm/drm_panel.h>
- #include <drm/drm_print.h>
- #include <drm/drm_probe_helper.h>
- #include <drm/drm_simple_kms_helper.h>
-@@ -64,8 +63,6 @@ struct imx_ldb;
- struct imx_ldb_channel {
-       struct imx_ldb *ldb;
--      /* Defines what is connected to the ldb, only one at a time */
--      struct drm_panel *panel;
-       struct drm_bridge *bridge;
-       struct device_node *child;
-@@ -135,10 +132,6 @@ static int imx_ldb_connector_get_modes(struct drm_connector *connector)
-       struct imx_ldb_channel *imx_ldb_ch = con_to_imx_ldb_ch(connector);
-       int num_modes;
--      num_modes = drm_panel_get_modes(imx_ldb_ch->panel, connector);
--      if (num_modes > 0)
--              return num_modes;
--
-       if (imx_ldb_ch->mode_valid) {
-               struct drm_display_mode *mode;
-@@ -193,8 +186,6 @@ static void imx_ldb_encoder_enable(struct drm_encoder *encoder)
-               return;
-       }
--      drm_panel_prepare(imx_ldb_ch->panel);
--
-       if (dual) {
-               clk_set_parent(ldb->clk_sel[mux], ldb->clk[0]);
-               clk_set_parent(ldb->clk_sel[mux], ldb->clk[1]);
-@@ -233,8 +224,6 @@ static void imx_ldb_encoder_enable(struct drm_encoder *encoder)
-       }
-       regmap_write(ldb->regmap, IOMUXC_GPR2, ldb->ldb_ctrl);
--
--      drm_panel_enable(imx_ldb_ch->panel);
- }
- static void
-@@ -311,8 +300,6 @@ static void imx_ldb_encoder_disable(struct drm_encoder *encoder)
-       int dual = ldb->ldb_ctrl & LDB_SPLIT_MODE_EN;
-       int mux, ret;
--      drm_panel_disable(imx_ldb_ch->panel);
--
-       if (imx_ldb_ch == &ldb->channel[0] || dual)
-               ldb->ldb_ctrl &= ~LDB_CH0_MODE_EN_MASK;
-       if (imx_ldb_ch == &ldb->channel[1] || dual)
-@@ -346,8 +333,6 @@ static void imx_ldb_encoder_disable(struct drm_encoder *encoder)
-               dev_err(ldb->dev,
-                       "unable to set di%d parent clock to original parent\n",
-                       mux);
--
--      drm_panel_unprepare(imx_ldb_ch->panel);
- }
- static int imx_ldb_encoder_atomic_check(struct drm_encoder *encoder,
-@@ -640,13 +625,15 @@ static int imx_ldb_probe(struct platform_device *pdev)
-                * The output port is port@4 with an external 4-port mux or
-                * port@2 with the internal 2-port mux.
-                */
--              ret = drm_of_find_panel_or_bridge(child,
--                                                imx_ldb->lvds_mux ? 4 : 2, 0,
--                                                &channel->panel, &channel->bridge);
--              if (ret && ret != -ENODEV)
--                      goto free_child;
-+              channel->bridge = devm_drm_of_get_bridge(dev, child,
-+                                              imx_ldb->lvds_mux ? 4 : 2, 0);
-+              if (IS_ERR(channel->bridge)) {
-+                      ret = PTR_ERR(channel->bridge);
-+                      if (ret != -ENODEV)
-+                              goto free_child;
-+
-+                      channel->bridge = NULL;
--              if (!channel->bridge && !channel->panel) {
-                       ret = of_get_drm_display_mode(child,
-                                                     &channel->mode,
-                                                     &channel->bus_flags,
-@@ -658,15 +645,12 @@ static int imx_ldb_probe(struct platform_device *pdev)
-               }
-               bus_format = of_get_bus_format(dev, child);
--              if (bus_format == -EINVAL) {
--                      /*
--                       * If no bus format was specified in the device tree,
--                       * we can still get it from the connected panel later.
--                       */
--                      if (channel->panel && channel->panel->funcs &&
--                          channel->panel->funcs->get_modes)
--                              bus_format = 0;
--              }
-+              /*
-+               * If no bus format was specified in the device tree,
-+               * we can still get it from the connected panel later.
-+               */
-+              if (bus_format == -EINVAL && channel->bridge)
-+                      bus_format = 0;
-               if (bus_format < 0) {
-                       dev_err(dev, "could not determine data mapping: %d\n",
-                               bus_format);
--- 
-2.43.0
-
diff --git a/queue-6.12/drm-imx-parallel-display-drop-edid-override-support.patch b/queue-6.12/drm-imx-parallel-display-drop-edid-override-support.patch
deleted file mode 100644 (file)
index ebf5df3..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-From 8446ec5be2445171bb392c4d51ad46e10b17013d Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 2 Jun 2024 15:04:44 +0300
-Subject: drm/imx: parallel-display: drop edid override support
-
-From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-
-[ Upstream commit fe30fabf229f7542a10dd249079fdb83844a7dba ]
-
-None of the in-kernel DT files ever used edid override with the
-fsl-imx-drm driver. In case the EDID needs to be specified manually, DRM
-core allows one to either override it via the debugfs or to load it via
-request_firmware by using DRM_LOAD_EDID_FIRMWARE. In all other cases
-EDID and/or modes are to be provided as a part of the panel driver.
-
-Drop support for the edid property.
-
-Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
-Acked-by: Rob Herring <robh@kernel.org>
-Tested-by: Chris Healy <cphealy@gmail.com>
-Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # on imx6q-nitrogen6x
-Link: https://patchwork.freedesktop.org/patch/msgid/20240602-drm-imx-cleanup-v3-4-e549e2a43100@linaro.org
-Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-Stable-dep-of: f673055a4678 ("drm/imx: Add missing DRM_BRIDGE_CONNECTOR dependency")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/imx/ipuv3/parallel-display.c | 17 -----------------
- 1 file changed, 17 deletions(-)
-
-diff --git a/drivers/gpu/drm/imx/ipuv3/parallel-display.c b/drivers/gpu/drm/imx/ipuv3/parallel-display.c
-index 91d7808a2d8d3..4d17fb96e77c5 100644
---- a/drivers/gpu/drm/imx/ipuv3/parallel-display.c
-+++ b/drivers/gpu/drm/imx/ipuv3/parallel-display.c
-@@ -16,7 +16,6 @@
- #include <drm/drm_atomic_helper.h>
- #include <drm/drm_bridge.h>
--#include <drm/drm_edid.h>
- #include <drm/drm_managed.h>
- #include <drm/drm_of.h>
- #include <drm/drm_panel.h>
-@@ -34,7 +33,6 @@ struct imx_parallel_display_encoder {
- struct imx_parallel_display {
-       struct device *dev;
--      const struct drm_edid *drm_edid;
-       u32 bus_format;
-       u32 bus_flags;
-       struct drm_display_mode mode;
-@@ -62,11 +60,6 @@ static int imx_pd_connector_get_modes(struct drm_connector *connector)
-       if (num_modes > 0)
-               return num_modes;
--      if (imxpd->drm_edid) {
--              drm_edid_connector_update(connector, imxpd->drm_edid);
--              num_modes = drm_edid_connector_add_modes(connector);
--      }
--
-       if (np) {
-               struct drm_display_mode *mode = drm_mode_create(connector->dev);
-               int ret;
-@@ -312,9 +305,7 @@ static int imx_pd_probe(struct platform_device *pdev)
- {
-       struct device *dev = &pdev->dev;
-       struct device_node *np = dev->of_node;
--      const u8 *edidp;
-       struct imx_parallel_display *imxpd;
--      int edid_len;
-       int ret;
-       u32 bus_format = 0;
-       const char *fmt;
-@@ -329,10 +320,6 @@ static int imx_pd_probe(struct platform_device *pdev)
-       if (ret && ret != -ENODEV)
-               return ret;
--      edidp = of_get_property(np, "edid", &edid_len);
--      if (edidp)
--              imxpd->drm_edid = drm_edid_alloc(edidp, edid_len);
--
-       ret = of_property_read_string(np, "interface-pix-fmt", &fmt);
-       if (!ret) {
-               if (!strcmp(fmt, "rgb24"))
-@@ -355,11 +342,7 @@ static int imx_pd_probe(struct platform_device *pdev)
- static void imx_pd_remove(struct platform_device *pdev)
- {
--      struct imx_parallel_display *imxpd = platform_get_drvdata(pdev);
--
-       component_del(&pdev->dev, &imx_pd_ops);
--
--      drm_edid_free(imxpd->drm_edid);
- }
- static const struct of_device_id imx_pd_dt_ids[] = {
--- 
-2.43.0
-
diff --git a/queue-6.12/drm-imx-parallel-display-switch-to-drm_panel_bridge.patch b/queue-6.12/drm-imx-parallel-display-switch-to-drm_panel_bridge.patch
deleted file mode 100644 (file)
index d2074aa..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-From 5033af6707f6d993fcd65b3b24d84829edc7fb53 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Sun, 2 Jun 2024 15:04:48 +0300
-Subject: drm/imx: parallel-display: switch to drm_panel_bridge
-
-From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-
-[ Upstream commit 5f6e56d3319d2fd20d4c81b4f0212f4d09d7c1f1 ]
-
-Defer panel handling to drm_panel_bridge, unifying codepaths for the
-panel and bridge cases.
-
-Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
-Tested-by: Chris Healy <cphealy@gmail.com>
-Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # on imx6q-nitrogen6x
-Link: https://patchwork.freedesktop.org/patch/msgid/20240602-drm-imx-cleanup-v3-8-e549e2a43100@linaro.org
-Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-Stable-dep-of: f673055a4678 ("drm/imx: Add missing DRM_BRIDGE_CONNECTOR dependency")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/gpu/drm/imx/ipuv3/Kconfig            |  3 +-
- drivers/gpu/drm/imx/ipuv3/parallel-display.c | 36 +++++---------------
- 2 files changed, 10 insertions(+), 29 deletions(-)
-
-diff --git a/drivers/gpu/drm/imx/ipuv3/Kconfig b/drivers/gpu/drm/imx/ipuv3/Kconfig
-index 6abcf9c833d44..f083d313d1d3a 100644
---- a/drivers/gpu/drm/imx/ipuv3/Kconfig
-+++ b/drivers/gpu/drm/imx/ipuv3/Kconfig
-@@ -11,8 +11,9 @@ config DRM_IMX
- config DRM_IMX_PARALLEL_DISPLAY
-       tristate "Support for parallel displays"
--      select DRM_PANEL
-       depends on DRM_IMX
-+      select DRM_BRIDGE
-+      select DRM_PANEL_BRIDGE
-       select VIDEOMODE_HELPERS
- config DRM_IMX_TVE
-diff --git a/drivers/gpu/drm/imx/ipuv3/parallel-display.c b/drivers/gpu/drm/imx/ipuv3/parallel-display.c
-index 4d17fb96e77c5..9ac2a94fa62be 100644
---- a/drivers/gpu/drm/imx/ipuv3/parallel-display.c
-+++ b/drivers/gpu/drm/imx/ipuv3/parallel-display.c
-@@ -18,7 +18,6 @@
- #include <drm/drm_bridge.h>
- #include <drm/drm_managed.h>
- #include <drm/drm_of.h>
--#include <drm/drm_panel.h>
- #include <drm/drm_probe_helper.h>
- #include <drm/drm_simple_kms_helper.h>
-@@ -36,7 +35,6 @@ struct imx_parallel_display {
-       u32 bus_format;
-       u32 bus_flags;
-       struct drm_display_mode mode;
--      struct drm_panel *panel;
-       struct drm_bridge *next_bridge;
- };
-@@ -56,10 +54,6 @@ static int imx_pd_connector_get_modes(struct drm_connector *connector)
-       struct device_node *np = imxpd->dev->of_node;
-       int num_modes;
--      num_modes = drm_panel_get_modes(imxpd->panel, connector);
--      if (num_modes > 0)
--              return num_modes;
--
-       if (np) {
-               struct drm_display_mode *mode = drm_mode_create(connector->dev);
-               int ret;
-@@ -84,22 +78,6 @@ static int imx_pd_connector_get_modes(struct drm_connector *connector)
-       return num_modes;
- }
--static void imx_pd_bridge_enable(struct drm_bridge *bridge)
--{
--      struct imx_parallel_display *imxpd = bridge_to_imxpd(bridge);
--
--      drm_panel_prepare(imxpd->panel);
--      drm_panel_enable(imxpd->panel);
--}
--
--static void imx_pd_bridge_disable(struct drm_bridge *bridge)
--{
--      struct imx_parallel_display *imxpd = bridge_to_imxpd(bridge);
--
--      drm_panel_disable(imxpd->panel);
--      drm_panel_unprepare(imxpd->panel);
--}
--
- static const u32 imx_pd_bus_fmts[] = {
-       MEDIA_BUS_FMT_RGB888_1X24,
-       MEDIA_BUS_FMT_BGR888_1X24,
-@@ -237,8 +215,6 @@ static const struct drm_connector_helper_funcs imx_pd_connector_helper_funcs = {
- };
- static const struct drm_bridge_funcs imx_pd_bridge_funcs = {
--      .enable = imx_pd_bridge_enable,
--      .disable = imx_pd_bridge_disable,
-       .atomic_reset = drm_atomic_helper_bridge_reset,
-       .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
-       .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state,
-@@ -315,10 +291,14 @@ static int imx_pd_probe(struct platform_device *pdev)
-               return -ENOMEM;
-       /* port@1 is the output port */
--      ret = drm_of_find_panel_or_bridge(np, 1, 0, &imxpd->panel,
--                                        &imxpd->next_bridge);
--      if (ret && ret != -ENODEV)
--              return ret;
-+      imxpd->next_bridge = devm_drm_of_get_bridge(dev, np, 1, 0);
-+      if (IS_ERR(imxpd->next_bridge)) {
-+              ret = PTR_ERR(imxpd->next_bridge);
-+              if (ret != -ENODEV)
-+                      return ret;
-+
-+              imxpd->next_bridge = NULL;
-+      }
-       ret = of_property_read_string(np, "interface-pix-fmt", &fmt);
-       if (!ret) {
--- 
-2.43.0
-
index 21357158968dfb7b5c660099482ac299946853f4..b342abe9cd30666091e4e0ae628d0d72162bc6bf 100644 (file)
@@ -191,12 +191,6 @@ udmabuf-change-folios-array-from-kmalloc-to-kvmalloc.patch
 udmabuf-fix-vmap_udmabuf-error-page-set.patch
 drm-imx-dcss-use-irqf_no_autoen-flag-in-request_irq.patch
 drm-imx-ipuv3-use-irqf_no_autoen-flag-in-request_irq.patch
-drm-imx-parallel-display-drop-edid-override-support.patch
-drm-imx-ldb-drop-custom-edid-support.patch
-drm-imx-ldb-drop-custom-ddc-bus-support.patch
-drm-imx-ldb-switch-to-drm_panel_bridge.patch
-drm-imx-parallel-display-switch-to-drm_panel_bridge.patch
-drm-imx-add-missing-drm_bridge_connector-dependency.patch
 drm-panel-nt35510-make-new-commands-optional.patch
 drm-v3d-address-race-condition-in-mmu-flush.patch
 drm-v3d-flush-the-mmu-before-we-supply-more-memory-t.patch