All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sam Ravnborg <sam@ravnborg.org>
To: Jagan Teki <jagan@amarulasolutions.com>
Cc: Inki Dae <inki.dae@samsung.com>,
	Joonyoung Shim <jy0922.shim@samsung.com>,
	Seung-Woo Kim <sw0312.kim@samsung.com>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	Andrzej Hajda <a.hajda@samsung.com>,
	Neil Armstrong <narmstrong@baylibre.com>,
	Robert Foss <robert.foss@linaro.org>,
	Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
	Frieder Schrempf <frieder.schrempf@kontron.de>,
	Daniel Vetter <daniel.vetter@intel.com>,
	Marek Vasut <marex@denx.de>,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Fabio Estevam <festevam@gmail.com>,
	devicetree@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
	dri-devel@lists.freedesktop.org,
	NXP Linux Team <linux-imx@nxp.com>,
	linux-amarula <linux-amarula@amarulasolutions.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [RFC PATCH 01/17] drm/exynos: dsi: Convert to bridge driver
Date: Sun, 25 Jul 2021 19:08:26 +0200	[thread overview]
Message-ID: <YP2aiv3kQXMh3wLd@ravnborg.org> (raw)
In-Reply-To: <20210704090230.26489-2-jagan@amarulasolutions.com>

Hi Jagan,

See a few comments below.

	Sam

On Sun, Jul 04, 2021 at 02:32:14PM +0530, Jagan Teki wrote:
> DRM bridge drivers have built-in handling of treating
> all display pipeline components as bridges.
> 
> Convert exynos_drm_dsi to a bridge driver with built-in
> encoder support for compatibility with existing component
> drivers.
> 
> This keeps switching the driver into the bridge in a more
> feasible manner.
> 
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---
>  drivers/gpu/drm/exynos/exynos_drm_dsi.c | 57 +++++++++++++++++--------
>  1 file changed, 39 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> index 1d777d8c1a83..90d2ce2c3055 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> @@ -257,6 +257,7 @@ struct exynos_dsi {
>  	struct drm_connector connector;
>  	struct drm_panel *panel;
>  	struct list_head bridge_chain;
> +	struct drm_bridge bridge;
>  	struct drm_bridge *out_bridge;
>  	struct device *dev;
>  
> @@ -287,9 +288,9 @@ struct exynos_dsi {
>  #define host_to_dsi(host) container_of(host, struct exynos_dsi, dsi_host)
>  #define connector_to_dsi(c) container_of(c, struct exynos_dsi, connector)
>  
> -static inline struct exynos_dsi *encoder_to_dsi(struct drm_encoder *e)
> +static inline struct exynos_dsi *bridge_to_dsi(struct drm_bridge *b)
>  {
> -	return container_of(e, struct exynos_dsi, encoder);
> +	return container_of(b, struct exynos_dsi, bridge);
>  }
>  
>  enum reg_idx {
> @@ -1374,9 +1375,9 @@ static void exynos_dsi_unregister_te_irq(struct exynos_dsi *dsi)
>  	}
>  }
>  
> -static void exynos_dsi_enable(struct drm_encoder *encoder)
> +static void exynos_dsi_bridge_enable(struct drm_bridge *bridge)
>  {
> -	struct exynos_dsi *dsi = encoder_to_dsi(encoder);
> +	struct exynos_dsi *dsi = bridge_to_dsi(bridge);
>  	struct drm_bridge *iter;
>  	int ret;
>  
> @@ -1429,9 +1430,9 @@ static void exynos_dsi_enable(struct drm_encoder *encoder)
>  	pm_runtime_put(dsi->dev);
>  }
>  
> -static void exynos_dsi_disable(struct drm_encoder *encoder)
> +static void exynos_dsi_bridge_disable(struct drm_bridge *bridge)
>  {
> -	struct exynos_dsi *dsi = encoder_to_dsi(encoder);
> +	struct exynos_dsi *dsi = bridge_to_dsi(bridge);
>  	struct drm_bridge *iter;
>  
>  	if (!(dsi->state & DSIM_STATE_ENABLED))
> @@ -1494,9 +1495,9 @@ static const struct drm_connector_helper_funcs exynos_dsi_connector_helper_funcs
>  	.get_modes = exynos_dsi_get_modes,
>  };
>  
> -static int exynos_dsi_create_connector(struct drm_encoder *encoder)
> +static int exynos_dsi_create_connector(struct exynos_dsi *dsi)
>  {
> -	struct exynos_dsi *dsi = encoder_to_dsi(encoder);
> +	struct drm_encoder *encoder = &dsi->encoder;
>  	struct drm_connector *connector = &dsi->connector;
>  	struct drm_device *drm = encoder->dev;
>  	int ret;
> @@ -1522,9 +1523,16 @@ static int exynos_dsi_create_connector(struct drm_encoder *encoder)
>  	return 0;
>  }
>  
> -static const struct drm_encoder_helper_funcs exynos_dsi_encoder_helper_funcs = {
> -	.enable = exynos_dsi_enable,
> -	.disable = exynos_dsi_disable,
> +static int exynos_dsi_bridge_attach(struct drm_bridge *bridge,
> +				    enum drm_bridge_attach_flags flags)
> +{
> +	return 0;
> +}
> +
> +static const struct drm_bridge_funcs exynos_dsi_bridge_funcs = {
> +	.enable = exynos_dsi_bridge_enable,
> +	.disable = exynos_dsi_bridge_disable,
> +	.attach = exynos_dsi_bridge_attach,
>  };
For new bridge drivers please use atomic_{enable,disable}.
The non-atomic variants are deprecated and it is now also documneted.
It was not documented when you wrote this patch!

	Sam
>  
>  MODULE_DEVICE_TABLE(of, exynos_dsi_of_match);
> @@ -1543,7 +1551,7 @@ static int exynos_dsi_host_attach(struct mipi_dsi_host *host,
>  		dsi->out_bridge = out_bridge;
>  		list_splice_init(&encoder->bridge_chain, &dsi->bridge_chain);
>  	} else {
> -		int ret = exynos_dsi_create_connector(encoder);
> +		int ret = exynos_dsi_create_connector(dsi);
>  
>  		if (ret) {
>  			DRM_DEV_ERROR(dsi->dev,
> @@ -1596,7 +1604,7 @@ static int exynos_dsi_host_detach(struct mipi_dsi_host *host,
>  
>  	if (dsi->panel) {
>  		mutex_lock(&drm->mode_config.mutex);
> -		exynos_dsi_disable(&dsi->encoder);
> +		exynos_dsi_bridge_disable(&dsi->bridge);
>  		dsi->panel = NULL;
>  		dsi->connector.status = connector_status_disconnected;
>  		mutex_unlock(&drm->mode_config.mutex);
> @@ -1702,12 +1710,16 @@ static int exynos_dsi_bind(struct device *dev, struct device *master,
>  
>  	drm_simple_encoder_init(drm_dev, encoder, DRM_MODE_ENCODER_TMDS);
>  
> -	drm_encoder_helper_add(encoder, &exynos_dsi_encoder_helper_funcs);
> -
>  	ret = exynos_drm_set_possible_crtcs(encoder, EXYNOS_DISPLAY_TYPE_LCD);
>  	if (ret < 0)
>  		return ret;
>  
> +	ret = drm_bridge_attach(&dsi->encoder, &dsi->bridge, NULL, 0);

I assume a later patch will move connector creation to the display
driver.


> +	if (ret) {
> +		drm_encoder_cleanup(&dsi->encoder);
> +		return ret;
> +	}
> +
>  	in_bridge_node = of_graph_get_remote_node(dev->of_node, DSI_PORT_IN, 0);
>  	if (in_bridge_node) {
>  		in_bridge = of_drm_find_bridge(in_bridge_node);
> @@ -1723,10 +1735,9 @@ static void exynos_dsi_unbind(struct device *dev, struct device *master,
>  				void *data)
>  {
>  	struct exynos_dsi *dsi = dev_get_drvdata(dev);
> -	struct drm_encoder *encoder = &dsi->encoder;
> -
> -	exynos_dsi_disable(encoder);
>  
> +	exynos_dsi_bridge_disable(&dsi->bridge);
> +	drm_encoder_cleanup(&dsi->encoder);
>  	mipi_dsi_host_unregister(&dsi->dsi_host);
>  }
>  
> @@ -1821,6 +1832,12 @@ static int exynos_dsi_probe(struct platform_device *pdev)
>  
>  	pm_runtime_enable(dev);
>  
> +	dsi->bridge.funcs = &exynos_dsi_bridge_funcs;
> +	dsi->bridge.of_node = dev->of_node;
> +	dsi->bridge.type = DRM_MODE_CONNECTOR_DSI;
> +
> +	drm_bridge_add(&dsi->bridge);
> +
>  	ret = component_add(dev, &exynos_dsi_component_ops);
>  	if (ret)
>  		goto err_disable_runtime;
> @@ -1835,6 +1852,10 @@ static int exynos_dsi_probe(struct platform_device *pdev)
>  
>  static int exynos_dsi_remove(struct platform_device *pdev)
>  {
> +	struct exynos_dsi *dsi = platform_get_drvdata(pdev);
> +
> +	drm_bridge_remove(&dsi->bridge);
> +
>  	pm_runtime_disable(&pdev->dev);
>  
>  	component_del(&pdev->dev, &exynos_dsi_component_ops);
> -- 
> 2.25.1

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

WARNING: multiple messages have this Message-ID (diff)
From: Sam Ravnborg <sam@ravnborg.org>
To: Jagan Teki <jagan@amarulasolutions.com>
Cc: Marek Vasut <marex@denx.de>,
	devicetree@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
	Joonyoung Shim <jy0922.shim@samsung.com>,
	Neil Armstrong <narmstrong@baylibre.com>,
	linux-amarula <linux-amarula@amarulasolutions.com>,
	dri-devel@lists.freedesktop.org,
	Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>,
	Seung-Woo Kim <sw0312.kim@samsung.com>,
	Robert Foss <robert.foss@linaro.org>,
	Frieder Schrempf <frieder.schrempf@kontron.de>,
	Andrzej Hajda <a.hajda@samsung.com>,
	Kyungmin Park <kyungmin.park@samsung.com>,
	Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
	Daniel Vetter <daniel.vetter@intel.com>,
	linux-arm-kernel@lists.infradead.org,
	NXP Linux Team <linux-imx@nxp.com>
Subject: Re: [RFC PATCH 01/17] drm/exynos: dsi: Convert to bridge driver
Date: Sun, 25 Jul 2021 19:08:26 +0200	[thread overview]
Message-ID: <YP2aiv3kQXMh3wLd@ravnborg.org> (raw)
In-Reply-To: <20210704090230.26489-2-jagan@amarulasolutions.com>

Hi Jagan,

See a few comments below.

	Sam

On Sun, Jul 04, 2021 at 02:32:14PM +0530, Jagan Teki wrote:
> DRM bridge drivers have built-in handling of treating
> all display pipeline components as bridges.
> 
> Convert exynos_drm_dsi to a bridge driver with built-in
> encoder support for compatibility with existing component
> drivers.
> 
> This keeps switching the driver into the bridge in a more
> feasible manner.
> 
> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
> ---
>  drivers/gpu/drm/exynos/exynos_drm_dsi.c | 57 +++++++++++++++++--------
>  1 file changed, 39 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> index 1d777d8c1a83..90d2ce2c3055 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
> @@ -257,6 +257,7 @@ struct exynos_dsi {
>  	struct drm_connector connector;
>  	struct drm_panel *panel;
>  	struct list_head bridge_chain;
> +	struct drm_bridge bridge;
>  	struct drm_bridge *out_bridge;
>  	struct device *dev;
>  
> @@ -287,9 +288,9 @@ struct exynos_dsi {
>  #define host_to_dsi(host) container_of(host, struct exynos_dsi, dsi_host)
>  #define connector_to_dsi(c) container_of(c, struct exynos_dsi, connector)
>  
> -static inline struct exynos_dsi *encoder_to_dsi(struct drm_encoder *e)
> +static inline struct exynos_dsi *bridge_to_dsi(struct drm_bridge *b)
>  {
> -	return container_of(e, struct exynos_dsi, encoder);
> +	return container_of(b, struct exynos_dsi, bridge);
>  }
>  
>  enum reg_idx {
> @@ -1374,9 +1375,9 @@ static void exynos_dsi_unregister_te_irq(struct exynos_dsi *dsi)
>  	}
>  }
>  
> -static void exynos_dsi_enable(struct drm_encoder *encoder)
> +static void exynos_dsi_bridge_enable(struct drm_bridge *bridge)
>  {
> -	struct exynos_dsi *dsi = encoder_to_dsi(encoder);
> +	struct exynos_dsi *dsi = bridge_to_dsi(bridge);
>  	struct drm_bridge *iter;
>  	int ret;
>  
> @@ -1429,9 +1430,9 @@ static void exynos_dsi_enable(struct drm_encoder *encoder)
>  	pm_runtime_put(dsi->dev);
>  }
>  
> -static void exynos_dsi_disable(struct drm_encoder *encoder)
> +static void exynos_dsi_bridge_disable(struct drm_bridge *bridge)
>  {
> -	struct exynos_dsi *dsi = encoder_to_dsi(encoder);
> +	struct exynos_dsi *dsi = bridge_to_dsi(bridge);
>  	struct drm_bridge *iter;
>  
>  	if (!(dsi->state & DSIM_STATE_ENABLED))
> @@ -1494,9 +1495,9 @@ static const struct drm_connector_helper_funcs exynos_dsi_connector_helper_funcs
>  	.get_modes = exynos_dsi_get_modes,
>  };
>  
> -static int exynos_dsi_create_connector(struct drm_encoder *encoder)
> +static int exynos_dsi_create_connector(struct exynos_dsi *dsi)
>  {
> -	struct exynos_dsi *dsi = encoder_to_dsi(encoder);
> +	struct drm_encoder *encoder = &dsi->encoder;
>  	struct drm_connector *connector = &dsi->connector;
>  	struct drm_device *drm = encoder->dev;
>  	int ret;
> @@ -1522,9 +1523,16 @@ static int exynos_dsi_create_connector(struct drm_encoder *encoder)
>  	return 0;
>  }
>  
> -static const struct drm_encoder_helper_funcs exynos_dsi_encoder_helper_funcs = {
> -	.enable = exynos_dsi_enable,
> -	.disable = exynos_dsi_disable,
> +static int exynos_dsi_bridge_attach(struct drm_bridge *bridge,
> +				    enum drm_bridge_attach_flags flags)
> +{
> +	return 0;
> +}
> +
> +static const struct drm_bridge_funcs exynos_dsi_bridge_funcs = {
> +	.enable = exynos_dsi_bridge_enable,
> +	.disable = exynos_dsi_bridge_disable,
> +	.attach = exynos_dsi_bridge_attach,
>  };
For new bridge drivers please use atomic_{enable,disable}.
The non-atomic variants are deprecated and it is now also documneted.
It was not documented when you wrote this patch!

	Sam
>  
>  MODULE_DEVICE_TABLE(of, exynos_dsi_of_match);
> @@ -1543,7 +1551,7 @@ static int exynos_dsi_host_attach(struct mipi_dsi_host *host,
>  		dsi->out_bridge = out_bridge;
>  		list_splice_init(&encoder->bridge_chain, &dsi->bridge_chain);
>  	} else {
> -		int ret = exynos_dsi_create_connector(encoder);
> +		int ret = exynos_dsi_create_connector(dsi);
>  
>  		if (ret) {
>  			DRM_DEV_ERROR(dsi->dev,
> @@ -1596,7 +1604,7 @@ static int exynos_dsi_host_detach(struct mipi_dsi_host *host,
>  
>  	if (dsi->panel) {
>  		mutex_lock(&drm->mode_config.mutex);
> -		exynos_dsi_disable(&dsi->encoder);
> +		exynos_dsi_bridge_disable(&dsi->bridge);
>  		dsi->panel = NULL;
>  		dsi->connector.status = connector_status_disconnected;
>  		mutex_unlock(&drm->mode_config.mutex);
> @@ -1702,12 +1710,16 @@ static int exynos_dsi_bind(struct device *dev, struct device *master,
>  
>  	drm_simple_encoder_init(drm_dev, encoder, DRM_MODE_ENCODER_TMDS);
>  
> -	drm_encoder_helper_add(encoder, &exynos_dsi_encoder_helper_funcs);
> -
>  	ret = exynos_drm_set_possible_crtcs(encoder, EXYNOS_DISPLAY_TYPE_LCD);
>  	if (ret < 0)
>  		return ret;
>  
> +	ret = drm_bridge_attach(&dsi->encoder, &dsi->bridge, NULL, 0);

I assume a later patch will move connector creation to the display
driver.


> +	if (ret) {
> +		drm_encoder_cleanup(&dsi->encoder);
> +		return ret;
> +	}
> +
>  	in_bridge_node = of_graph_get_remote_node(dev->of_node, DSI_PORT_IN, 0);
>  	if (in_bridge_node) {
>  		in_bridge = of_drm_find_bridge(in_bridge_node);
> @@ -1723,10 +1735,9 @@ static void exynos_dsi_unbind(struct device *dev, struct device *master,
>  				void *data)
>  {
>  	struct exynos_dsi *dsi = dev_get_drvdata(dev);
> -	struct drm_encoder *encoder = &dsi->encoder;
> -
> -	exynos_dsi_disable(encoder);
>  
> +	exynos_dsi_bridge_disable(&dsi->bridge);
> +	drm_encoder_cleanup(&dsi->encoder);
>  	mipi_dsi_host_unregister(&dsi->dsi_host);
>  }
>  
> @@ -1821,6 +1832,12 @@ static int exynos_dsi_probe(struct platform_device *pdev)
>  
>  	pm_runtime_enable(dev);
>  
> +	dsi->bridge.funcs = &exynos_dsi_bridge_funcs;
> +	dsi->bridge.of_node = dev->of_node;
> +	dsi->bridge.type = DRM_MODE_CONNECTOR_DSI;
> +
> +	drm_bridge_add(&dsi->bridge);
> +
>  	ret = component_add(dev, &exynos_dsi_component_ops);
>  	if (ret)
>  		goto err_disable_runtime;
> @@ -1835,6 +1852,10 @@ static int exynos_dsi_probe(struct platform_device *pdev)
>  
>  static int exynos_dsi_remove(struct platform_device *pdev)
>  {
> +	struct exynos_dsi *dsi = platform_get_drvdata(pdev);
> +
> +	drm_bridge_remove(&dsi->bridge);
> +
>  	pm_runtime_disable(&pdev->dev);
>  
>  	component_del(&pdev->dev, &exynos_dsi_component_ops);
> -- 
> 2.25.1

  reply	other threads:[~2021-07-25 17:10 UTC|newest]

Thread overview: 130+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-04  9:02 [RFC PATCH 00/17] drm: bridge: Samsung MIPI DSIM bridge Jagan Teki
2021-07-04  9:02 ` Jagan Teki
2021-07-04  9:02 ` Jagan Teki
2021-07-04  9:02 ` [RFC PATCH 01/17] drm/exynos: dsi: Convert to bridge driver Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-25 17:08   ` Sam Ravnborg [this message]
2021-07-25 17:08     ` Sam Ravnborg
2021-07-04  9:02 ` [RFC PATCH 02/17] drm/exynos: dsi: Handle drm_device for bridge Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-25 17:09   ` Sam Ravnborg
2021-07-25 17:09     ` Sam Ravnborg
2021-07-04  9:02 ` [RFC PATCH 03/17] drm/exynos: dsi: Use the drm_panel_bridge API Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-05 11:47   ` Marek Szyprowski
2021-07-05 11:47     ` Marek Szyprowski
2021-07-05 11:47     ` Marek Szyprowski
2021-07-05 12:00     ` Jagan Teki
2021-07-05 12:00       ` Jagan Teki
2021-07-05 12:00       ` Jagan Teki
2021-07-05 12:13       ` Marek Szyprowski
2021-07-05 12:13         ` Marek Szyprowski
2021-07-05 12:13         ` Marek Szyprowski
2021-07-05 12:34         ` Jagan Teki
2021-07-05 12:34           ` Jagan Teki
2021-07-05 12:34           ` Jagan Teki
2021-07-04  9:02 ` [RFC PATCH 04/17] drm/exynos: dsi: Create bridge connector for encoder Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02 ` [RFC PATCH 05/17] drm/exynos: dsi: Get the mode from bridge Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-25 17:17   ` Sam Ravnborg
2021-07-25 17:17     ` Sam Ravnborg
2021-07-29 13:20   ` Robert Foss
2021-07-29 13:20     ` Robert Foss
2021-07-29 13:20     ` Robert Foss
2021-07-29 16:50     ` Sam Ravnborg
2021-07-29 16:50       ` Sam Ravnborg
2021-07-04  9:02 ` [RFC PATCH 06/17] drm/exynos: dsi: Handle exynos specifics via driver_data Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-25 17:25   ` Sam Ravnborg
2021-07-25 17:25     ` Sam Ravnborg
2021-07-25 17:31     ` Jagan Teki
2021-07-25 17:31       ` Jagan Teki
2021-07-25 17:31       ` Jagan Teki
2021-08-13  6:50     ` Inki Dae
2021-08-13  6:50       ` Inki Dae
2021-08-13 12:16       ` Laurent Pinchart
2021-08-13 12:16         ` Laurent Pinchart
2021-08-18  6:09         ` Inki Dae
2021-08-18  6:09           ` Inki Dae
2021-07-04  9:02 ` [RFC PATCH 07/17] drm: bridge: Move exynos_drm_dsi into bridges Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04 13:26   ` kernel test robot
2021-07-04  9:02 ` [RFC PATCH 08/17] dt-bindings: display: bridge: Add Samsung MIPI DSIM bridge Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-12 15:13   ` Rob Herring
2021-07-12 15:13     ` Rob Herring
2021-07-12 15:13     ` Rob Herring
2021-07-12 15:23     ` Jagan Teki
2021-07-12 15:23       ` Jagan Teki
2021-07-12 15:23       ` Jagan Teki
2021-07-04  9:02 ` [RFC PATCH 09/17] drm: bridge: samsung-dsim: Add module init, exit Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02 ` [RFC PATCH 10/17] drm: bridge: samsung-dsim: Update the of_node for port(s) Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02 ` [RFC PATCH 11/17] drm: bridge: samsung-dsim: Find the possible DSI devices Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02 ` [RFC PATCH 12/17] dt-bindings: display: bridge: samsung,mipi-dsim: Add i.MX8MM support Jagan Teki
2021-07-04  9:02   ` [RFC PATCH 12/17] dt-bindings: display: bridge: samsung, mipi-dsim: " Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-14 22:59   ` [RFC PATCH 12/17] dt-bindings: display: bridge: samsung,mipi-dsim: " Rob Herring
2021-07-14 22:59     ` Rob Herring
2021-07-14 22:59     ` Rob Herring
2021-07-04  9:02 ` [RFC PATCH 13/17] drm: bridge: samsung-dsim: " Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02 ` [RFC PATCH 14/17] drm: bridge: samsung-dsim: Add input_bus_flags Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02 ` [RFC PATCH 15/17] drm: bridge: samsung-dsim: Move DSI init in bridge enable Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02 ` [RFC PATCH 16/17] drm: bridge: samsung-dsim: Fix PLL_P offset Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-25 17:48   ` Sam Ravnborg
2021-07-25 17:48     ` Sam Ravnborg
2021-07-04  9:02 ` [RFC PATCH 17/17] drm: bridge: samsung-dsim: Add bridge mode_fixup Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-04  9:02   ` Jagan Teki
2021-07-25 17:50   ` Sam Ravnborg
2021-07-25 17:50     ` Sam Ravnborg
2021-07-25 17:05 ` [RFC PATCH 00/17] drm: bridge: Samsung MIPI DSIM bridge Sam Ravnborg
2021-07-25 17:05   ` Sam Ravnborg
2021-07-25 17:13   ` Jagan Teki
2021-07-25 17:13     ` Jagan Teki
2021-07-25 17:13     ` Jagan Teki
2021-10-05 21:43     ` Tim Harvey
2021-10-05 21:43       ` Tim Harvey
2021-12-09  8:36       ` Michael Nazzareno Trimarchi
2021-12-09  8:36         ` Michael Nazzareno Trimarchi
2021-12-09  8:36         ` Michael Nazzareno Trimarchi
2021-12-09 16:40         ` Tim Harvey
2021-12-09 16:40           ` Tim Harvey
2021-12-09 16:40           ` Tim Harvey
2021-12-09 17:09           ` Michael Nazzareno Trimarchi
2021-12-09 17:09             ` Michael Nazzareno Trimarchi
2021-12-09 17:09             ` Michael Nazzareno Trimarchi
2021-12-09 17:57             ` Tim Harvey
2021-12-09 17:57               ` Tim Harvey
2021-12-09 17:57               ` Tim Harvey
2021-12-09 20:24             ` Lucas Stach
2021-12-09 20:24               ` Lucas Stach
2021-12-09 20:24               ` Lucas Stach
2021-12-09 21:24               ` Michael Nazzareno Trimarchi
2021-12-09 21:24                 ` Michael Nazzareno Trimarchi
2021-12-09 21:24                 ` Michael Nazzareno Trimarchi
2021-12-15 13:34                 ` Adam Ford
2021-12-15 13:34                   ` Adam Ford
2021-12-15 13:34                   ` Adam Ford

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YP2aiv3kQXMh3wLd@ravnborg.org \
    --to=sam@ravnborg.org \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=a.hajda@samsung.com \
    --cc=daniel.vetter@intel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=festevam@gmail.com \
    --cc=frieder.schrempf@kontron.de \
    --cc=inki.dae@samsung.com \
    --cc=jagan@amarulasolutions.com \
    --cc=jy0922.shim@samsung.com \
    --cc=krzysztof.kozlowski@canonical.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-amarula@amarulasolutions.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=marex@denx.de \
    --cc=narmstrong@baylibre.com \
    --cc=robert.foss@linaro.org \
    --cc=sw0312.kim@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.